summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipsk
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
committerKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
commitad547a6b5986815fda458221149728d9d9ab1d87 (patch)
tree16296910eb3eca724371474ea9aea3994dc69614 /Build/source/texk/dvipsk
parent947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (diff)
restore Build,TODO from r57911
git-svn-id: svn://tug.org/texlive/trunk@57915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvipsk')
-rw-r--r--Build/source/texk/dvipsk/AUTHORS8
-rw-r--r--Build/source/texk/dvipsk/ChangeLog3247
-rw-r--r--Build/source/texk/dvipsk/Makefile.am230
-rw-r--r--Build/source/texk/dvipsk/Makefile.in2018
-rw-r--r--Build/source/texk/dvipsk/NEWS91
-rw-r--r--Build/source/texk/dvipsk/README43
-rw-r--r--Build/source/texk/dvipsk/TODO41
-rw-r--r--Build/source/texk/dvipsk/ac/withenable.ac9
-rw-r--r--Build/source/texk/dvipsk/aclocal.m41176
-rw-r--r--Build/source/texk/dvipsk/afm2tfm.126
-rw-r--r--Build/source/texk/dvipsk/afm2tfm.c2170
-rw-r--r--Build/source/texk/dvipsk/atari/makefile.atari78
-rw-r--r--Build/source/texk/dvipsk/bbox.c502
-rwxr-xr-xBuild/source/texk/dvipsk/beginfontk1.test11
-rw-r--r--Build/source/texk/dvipsk/bitmapenc.c690
-rw-r--r--Build/source/texk/dvipsk/c-auto.in173
-rw-r--r--Build/source/texk/dvipsk/cmfonts.map77
-rw-r--r--Build/source/texk/dvipsk/color.c254
-rw-r--r--Build/source/texk/dvipsk/color.lpro195
-rw-r--r--Build/source/texk/dvipsk/config.h81
-rw-r--r--Build/source/texk/dvipsk/config.ps613
-rwxr-xr-xBuild/source/texk/dvipsk/configure17671
-rw-r--r--Build/source/texk/dvipsk/configure.ac38
-rw-r--r--Build/source/texk/dvipsk/contrib/afm-extra/ptmr.ed118
-rw-r--r--Build/source/texk/dvipsk/contrib/afm-extra/ptmro.ed130
-rw-r--r--Build/source/texk/dvipsk/contrib/colorsep.lpro184
-rw-r--r--Build/source/texk/dvipsk/contrib/config.proto49
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/2a4.ps49
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/config.fax5
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/config.lino93
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/config.lj2p95
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/config.post3x328
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/config.rokicki62
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/loop.ps2
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/mkdvipspapers429
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/papersize.level2236
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/papersize.simple44
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/prepipe.ps1
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/showpage.ps1
-rw-r--r--Build/source/texk/dvipsk/contrib/crop.lpr271
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/avantgarde.sty11
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/blackdvi.sty109
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/bookman.sty11
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/chancery.sty11
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/colordvi.sty162
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/ncs.sty11
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/palatino.sty11
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/psfonts.sty266
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/psgreek.sty38
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/rotate.sty53
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/times.sty11
-rw-r--r--Build/source/texk/dvipsk/contrib/treen.sh40
-rw-r--r--Build/source/texk/dvipsk/contrib/treen2.sh12
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/README149
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/a3.cfg17
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/duplong.cfg19
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/dupshort.cfg19
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/inv.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr100-0.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr100.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr110.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr120.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr130.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr140.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr150.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr70.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr80.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr85.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr90.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/simplex.cfg19
-rw-r--r--Build/source/texk/dvipsk/contrib/whichinpath13
-rw-r--r--Build/source/texk/dvipsk/crop.lpro26
-rw-r--r--Build/source/texk/dvipsk/cyrfonts.map51
-rw-r--r--Build/source/texk/dvipsk/debug.h23
-rw-r--r--Build/source/texk/dvipsk/dopage.c515
-rw-r--r--Build/source/texk/dvipsk/dosection.c293
-rw-r--r--Build/source/texk/dvipsk/dospecial.c1120
-rw-r--r--Build/source/texk/dvipsk/download.c572
-rw-r--r--Build/source/texk/dvipsk/dpicheck.c78
-rw-r--r--Build/source/texk/dvipsk/drawPS.c667
-rw-r--r--Build/source/texk/dvipsk/dviinput.c89
-rw-r--r--Build/source/texk/dvipsk/dvips-all.enc5127
-rw-r--r--Build/source/texk/dvipsk/dvips.1534
-rw-r--r--Build/source/texk/dvipsk/dvips.c1552
-rw-r--r--Build/source/texk/dvipsk/dvips.h379
-rw-r--r--Build/source/texk/dvipsk/dvips.help40
-rw-r--r--Build/source/texk/dvipsk/dvips.info4797
-rw-r--r--Build/source/texk/dvipsk/dvips.texi4738
-rwxr-xr-xBuild/source/texk/dvipsk/eepic-nan.test11
-rw-r--r--Build/source/texk/dvipsk/emspecial.c1469
-rw-r--r--Build/source/texk/dvipsk/eufonts.map21
-rw-r--r--Build/source/texk/dvipsk/finclude.c516
-rw-r--r--Build/source/texk/dvipsk/finclude.lpro21
-rw-r--r--Build/source/texk/dvipsk/flib.c341
-rw-r--r--Build/source/texk/dvipsk/fontdef.c183
-rw-r--r--Build/source/texk/dvipsk/header.c181
-rw-r--r--Build/source/texk/dvipsk/hps.c622
-rw-r--r--Build/source/texk/dvipsk/hps.lpro250
-rw-r--r--Build/source/texk/dvipsk/hps/CHANGES_HPS.txt45
-rw-r--r--Build/source/texk/dvipsk/hps/README_HPS.txt144
-rw-r--r--Build/source/texk/dvipsk/lafonts.map16
-rw-r--r--Build/source/texk/dvipsk/loadfont.c535
-rw-r--r--Build/source/texk/dvipsk/makefont.c300
-rw-r--r--Build/source/texk/dvipsk/mvs/dvipsmvs.h97
-rw-r--r--Build/source/texk/dvipsk/output.c1897
-rw-r--r--Build/source/texk/dvipsk/papersiz.c135
-rw-r--r--Build/source/texk/dvipsk/paths.h84
-rwxr-xr-xBuild/source/texk/dvipsk/pfbincl.test9
-rw-r--r--Build/source/texk/dvipsk/pprescan.c279
-rw-r--r--Build/source/texk/dvipsk/prescan.c254
-rw-r--r--Build/source/texk/dvipsk/protos.h433
-rw-r--r--Build/source/texk/dvipsk/protos_add.h21
-rw-r--r--Build/source/texk/dvipsk/psfonts.map538
-rw-r--r--Build/source/texk/dvipsk/ptexmac.h189
-rwxr-xr-xBuild/source/texk/dvipsk/quotecmd-test.pl34
-rw-r--r--Build/source/texk/dvipsk/repack.c448
-rw-r--r--Build/source/texk/dvipsk/resident.c1216
-rwxr-xr-xBuild/source/texk/dvipsk/same-name.test14
-rw-r--r--Build/source/texk/dvipsk/scalewidth.c36
-rw-r--r--Build/source/texk/dvipsk/scanpage.c310
-rw-r--r--Build/source/texk/dvipsk/search.c358
-rw-r--r--Build/source/texk/dvipsk/skippage.c80
-rw-r--r--Build/source/texk/dvipsk/special.lpro265
-rw-r--r--Build/source/texk/dvipsk/squeeze/Makefile.am16
-rw-r--r--Build/source/texk/dvipsk/squeeze/Makefile.in724
-rw-r--r--Build/source/texk/dvipsk/squeeze/aclocal.m41170
-rwxr-xr-xBuild/source/texk/dvipsk/squeeze/configure5660
-rw-r--r--Build/source/texk/dvipsk/squeeze/configure.ac21
-rw-r--r--Build/source/texk/dvipsk/squeeze/squeeze.c174
-rw-r--r--Build/source/texk/dvipsk/t1part.c2756
-rw-r--r--Build/source/texk/dvipsk/t1part.h98
-rwxr-xr-xBuild/source/texk/dvipsk/test-afm2tfm.test40
-rwxr-xr-xBuild/source/texk/dvipsk/test-dvips.test13
-rwxr-xr-xBuild/source/texk/dvipsk/test-missing-image.test15
-rwxr-xr-xBuild/source/texk/dvipsk/test-overflow-buffers.test21
-rw-r--r--Build/source/texk/dvipsk/testdata/8r.enc118
-rw-r--r--Build/source/texk/dvipsk/testdata/Makefile_upjf20
-rw-r--r--Build/source/texk/dvipsk/testdata/ad.enc87
-rw-r--r--Build/source/texk/dvipsk/testdata/alt-rule.pro17
-rw-r--r--Build/source/texk/dvipsk/testdata/beginfontk1.dvibin0 -> 356 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/beginfontk1.eps1492
-rw-r--r--Build/source/texk/dvipsk/testdata/beginfontk1.tex5
-rw-r--r--Build/source/texk/dvipsk/testdata/cmex10.pfbbin0 -> 22869 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/cmex10.tfmbin0 -> 992 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/cmmi10.pfbbin0 -> 30297 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/cmmi10.tfmbin0 -> 1528 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/cmr10.pfbbin0 -> 26882 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/cmr10.tfmbin0 -> 1296 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/cmsy10.pfbbin0 -> 26629 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/cmsy10.tfmbin0 -> 1124 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/cmtt10.pfbbin0 -> 24667 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/cmtt10.tfmbin0 -> 768 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/color.pro46
-rw-r--r--Build/source/texk/dvipsk/testdata/config.pdf43
-rw-r--r--Build/source/texk/dvipsk/testdata/config.ps48
-rw-r--r--Build/source/texk/dvipsk/testdata/dvipstst.tex136
-rw-r--r--Build/source/texk/dvipsk/testdata/dvipstst.xdvbin0 -> 4112 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/dvipstst.xps5499
-rw-r--r--Build/source/texk/dvipsk/testdata/eepic-nan.dvibin0 -> 304 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/eepic-nan.tex15
-rw-r--r--Build/source/texk/dvipsk/testdata/intoverflow.dvibin0 -> 1060864 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/missing-image.dvibin0 -> 240 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/missing-image.tex6
-rw-r--r--Build/source/texk/dvipsk/testdata/overflow-color-push.dvibin0 -> 1296 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/overflow-color-push.tex17
-rw-r--r--Build/source/texk/dvipsk/testdata/overflow-epsfile.dvibin0 -> 1120 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/overflow-epsfile.tex17
-rw-r--r--Build/source/texk/dvipsk/testdata/overflow-ifffile.dvibin0 -> 1168 bytes
-rwxr-xr-xBuild/source/texk/dvipsk/testdata/overflow-ifffile.tex12
-rw-r--r--Build/source/texk/dvipsk/testdata/overflow-keyword.dvibin0 -> 1160 bytes
-rwxr-xr-xBuild/source/texk/dvipsk/testdata/overflow-keyword.tex12
-rw-r--r--Build/source/texk/dvipsk/testdata/overflow-psbox.dvibin0 -> 1140 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/overflow-psbox.tex18
-rw-r--r--Build/source/texk/dvipsk/testdata/pfbincl.eps11079
-rw-r--r--Build/source/texk/dvipsk/testdata/pfbincl.tex20
-rw-r--r--Build/source/texk/dvipsk/testdata/pfbincl.xdvbin0 -> 768 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/pfbincl.xps11364
-rw-r--r--Build/source/texk/dvipsk/testdata/psfonts.map104
-rw-r--r--Build/source/texk/dvipsk/testdata/ptmbi.vfbin0 -> 1544 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/ptmbi8r.tfmbin0 -> 4480 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/ptmr.vfbin0 -> 1680 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/ptmr8r.tfmbin0 -> 4408 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/ptmri.vfbin0 -> 1544 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/ptmri8r.tfmbin0 -> 4640 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/quotecmd.dvibin0 -> 196 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/quotecmd.tex17
-rw-r--r--Build/source/texk/dvipsk/testdata/special.pro46
-rw-r--r--Build/source/texk/dvipsk/testdata/tex.pro45
-rw-r--r--Build/source/texk/dvipsk/testdata/texc.pro57
-rw-r--r--Build/source/texk/dvipsk/testdata/texps.pro14
-rw-r--r--Build/source/texk/dvipsk/testdata/upjf-g.tfmbin0 -> 368 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/upjf-r.tfmbin0 -> 108 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/upjf.dvibin0 -> 260 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/upjf.map2
-rw-r--r--Build/source/texk/dvipsk/testdata/upjf.tex19
-rw-r--r--Build/source/texk/dvipsk/testdata/upjf.tfmbin0 -> 812 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/upjf_full.cnf13
-rw-r--r--Build/source/texk/dvipsk/testdata/upjf_full.vfbin0 -> 7008 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/upjf_omit.cnf13
-rw-r--r--Build/source/texk/dvipsk/testdata/upjf_omit.vfbin0 -> 6972 bytes
-rw-r--r--Build/source/texk/dvipsk/testdata/vfnameoverflow.dvibin0 -> 10488 bytes
-rw-r--r--Build/source/texk/dvipsk/tex.lpro368
-rw-r--r--Build/source/texk/dvipsk/tex/blackdvi.tex109
-rw-r--r--Build/source/texk/dvipsk/tex/colordvi.tex162
-rw-r--r--Build/source/texk/dvipsk/tex/rotate.tex43
-rw-r--r--Build/source/texk/dvipsk/tex/rotsample.tex32
-rwxr-xr-xBuild/source/texk/dvipsk/texc.script9
-rw-r--r--Build/source/texk/dvipsk/texps.lpro129
-rw-r--r--Build/source/texk/dvipsk/tfmload.c305
-rw-r--r--Build/source/texk/dvipsk/unpack.c181
-rwxr-xr-xBuild/source/texk/dvipsk/uptex-vf.test18
-rw-r--r--Build/source/texk/dvipsk/virtualfont.c322
-rw-r--r--Build/source/texk/dvipsk/vmcms/Makefile.IBM199
-rw-r--r--Build/source/texk/dvipsk/vmcms/README.VMCMS168
-rw-r--r--Build/source/texk/dvipsk/vmcms/afm2tfm.doc323
-rw-r--r--Build/source/texk/dvipsk/vmcms/dvips.doc65
-rw-r--r--Build/source/texk/dvipsk/vmcms/dvipscms.h153
-rw-r--r--Build/source/texk/dvipsk/vms/MAKETEXPK.COM127
-rw-r--r--Build/source/texk/dvipsk/vms/Makefile281
-rw-r--r--Build/source/texk/dvipsk/vms/README128
-rw-r--r--Build/source/texk/dvipsk/vms/README.VMS48
-rw-r--r--Build/source/texk/dvipsk/vms/dvips.cld55
-rw-r--r--Build/source/texk/dvipsk/vms/dvips.hlp435
-rw-r--r--Build/source/texk/dvipsk/vms/dvips.rnh532
-rw-r--r--Build/source/texk/dvipsk/vms/make.com351
-rw-r--r--Build/source/texk/dvipsk/vms/newmake.com387
-rw-r--r--Build/source/texk/dvipsk/vms/texc_scr.com104
-rw-r--r--Build/source/texk/dvipsk/vms/vaxcrtl.opt1
-rw-r--r--Build/source/texk/dvipsk/vms/vaxvms.c470
-rw-r--r--Build/source/texk/dvipsk/vms/vms.h17
-rw-r--r--Build/source/texk/dvipsk/vms/vms_gcc.txt75
-rw-r--r--Build/source/texk/dvipsk/vms/vms_gcc_paths.h33
-rw-r--r--Build/source/texk/dvipsk/vms/vmscli.c466
-rw-r--r--Build/source/texk/dvipsk/writet1.c1574
234 files changed, 113205 insertions, 0 deletions
diff --git a/Build/source/texk/dvipsk/AUTHORS b/Build/source/texk/dvipsk/AUTHORS
new file mode 100644
index 00000000000..104d44e89e9
--- /dev/null
+++ b/Build/source/texk/dvipsk/AUTHORS
@@ -0,0 +1,8 @@
+This program, dvipsk, was originally modified by Karl Berry from Tom
+Rokicki's dvips distribution. Send bug reports to tex-k@tug.org,
+not to Tom personally.
+
+Jim Hafner originally implemented the color support.
+Sergey Lesenko originally implemented the partial Type 1 font downloading.
+Mark Doyle and Tanmoy Bhattacharya implemented the hyperdvi support, and
+Dave Love originally merged it into dvipsk.
diff --git a/Build/source/texk/dvipsk/ChangeLog b/Build/source/texk/dvipsk/ChangeLog
new file mode 100644
index 00000000000..e38523b5012
--- /dev/null
+++ b/Build/source/texk/dvipsk/ChangeLog
@@ -0,0 +1,3247 @@
+2021-02-17 Karl Berry <karl@freefriends.org>
+
+ * NEWS,
+ * afm2tfm.c,
+ * dvips.c,
+ * dvips.h,
+ * dvips.texi,
+ * configure.ac: version 2021.1 and copyright 2021.
+
+2021-02-09 Karl Berry <karl@freefriends.org>
+
+ * test-afm2tfm.test: rewrite as shell script.
+ * afm2tfm-test.pl: remove.
+ * Makefile.am (TESTS, etc.): adapt accordingly.
+
+2021-02-08 Karl Berry <karl@freefriends.org>
+
+ * configure.ac (AC_INIT): TeX Live not TeXLive.
+
+ * dvips.c (found_problems): define.
+ (main): final exit status depends on its value.
+ * protos.h (found_problems): declare.
+ * output.c (copyfile_general): set found_problems=1 if image not found.
+ This is to match the new behavior of dvipdfmx.
+ https://tug.org/pipermail/dvipdfmx/2021-January/000159.html (thread)
+
+ * test-missing-image.test: corresponding test.
+ * testdata/missing-image.dvi,
+ * testdata/missing-image.tex: files for new test.
+
+2020-12-05 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * NEWS: Mention new/jfm feature.
+ * dospecial.c:
+ Output error of html special not to STDOUT but to STDERR.
+ * dvips.h, {bitmapenc,color,dopage,dospecial,download,dvips,
+ emspecial,finclude,fontdef,header,loadfont,output,pprescan,prescan,
+ resident,scanpage,search,t1part,virtualfont,writet1}.c:
+ Allow Unicode error messages on Windows console. (Windows only)
+
+2020-11-28 Akira Kakuto <kakuto@w32tex.org>
+
+ * protos.h (titlename): new global.
+ * dvips.c (titlename): new global.
+ (helparr): new option -title.
+ (main): recognize it.
+ * output.c (initprinter) <%%Title>: use xbasename(iname) instead of
+ iname by default.
+
+2020-11-28 Karl Berry <karl@freefriends.org>
+
+ * dvips.texi (Option details): document -title.
+
+2020-11-28 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * virtualfont.c:
+ Accept Japanese virtual fonts without character definitions.
+ https://github.com/texjporg/tex-jp-build/issues/99
+
+2020-05-20 Karl Berry <karl@freefriends.org>
+
+ * dvips.texi (Virtual fonts): add brief mention of this new vf/jfm
+ feature, from Takuji. Update all ctan links while here.
+
+2020-05-10 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * uptex-vf.test, testdata/upjf.{tex,dvi,tfm},
+ testdata/upjf_{full,omit}.vf, testdata/upjf_{full,omit}.cnf:
+ Update the test.
+
+2020-04-26 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * Makefile.{am,in}, uptex-vf.test,
+ testdata/Makefile_upjf, testdata/upjf{,-r,-g}.tfm,
+ testdata/upjf.{tex,dvi,map}, testdata/upjf_{full,omit}.vf,
+ testdata/upjf_{full,omit}.cnf:
+ Add a new test for fallback of virtual fonts.
+
+2020-04-19 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * {virtualfont,pprescan,scanpage,dopage}.c, dvips.h:
+ Fallback multibyte character in virtual font for (u)pTeX.
+ https://github.com/texjporg/tex-jp-build/issues/99
+
+ A new rule for virtual fonts is implemented:
+ If a virtual font has no entry of a codepoint and the first
+ MAPFONT designates a (u)pTeX TFM(JFM), then we designate the
+ glyph (usually with a fullwidth metric) of the same codepoint
+ in the TFM(JFM) with the smallest font ID.
+ The new rule helps to shrink size of Japanese virtual fonts.
+
+2020-04-10 Akira Kakuto <kakuto@w32tex.org>
+
+ * dospecial.c: Support \special{psfile=non-ascii-name}.
+
+2020-03-27 Karl Berry <karl@tug.org>
+
+ * TeX Live 2020.
+
+2020-02-29 Tomas Rokicki <rokicki@gmail.com>
+
+ * loadfont.c (bitmapfontseen): define new global.
+ (loadfont): set it, if a bitmap font is seen.
+ * protos.h (bitmapfontseen): declare it.
+ * output.c (initprinter): If bitmapfontseen, emit
+ %%ViewingOrientation comment to try to cope with Distiller's
+ auto-orientation (page rotation).
+
+2020-01-30 Karl Berry <karl@freefriends.org>
+
+ * Makefile.am (enc_DATA): new variable, for new file dvips-all.enc.
+ * configure.ac (encdir): define it.
+
+2020-01-30 Akira Kakuto <kakuto@w32tex.org>
+
+ * bitmapenc.c: use strchr() instead of index(), because index()
+ is not supported in Visual Studio 2010.
+
+2020-01-29 Tomas Rokicki <rokicki@gmail.com>
+
+ * bitmapenc.c (struct bmenc): new member existsbm.
+ (parseencodingfile): rename from parseencoding; change calls.
+ (trytoparseenc),
+ (parseenc): new fns.
+ (addbmenc): call parseenc.
+ (getencoding_seq): change type to struct bmenc.
+ (downloadbmencoding): check that every defined character has a name.
+ (doubleout): take double instead of float.
+ * dvips-all.enc: more fonts.
+ * dvips.c (-bitmapfontenc): rename option from -J.
+ * dvips.texi: adjust documentation.
+ * resident.c (get_defaults): new case b for bitmapfontenc,
+ renamed from J.
+
+2020-01-16 Karl Berry <karl@freefriends.org>
+
+ * afm2tfm.c,
+ * dvips.c,
+ * configure.ac: version 2020.1 and copyright 2020.
+
+2020-01-12 Akira Kakuto <kakuto@w32tex.org>
+
+ * bitmapenc.c, download.c: Support old compilers, by declaring
+ variables early in a block.
+
+2020-01-11 Tomas Rokicki <rokicki@gmail.com>
+
+ Support encodings for bitmapped fonts, e.g., when cmr10
+ is used as a bitmap. TUGboat article:
+ https://tug.org/TUGboat/tb40-2/tb125rokicki-type3search.pdf
+
+ * dvips-all.enc,
+ * bitmapenc.c: new files.
+ * Makefile.am (dvips_SOURCES): add it.
+ * dosection.c (dosection): call bmenc_startsection.
+ * download.c (unpack_bb): new fn.
+ (downchar): call unpack_bb.
+ (download): call downloadbmencoding .. finishbitmapencoding
+ if needed.
+ * dvips.c (helparr): new option -J to control feature.
+ * dvips.h (tfd): new integer members llx, lly, urx, urx.
+ * dvips.texi (Option details): describe -J option.
+ (Configuration file commands): describe J config directive.
+ (Bitmap font encodings): new section.
+ * loadfont.c (loadfont): initialize and update global font
+ bounding box, to set font sizes for the new bitmap encodings.
+ * output.c (psnameout, pslineout): new fns.
+ * protos.h: add declarations for the various new fns and
+ variable encodetype3.
+ * resident.c (getdefaults): handle J directive.
+
+2019-05-03 Akira Kakuto <kakuto@w32tex.org>
+
+ * dvips.c, output.c, search.c: Support non-ascii file names
+ in default code page of OS irrespective of values of a
+ variable 'command_line_encoding' (Windows only).
+
+2019-04-30 Karl Berry <karl@tug.org>
+
+ * dosection.c (dosection): close PostScript string constant
+ for long filenames. tex-k mail from Arnaud Blouin,
+ 24 Apr 2019 13:54:10.
+
+2019-04-07 Karl Berry <karl@freefriends.org>
+
+ * TeX Live 2019.
+
+2019-04-05 Karl Berry <karl@tug.org>
+
+ * dospecial.c (dospecial): off by one with PSFILESIZ.
+ Report from Andy Nguyen of ETH Zurich.
+
+2019-03-30 Karl Berry <karl@freefriends.org>
+
+ * emspecial.c (bmpgraph): avoid writing after isblack
+ if clrtablesize is >256.
+ Report from Andy Nguyen of ETH Zurich.
+
+2019-03-29 Karl Berry <karl@freefriends.org>
+
+ * loadfont.c (errbuf),
+ * protos.h (errbuf): increase to 1500.
+ * dospecial.c,
+ * flib.c,
+ * makefont.c,
+ * output.c,
+ * pprescan.c,
+ * scanpage.c,
+ * tfmload.c: limit sprintf %s arguments into buffers.
+
+ * dospecial.c (dospecial) <bare psfile>: reverse sense of maccess
+ test, as intended; check for buffer overflow.
+ (maccess): add doc.
+
+ * color.c (colorcmdout),
+ * dospecial.c (dospecial) <epsfile>, <postscriptbox>, <psfile>:
+ check for buffer overflows.
+ * test-overflow-buffers.test,
+ * testdata/color.pro,
+ * testdata/overflow-color-push.dvi,
+ * testdata/overflow-color-push.tex,
+ * testdata/overflow-epsfile.dvi,
+ * testdata/overflow-epsfile.tex,
+ * testdata/overflow-psbox.dvi,
+ * testdata/overflow-psbox.tex: new test files and support.
+ * Makefile.am (TESTS, EXTRA_DIST, DISTCLEANFILES): add new tests.
+ Report from Andy Nguyen of ETH Zurich.
+
+2019-02-26 Hironobu Yamashita <h.y.acetaminophen@gmail.com>
+
+ * afm2tfm.c: Forbid too long file name.
+
+2019-02-11 Karl Berry <karl@tug.org>
+
+ * dvips.texi,
+ * dvips.h,
+ * configure.ac,
+ * afm2tfm.c: 5.999 for TL'19.
+
+2018-10-24 Karl Berry <karl@tug.org>
+
+ * writet1.c (t1_check_unusual_charstring): don't call
+ strlen(t1_buf_array) if it is null.
+ From Luigi, 22 Oct 2018 22:43:03.
+
+2018-09-18 Nick Roessler <nicholas.e.roessler@gmail.com>
+
+ * writet1.c (t1_check_unusual_charstring): protect against buffer
+ overflow.
+
+2018-04-14 Karl Berry <karl@tug.org>
+
+ * Version 5.998 for TeX Live 2018 release.
+
+2018-02-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * color.c (colorpage),
+ * dospecial.c (bangspecial),
+ * dvips.h (header_list):
+ don't use ersatz array as last struct member; change usage.
+ Reported (implicitly, as part of)
+ https://trac.macports.org/ticket/53974
+
+2018-01-27 Hironobu Yamashita <h.y.acetaminophen@gmail.com>
+
+ * tfmload.c, dvips.h: Support new JFM spec (3-byte characters
+ in TYPE > 0).
+
+2017-05-19 Karl Berry <karl@tug.org>
+
+ * Version 5.997 for TeX Live 2017 release.
+
+2017-03-27 Karl Berry <karl@freefriends.org>
+
+ * Makefile.am (AM_TESTS_ENVIRONMENT): use instead of TESTS_ENVIRONMENT.
+
+2017-03-22 Karl Berry <karl@tug.org>
+
+ * dvips.texi: don't claim -q quiets standard error.
+ Report from Igor Liferenko.
+
+2017-03-21 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * dvips.c: Show information and exit if dvips finds options
+ --help or --version. Report from Igor Liferenko:
+ http://tug.org/pipermail/tex-k/2017-March/002748.html
+
+2017-03-18 Karl Berry <karl@tug.org>
+
+ * configure.ac,
+ * NEWS
+ * dvips.c,
+ * dvips.h,
+ * afm2tfm.c,
+ * dvips.texi: version 5.997 for TL17.
+
+2017-02-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * dvips.c: In the case of -T option, reverse the default in the change
+ made on 2016-11-01. Thanks Ulrike Fischer:
+ http://tug.org/pipermail/tex-live/2017-February/039743.html.
+
+2016-12-13 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * emspecial.c: Fix a bug in emspecial(), reported by Norbert Klingen:
+ http://tug.org/pipermail/tex-live/2016-December/039483.html.
+
+2016-11-08 Karl Berry <karl@freefriends.org>
+
+ * dvips.texi,
+ * NEWS: document new papersize special behavior and options.
+ Original report at http://tex.stackexchange.com/questions/336545.
+
+2016-11-01 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * dospecial.c, dvips.c, dvips.help, protos.h, resident.c:
+ Add a new option -L* Last special papersize wins.
+ dvips -L0 ... gives the old behavior.
+
+2016-10-30 Karl Berry <karl@tug.org>
+
+ * output.c (INVALID_EPOCH_VALUE): define as (time_t) -1,
+ to avoid warning with huge unsigned value on 32-bit systems.
+ (open_output): don't duplicate writing of %%CreationDate.
+
+ * dvips.texi (Invoking Dvips): TEXCONFIG does not include
+ . by default.
+
+2016-07-15 Karl Berry <karl@tug.org>
+
+ * config.ps (ieeecs): new paper size for IEEE Computer Society
+ Journals, requested by Michael Shell for his IEEEtran,
+ 13 Jul 2016 20:04:25.
+
+2016-06-29 Karl Berry <karl@tug.org>
+
+ * dvips.texi: remove idvi reference, long gone.
+
+2016-05-20 Karl Berry <karl@tug.org>
+
+ * Version 5.996 for TeX Live 2016.
+
+2016-05-06 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * output.c: Avoid to crash for too large a value of SOURCE_DATE_EPOCH
+ (w32 only).
+
+2016-05-04 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * output.c: Support SOURCE_DATE_EPOCH for %%CreationDate.
+
+2016-03-24 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * writet1.c: Fix one-byte buffer overflow bug reported by Hanno Boeck:
+ http://tug.org/pipermail/tex-live/2016-January/037686.html.
+
+2016-02-01 Karl Berry <karl@tug.org>
+
+ * dvips.1,
+ * afm2tfm.1: ask for bug reports to go to tex-k.
+
+2016-01-21 Karl Berry <karl@freefriends.org>
+
+ * dvips.texi (Afm2tfm options) <-a>: document new option.
+ * afm2tfm.c (openfiles): new option -a.
+ (USAGE): include it in list for --help.
+ (noaccentheightadjust): new global to remember it.
+ (texheight): do nothing if -a is specified,
+ or if the heuristically-guessed height is less than the original.
+ Bug report from Michael Sharpe.
+
+2015-07-10 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * test-dvips (removed): Renamed ...
+ * test-dvips.test (new): ... into this.
+ * Makefile.am: Better dependencies for 'make check'.
+
+2015-07-08 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Better dependencies for 'make check'.
+
+2015-05-21 Karl Berry <karl@tug.org>
+
+ * version 5.995 for TL'15.
+
+2015-04-17 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am (EXTRA_DIST): Adapted.
+
+2015-04-17 Karl Berry <karl@tug.org>
+
+ * contrib/PSTricks: remove this ancient copy of a PSTricks README.
+ * special.lpro (/psfts, /startTexFig, /doclip, /endTexFig):
+ remove these defns from (obsolete and nonfree) psfig.
+ * testdata/special.pro: regenerate.
+ * dvips.texi (Why Dvips): remove paragraph about psfig and
+ other features that are no longer especially interesting.
+ Report from Werner Fink, 14 Apr 2015 17:16:23.
+
+2015-03-15 Karl Berry <karl@tug.org>
+
+ * configure.ac,
+ * NEWS
+ * dvips.c,
+ * dvips.h,
+ * afm2tfm.c,
+ * dvips.texi: version 5.995 for TL'15.
+
+2015-02-16 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Use the fragment ../../am/dist_hook.am.
+
+2014-07-15 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * t1part.c, t1part.h: Rename _HUGE => BORLAND_HUGE to avoid
+ conflicting names.
+
+2014-06-19 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * afm2tfm.c, dospecial.c, emspecial.c, resident.c, writet1.c:
+ Avoid undefined behaviour when char is signed.
+
+2014-06-16 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * {,squeeze/}Makefile.am: Drop the obsolete ACLOCAL_AMFLAGS.
+
+2014-04-17 Karl Berry <karl@tug.org>
+
+ * version 5.994 for TL'14.
+
+2014-01-27 TANAKA Takuji <KXD02663@nifty.ne.jp>
+
+ * dvips.c: Revise procedure of reading command line arguments.
+ (Windows only)
+
+2014-01-13 TANAKA Takuji <KXD02663@nifty.ne.jp>
+
+ * dvips.c, resident.c: Allow multibyte string with 0x5c
+ in CP932-like system. (Windows only)
+ * dvips.c, output.c, search.c: Allow Unicode file names.
+ (Windows only)
+
+2013-09-16 Karl Berry <karl@tug.org>
+
+ * writet1.c: formatting tweaks.
+
+2013-08-31 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * writet1.c (t1_subset_ascii_part): Remove UniqueID.
+ Report from Christian Zietz (czietz/gmx/net),
+ tex-k 01 Sep 2013 11:25:47 and previous.
+
+2013-08-05 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * bbox.c: Fix a bug in bbdopage() to obtain correct BoundingBox in
+ vertical mode of pTeX.
+
+2013-05-30 Karl Berry <karl@tug.org>
+
+ * version 5.993 for TL'13.
+
+2013-04-07 Karl Berry <karl@tug.org>
+
+ * resident.c (getdefaults) <m>: if <= 0, set to INT_MAX.
+ Bug report from Stepan Orevkov and Bruno Delprat, as part
+ of their Mayan TeX system (info on which:
+ http://tug.org/TUGboat/tb33-3/tb105delprat.pdf).
+
+ It seems there is a bug related to Dvips' section splitting and
+ partial font downloading/font reuse, such that only the
+ characters from the first section are available through the
+ entire output. I wasn't up for dealing with that; as a
+ workaround, the above maximizes Dvips' memory available, so no
+ splitting is done.
+
+2013-04-05 Karl Berry <karl@tug.org>
+
+ * configure.ac,
+ * dvips.texi,
+ * dvips.h,
+ * afm2tfm.2c: 5.993 to prepare for TL'13 pretest.
+
+2013-03-19 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * same-name.test: New test with oname == iname.
+ * Makefile.am: Add the new test.
+
+2013-03-18 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * dvips.c: Check if oname != iname.
+
+2013-02-08 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am (prologdir): Change texmf => texmf-dist.
+
+2013-01-21 Karl Berry <karl@tug.org>
+
+ * test-dvips: rename from dvips.test, to avoid new Automake 1.13
+ make check failure, since it can't create dvips.log in the
+ event that dvips.log already exists (from running dvips.texi).
+ Even though one is in the srcdir and one in the builddir ...
+ Use test-dvips rather than dvips-test just to help filename completion.
+ * Makefile.am (TESTS): rename.
+
+2013-01-18 Karl Berry <karl@tug.org>
+
+ * writet1.c: apply diffs (cast removals) from pdftex.
+
+2012-12-17 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * squeeze/Makefile.am: Enable silent rules.
+
+2012-12-07 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * finclude.c: Drop unused variable (gcc-4.6 warning).
+
+2012-11-19 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Avoid use of deprecated INCLUDES.
+
+2012-08-10 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * ptexmac.h: Drop unused definition of M_PI & Co.
+
+2012-07-01 Karl Berry <karl@freefriends.org>
+
+ * Release of 5.992 for TeX Live 2012.
+
+2012-04-01 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * dvips.c: do not free getenved string.
+
+2012-03-30 Norbert Preining <preining@logic.at>
+
+ * resident.c: add new directive "c<filename> to config files, allowing
+ to include other config files.
+ * dvips.texi: document it.
+ * contrib/config.proto: add example.
+
+2012-03-15 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Fixed a typo (in comment).
+
+2011-12-06 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Replace ${prefix}/texmf => $(datarootdir)/texmf.
+
+2011-10-20 Werner Fink <werner@suse.de>
+
+ * dospecial.c (fgetboundingbox): Increase `buf' size to avoid
+ overrun.
+
+2011-10-04 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am (EXTRA_DIST, DISTCLEANFILES): Make sure that
+ 'make distclean' removes all generated files.
+
+2011-07-26 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * bbox.c, dopage.c, dvips.c, pprescan.c, scanpage.c, dvips.1,
+ dvips.help, dvips.info and dvips.texi: pTeX with otf package
+ by S. Saito requires set2, put2, and independent options
+ -noomega and -noptex.
+
+2011-06-16 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * afm2tfm.c (openfiles), resident.c (residentfont): Allow
+ find_suffix() to return a const string.
+
+2011-06-16 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * protos.h, loadfont.c (pkopen), search.c (pksearch): Declare
+ font name as const.
+
+2011-05-06 Karl Berry <karl@tug.org>
+
+ * writet1.c: update copyright as in pdftexdir.
+
+2011-04-25 Karl Berry <karl@tug.org>
+
+ * afm2tfm.c (version),
+ * dvips.h (BANNER): 5.991 for TeX Live 2011.
+
+ * dvips.texi,
+ * dvips.1: do not suggest that the default output is to lpr.
+
+2011-02-25 Karl Berry <karl@tug.org>
+
+ * drawPS.c (flushDashedPath): cast to double before squaring,
+ to avoid integer overflow. (I guess this was hidden before by the
+ assignment cast to float? Said to work in 2009, failed in 2010.)
+ * eepic-nan.test,
+ * testdata/eepic-nan.tex,
+ * testdata/eepic-nan.dvi,
+ * testdata/config.pdf,
+ * testdata/alt-rule.pro,
+ * testdata/tex.pro: new files to test. Report from Stefan Moser
+ to mactex-support, 20 Oct 2010 02:37:45.
+ * Makefile.am (tests): add eepic-nan,
+ (EXTRA_DIST): add new files.
+
+2011-02-14 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * output.c: print R2 mode message only when secure == 2.
+
+2011-01-29 Karl Berry <karl@tug.org>
+
+ * search.c (search): report the actual popen call if D_FILES.
+ * quotecmd.tex: make test filename match quotecmd-test.pl.
+ * quotecmd.dvi: regenerate.
+ * quotecmd-test.pl: doc fixes.
+
+2011-01-28 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Add testdata/quotecmd.dvi to EXTRA_DIST.
+
+2011-01-28 Karl Berry <karl@tug.org>
+
+ * quotecmd-test.pl, testdata/quotecmd.tex: doc fixes.
+ * testdata/quotecmd.dvi: add to repo, since the test relies on
+ this file existing.
+
+2010-12-01 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * writet1.c: Still more tweaks. Remove unused code and vars.
+
+2010-11-29 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * writet1.c: Further reduce diffs against pdftex's writet1.c.
+ Declare t1_encoding as enum instead of int.
+ Change t1_builtin_enc() from void to char **.
+
+ * writet1.c, protos.h: Replace void load_enc(char *, const char **)
+ by char **load_enc_file(char *).
+ * download.c (getEncoding): Adapt, and change result to non-const.
+ Somewhat better use of DOWNLOAD_USING_PDFTEX.
+
+2010-11-29 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * writet1.c (t1_check_unusual_charstring): Drop unused variable.
+
+2010-11-26 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * writet1.c: Still more minor tweaks.
+
+2010-11-26 Thanh Han The <thanh@river-valley.org>
+
+ * writet1.c (t1_check_unusual_charstring): switch EOL to space
+ before appending.
+
+2010-11-16 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * writet1.c: Still more formatting tweaks.
+
+2010-11-14 Karl Berry <karl@tug.org>
+
+ * writet1.c: endless formatting tweaks.
+
+2010-11-13 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * download.c: Change i<MAX_CHAR_CODE into i<=MAX_CHAR_CODE, because
+ MAX_CHAR_CODE is 255 now.
+
+2010-11-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * download.c [MAX_CHAR_CODE]: Define as 255 (not 256).
+
+ * writet1.c: More formatting and other trivial changes, to
+ further reduce diffs against pdftex's writet1.c.
+
+2010-11-12 Karl Berry <karl@tug.org>
+
+ * writet1.c: formatting changes only, to reduce diffs against
+ pdftex's writet1.c.
+
+2010-11-11 Thanh Han The <thanh@river-valley.org>
+
+ * writet1.c (t1_check_unusual_charstring): new fn.
+ (t1_subset_charstrings): call it. This resolves a bug reported by
+ Knuth when there is a newline between the /CharStrings and the
+ following number (dict size).
+
+2010-10-23 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * output.c (hvpos): simplify the change 2010-10-22.
+ Many thanks Peter.
+
+2010-10-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * output.c (hvpos): recover the old code in hvpos() for japanese
+ because the changed code leads to incorrect result in some cases.
+ other cases than japanese are not affected.
+
+2010-10-02 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * search.c (selfautoloc_prog): #include <kpathsea/concatn.h>
+ for WIN32 and drop cast of concatn() results.
+
+2010-06-19 Yan Li <yan.i.li@intel.com>
+
+ * tfmload.c (name): increase size to 500.
+ (tfmopen): check for name length overflow.
+
+2010-06-13 Karl Berry <karl@tug.org>
+
+ * dvips.texi: update for 2010.
+
+2010-06-04 Karl Berry <karl@tug.org>
+
+ * afm2tfm.c (version),
+ * dvips.h (BANNER): 5.99 for TeX Live 2010 (pretest 2, maybe final).
+
+2010-05-25 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * config.ps: include cid-base.map.
+
+2010-05-25 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * search.c: quote command in W32 case to allow path name
+ with spaces.
+
+2010-05-18 Karl Berry <karl@tug.org>
+
+ * config.h (type1path): rename from type1.
+ * writet1.c (t1_open): use type1path, not headerpath.
+
+ * configure.ac (AC_INIT),
+ * afm2tfm.c: (version),
+ * dvips.c (main),
+ * dvips.h (BANNER): 5.99/pretest, 2010.
+
+2010-05-14 Karl Berry <karl@tug.org>
+
+ * resident.c,
+ * output.c: more sprintf -> snprintf.
+
+2010-05-10 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * dvips.h [SET_BINARY]: Add cast to void.
+ * afm2tfm.c, finclude.c, output.c, search.c (SET_BINARY): Once
+ again remove casts to void.
+
+2010-05-10 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * all files: Remove more useless casts to void.
+
+ * afm2tfm.c, finclude.c, output.c, search.c: Reintroduce a few
+ casts to void, to avoid warnings (statement has no effect).
+
+2010-05-10 Karl Berry <karl@tug.org>
+
+ * drawPS.c,
+ * flib.c,
+ * finclude.c,
+ * afm2tfm.c,
+ * hps.c,
+ * emspecial.c,
+ * dospecial.c: more snprintf.
+
+ * all files: remove useless casts to void.
+
+ * dosection.c (dosection),
+ * dospecial.c (dospecial): use snprintf, just in case.
+
+2010-05-07 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * output.c: correct wrong boundary values of characters.
+ (from Takuji Tanaka <KXD02663@nifty.ne.jp>.)
+ * protos.h, dvips.c, output.c, resident.c: remove unnecessary SJIS option.
+ (from Takuji Tanaka <KXD02663@nifty.ne.jp>.)
+ (a commit r18123 seemes to be eliminated, so try again)
+
+2010-05-07 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * dosection.c (dosection): Add newline before "@start".
+ * testdata/*.pro, testdata/*.xps: Updated.
+
+2010-05-07 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * bbox.c: Declare functions used only in this file as static,
+ remove trailing whitespace.
+ * color.c: The same.
+ * dosection.c: The same.
+ * dospecial.c: The same.
+ * dpicheck.c: The same.
+ * drawPS.c: The same.
+ * dviinput.c: The same.
+ * dvips.c: The same.
+ * emspecial.c: The same.
+ * finclude.c: The same.
+ * header.c: The same.
+ * hps.c: The same.
+ * loadfont.c: The same.
+ * output.c: The same.
+ * papersiz.c: The same.
+ * repack.c: The same.
+ * resident.c: The same.
+ * t1part.c: The same.
+ * tfmload.c: The same.
+ * unpack.c: The same.
+ * virtualfont.c: The same.
+ * writet1.c: The same. Skip compilation of unused functions.
+ * protos.h: Remove all these extern declarations.
+ * t1part.h: Remove unused K&R function declarations.
+
+2010-05-06 Karl Berry <karl@tug.org>
+
+ * dvips.texi: use p@TeX{} for the manual.
+
+2010-05-05 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * output.c: revert cmdout() and remove lastspecial=1 in jscout().
+ Thanks Peter.
+
+2010-05-05 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * output.c: rewrite the previous fix not to change the output format
+ for non-pTeX dvi.
+
+2010-05-05 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * output.c: minor fix of the function cmdout(). Without the fix, broken
+ ps is generated for pTeX's dvi.
+
+2010-05-05 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Implement pTeX extensions, based on patches sent by Akira.
+ Modified to reproduce former output files. Added -noptex option.
+ * bbox.c, color.c, dopage.c, dospecial.c, download.c, drawPS.c,
+ dvips.[ch], finclude.c, fontdef.c, loadfont.c, output.c,
+ pprescan.c, prescan.c, protos.h, protos_add.h, repack.c,
+ resident.c, scanpage.c, search.c, skippage.c, tex.lpro,
+ tfmload.c, virtualfont.c: pTeX extensions.
+ * dvips.1, dvips.help, dvips.texi: Documentation.
+
+2010-05-03 Jan Lieskovsky <jlieskov@redhat.com>
+
+ * dospecial.c (predospecial, bbdospecial): avoid numeric overflow.
+ tetex-3.0-CVE-2010-0739,1440-integer-overflows.patch,
+ from Ludwig Nussel, Karel Srot.
+ tlsecurity mail 30 Apr 2010 16:59:37.
+
+2010-04-26 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * afm2tfm.c: (write16()): cast argument to short to avoid warning.
+
+2010-04-25 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * writet1.c (edecrypt()): cast argument to byte to avoid warning.
+ * dvips.c: Use IS_DIR_SEP for the test of a directory separator.
+
+2010-04-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am (EXTRA_DIST): Add afm2tfm-test.pl.
+
+2010-04-11 Karl Berry <karl@tug.org>
+
+ * afm2tfm.c (staticligkern): restore spaces around semicolons,
+ accidentally removed in source cleanup.
+
+ * afm2tfm.c (throughout): use snprintf where needed.
+
+ * afm2tfm-test.pl: New test script for afm2tfm.
+
+ * Makefile.am (TESTS): Add the new test.
+
+2010-03-29 Karl Berry <karl@tug.org>
+
+ * loadfont.c,
+ * tfmload.c,
+ * virtualfont.c: concatn terminates with NULL. From Akira.
+
+2010-03-28 Karl Berry <karl@tug.org>
+
+ * all files: no spaces before semicolons.
+
+ * loadfont.c,
+ * tfmload.c,
+ * virtualfont.c,
+ * bbox.c,
+ * writet1.c,
+ * dvips.c,
+ * header.c: dynamically concatenate more error strings.
+ * protos.h (errbuf): increase.
+
+2010-03-26 Karl Berry <karl@tug.org>
+
+ * virtualfont.c (badvf, virtualfont): use concat[n] instead of
+ sprintf for error messages.
+ (<kpathsea/concatn.h>): #include.
+
+ * virtualfont.c (vfopen): do not sprintf too long of a name.
+ CVE-2010-0827, found by Dan Rosenberg.
+
+ * dospecial.c (predospecial): avoid seg fault from integer overflow.
+ CVE-2010-0739, found by Marc Schoenefeld, patch prepared
+ by Jindrich Novy.
+
+2010-02-26 Karl Berry <karl@tug.org>
+
+ * search.c (selfautoloc_prog, quote_name): remove kpse_ prefix for
+ the time being, since it seems web2c's safeness stuff can't be
+ easily factored into using them.
+
+2010-02-23 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * search.c: #include <kpathsea/variable.h> for kpse_var_value.
+
+2010-02-19 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am (EXTRA_DIST): Add the new files.
+
+2010-02-19 Karl Berry <karl@tug.org>
+
+ * search.c (kpse_self_autoloc_prog) [WIN32]: p needs to be
+ writable. From Akira.
+
+2010-02-18 Karl Berry <karl@tug.org>
+
+ * Makefile.am (TESTS): add quotecmd-test.pl.
+ * quotecmd-test.pl,
+ * testdata/quotecmd.tex: new files.
+ * search.c (search): selfautoloc gunzip, and quote name before
+ calling popen.
+ (kpse_quote_name, kpse_self_autoloc_prog): new fns,
+ only temporarily here until we factor out the common code from
+ texmfmp.c.
+
+2010-02-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * dvips.c (main): Add '#if defined(KPSE_DEBUG)' to allow
+ compilation with '-DNO_DEBUG'.
+
+2010-02-12 Karl Berry <karl@tug.org>
+
+ * search.c: remove non-KPATHSEA code. It just got too confusing
+ to keep track of which conditional we were in. (And non-KPATHSEA
+ hasn't actually worked or been used for many years, as far as I know.)
+
+2010-02-01 Karl Berry <karl@tug.org>
+
+ * dvips.h: switch banner to 5.98dev
+ * writet1.c (append_cs_return): cast to byte * to avoid warning.
+
+2010-01-03 Karl Berry <karl@tug.org>
+
+ * output.c (copyfile_general) <default>: write newline
+ after writing possibleDSCLine.
+ * beginfontk1.test,
+ * testdata/beginfontk1.{tex,eps}: new test.
+ Report from T S, 1 Jan 2010 16:32:16,
+ fix from Akira Kakuto, 02 Jan 2010 09:07:19.
+
+ * Makefile.am (TESTS_ENVIRONMENT): set TEXFONTS instead of
+ TFMFONTS, VFFONTS, and TEXFONTMAPS.
+
+2010-01-02 Karl Berry <karl@tug.org>
+
+ * dvips.texi (Debug options),
+ * dvips.1: update.
+ Report at http://bugs.debian.org/269638.
+
+2009-12-24 Karl Berry <karl@tug.org>
+
+ * INSTALLATION: rm stale file.
+ * reencode: remove stale dir, except ...
+ * contrib/treen.sh, contrib.treen2.sh: ... preserve this.
+ * Makefile.am (EXTRA_DIST): update
+
+ * AUTHORS, README, dvips.1, contrib/config.proto: doc updates.
+ * INSTALL: remove, completely stale.
+
+2009-12-22 Karl Berry <karl@tug.org>
+
+ * debug.h (D_MEM): disable completely by defining to 0.
+ Memory allocations just don't seem to be interesting.
+
+2009-12-21 Karl Berry <karl@tug.org>
+
+ * protos.h (fil2ps): remove decl.
+ * dospecial.c (fil2ps): remove fn.
+ (dospecial): warn if iff2ps or tek2ps specials are noticed.
+ The goal here was to avoid executing external programs, with that
+ inhererent security risk, when (we believe) no one is actually
+ using the functionality.
+
+2009-12-14 Karl Berry <karl@tug.org>
+
+ * emspecial.c (emspecial):
+ Increase size of emunit to 30.
+ Increase size of emstr to 250.
+ Attempt to check that we don't overflow emstr.
+ Report from Alexander, tlsec 02 Dec 2009 00:28:33.
+
+ * pc: remove obsolete subdir.
+ * Makefile.am (EXTRA_DIST): rm.
+
+2009-12-11 Alexander Cherepanov <cherepan@mccme.ru>
+
+ * protos.h (hash): change decl.
+ * resident.c (hash): return and use unsigned instead of int.
+ tlsec mail, 05 Dec 2009 19:09:56.
+
+2009-09-26 Karl Berry <karl@tug.org>
+
+ * config/config.ps (unknown): move to before nopaper; else
+ nonstandard paper sizes, e.g., with the geometry package,
+ end up unrecognized.
+
+2009-08-26 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * testdata/dvipstst.xps, pfbincl.xps: Update for version 5.98.
+
+2009-08-25 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Avoid maximal compiler warnings. Done in steps.
+
+ Step 1: Move all extern decls for global variables to headers.
+ * Makefile.am: Additional file 'protos_add.h'.
+ * protos.h: Add prototype for fliparse() from flib.c.
+ Remove prototypes from squeeze.c (now in squeeze/).
+ Add extern decls for globals from dopage.c, dosection.c,
+ dvips.c, flib.c, hps.c, loadfont.c, output.c, pprescan.c,
+ repack.c, resident.c, search.c, and tfmload.c.
+ * color.c, dosection.c, dospecial.c, download.c, dpicheck.c,
+ drawPS.c, dviinput.c, emspecial.c, finclude.c, fontdef.c,
+ header.c, makefont.c, output.c, paths.h, pprescan.c,
+ prescan.c, repack.c, resident.c, scanpage.c, skippage.c,
+ tfmload.c, virtualfont.c: Drop extern declarations.
+ * writet1.c: Remove '#ifndef pdfTeX' sections of code.
+ Drop extern declarations.
+ * dvips.c, hps.c: #include "protos.h" before defining globals.
+ Drop extern declarations.
+ * protos_add.h (new): First #include "protos.h", then add
+ extern decls for stack from dopage.c and name from loadfont.c.
+ * bbox.c, dopage.c, flib.c, loadfont.c, search.c:
+ #include "protos_add.h" (instead of protos.h). Drop externs.
+
+ Step 2: Avoid warnings: declaration of 'xxx' shadows a parameter
+ or previous local:
+ * dospecial.c (predospecial): Rename local numbytes=>num_bytes,
+ not to shadow function param.
+ Drop inner local j, not to shadow previous local.
+
+ Step 3:
+ * afm2tfm.c (vlevout, vlevnlout), download.c (clearExtraGlyphList):
+ ANSI C function definitions, i.e., '()'=>'(void)'.
+
+ Step 4: Constification of strings:
+ Step 4a: Struct members
+ * afm2tfm.c (encoding.name, encoding.vec, adobeinfo.adobename,
+ lig.succ, lig.sub, kern.succ, pcc.partname),
+ dospecial.c (KeyDesc.Entry),
+ download.c (seenEncodings.name, seenEncodings.glyphs),
+ dvips.h (header_list.Hname, papsiz.name, papsiz.specdat),
+ emspecial.c (emunit.unit), t1part.c (tablecommand.command,
+ typefonts.extension, type_key.name).
+ Step 4b: Global or static variables
+ * afm2tfm.c (staticligkern, vplligops, encligops, fontname,
+ codingscheme, interesting, accents), dospecial.c (ValStr, tasks),
+ dvips.c (oname, infont, headerfile, helparr),
+ emspecial.c (extarr), output.c (hxdata), papersiz.c (scalenames),
+ resident.c (psmapfile),
+ t1part.c (RefKey, hexstr, AfmKey, InfoKey),
+ writet1.c (hexdigits), protos.h.
+ Step 4c: Function parameter/results and local variables
+ * afm2tfm.c (error, interest, expect, findadobe, makebcpl,
+ checksum, texheight),
+ dospecial.c (specerror, IsSame, dospecial, fil2ps),
+ download.c (getEncoding, addGlyph, downpsfont),
+ dvips.c (help, error_with_perror, error, initialize, newstring,
+ main),
+ finclude.c (scan_fontnames, scanfontusage, scanfontcomments),
+ header.c (add_name, add_name_general, checkhmem, add_header,
+ add_header), hps.c (set_bitfile), loadfont.c (badpk),
+ output.c (copyfile_general, copyfile, cmdout, mhexout, nlcmdout,
+ ncstrcmp, paperspec), papersiz.c (myatodim[B
+ resident.c (bad_config, getdefaults, getpsinfo),
+ search.c (search, pksearch, my_real_fopen), tfmload.c (badtfm),
+ unpack.c (unpack), virtualfont.c (badvf),
+ writet1.c (pdftex_fail, pdftex_warn, load_enc, t1_open_fontfile,
+ t1_subset), protos.h.
+ Step 4d: Work around modifying const strings (e.g., modify
+ malloc'ed or strdup'ed strings before assigning them to a const
+ string variable):
+ * afm2tfm.c (openfiles), dvips.c (newstring, newoutname),
+ resident.c (getdefaults).
+
+2009-08-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * afm2tfm.c, dvips.c: #include <kpathsea/version.h> and drop
+ nested extern decls.
+
+2009-07-17 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * writet1.c (t1_flush_cs): cast ptr diff to unsigned long for
+ printing.
+ NB: sizeof(ptr)==sizeof(long) for both 32Bit and 64Bit systems.
+
+2009-07-16 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * squeeze/squeeze.c (__CYGWIN__): #include <unistd.h> and <io.h>
+ for isatty and setmode.
+
+2009-06-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am (AM_CFLAGS): enable compiler warnings.
+
+ * Use ANSI C function definitions and prototypes instead of
+ P[1-9][CH] macros, declare some functions as static.
+ * config.h, writet1.c: no need to #include <kpathsea/c-proto.h>.
+ * writet1.c: #include <stdarg.h>, not <kpathsea/c-vararg.h>.
+
+ * dpicheck.c: #include "protos.h".
+
+ * t1part.c (Reeverse, KillUnique): declare as static.
+
+ * writet1.c: #include "protos.h".
+ (append_cs_return): remove unused variable 'i'.
+ (t1_flush_cs): avoid uninitialized warning.
+ * protos.h: add prototypes for writet1(), t1_free(), and
+ t1_subset() from writet1.c.
+
+ * Avoid inconsistent arg1 in KPATHSEA version of pksearch (was
+ unused but different in prototype, declaration, and call).
+ * loadfont.c: remove arg1 of pksearch.
+ * protos.h: use prototype for pksearch as defined in search.c.
+ * search.c: #include "protos.h", remove prototype for newstring.
+ (pksearch): remove unused arg1.
+
+2009-06-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am (AM_CPPFLAGS): remove -DNeedFunctionPrototypes.
+ * config.h, dvips.h: always use ANSI C function definitions.
+
+2009-06-12 Francois Charette <firmicus@ankabut.net>
+
+ * afm2tfm.c: rename getline to texlive_getline.
+
+2009-06-01 Karl Berry <karl@tug.org>
+
+ * Update version numbers to 5.98.
+
+2009-05-30 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * texc.script: use correct invocation of sed.
+
+2009-05-28 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Adapt to TL2009 build system.
+
+2009-05-28 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * testdata/*: recover old test data and add missing pieces.
+ * texc.script: use sed instead of ed (which may be missing).
+
+2009-05-24 Karl Berry <karl@tug.org>
+
+ * dvips.texi (Configuration file commands): document -G,
+ including its obsolesence.
+ * Master/texmf/dvips/tetex/config.pdf: remove the G setting,
+ now actively problematic. Report from Uwe Siart,
+ 04 May 2009 09:27:27.
+
+2009-05-08 Karl Berry <karl@tug.org>
+
+ * resident.c (getpsinfo): avoid accessing unallocated downbuf[-1].
+ * dvips.c (main): do not check iname[-1] if there is no iname.
+ Reports from Akira.
+ Also prettify some related error messages.
+
+2009-04-04 Karl Berry <karl@tug.org>
+
+ * writet1.c (append_cs_return): new fn.
+ (cs_mark): check for missing return in subr.
+ (t1_flush_cs): repair missing return.
+ (t1_scan_param): check for negative lenIV.
+ These changes from Thanh, following more investigation by Melissa,
+ ChoF, and Thanh.
+
+2009-03-24 Karl Berry <karl@tug.org>
+
+ * writet1.c (t1_flush_cs): t1_lenIV >= 0, not
+ t1_lenIV > 0, to fix subset problems on Macs. Found by Melissa
+ O'Neill. Reported on ntg-pdftex@ntg.nl and pdftex@tug.org,
+ 21 March, 2009 13:45:12.
+
+2009-02-16 Karl Berry <karl@tug.org>
+
+ * dvips.texi (Config file paper sizes): document.
+ * config.ps (nopaper): new paper size to put no paper size
+ commands in the output, e.g., for multi-page EPS.
+ Report from John Bowman for Asymptote.
+
+2008-11-02 Karl Berry <karl@tug.org>
+
+ * dvips.texi (psfonts.map): apparently {somefile.pfb} was never
+ used to report partial downloading; also mention vf's a bit more.
+
+2008-09-24 Karl Berry <karl@tug.org>
+
+ * hps.c, hps.lpro: Mark (doyle/aps/org) does not want to be
+ notified of changes any longer (or for the past decade or so :).
+
+2008-09-22 Karl Berry <karl@tug.org>
+
+ * hps.c (do_html): get scale factors right.
+ (hoff, voff): remove, hh and vv are already calculated by using
+ hoff and voff in dopage.c.
+ From Akira. Report from John Frampton through tex-eplain;
+ using -O made -z fail.
+
+2008-09-20 Karl Berry <karl@tug.org>
+
+ * papersiz.c (myatol): do not require a leading zero, to match the doc.
+ From Akira. Report from John Frampton through tex-eplain.
+
+2008-07-10 Karl Berry <karl@tug.org>
+
+ * dvips.h (BANNER): 5.97, 2008.
+ * dvips.c (main): use BANNER.
+ * afm2tfm.c: 5.97.
+ * dvips.texi (version): 5.97.
+
+2008-05-07 David M. Jones <dmj@ams.org>
+
+ * output.c (copyfile_general): pass through binary characters such
+ as CTRL-D inside %%BeginFont, else embedded pfb's can get mangled.
+ tex-live mail 5 May 2008 13:11:10, tex-k mail 5 May 2008 14:08:04.
+
+2008-05-01 Karl Berry <karl@tug.org>
+
+ * squeeze.c [O_BINARY]: conditionalize calls to SET_BINARY.
+
+2008-04-30 Karl Berry <karl@tug.org>
+
+ * squeeze.c (SET_BINARY) [O_BINARY]: conditionalize #define.
+ Cast call to specialout. (From Akira.)
+
+2008-04-29 Karl Berry <karl@tug.org>
+
+ * Makefile.in (install-data): do not cd $(srcdir) in any rule,
+ that fails when the install program is specified by a relative path.
+
+ * squeeze.c: avoid all old-system conditionals, linking with
+ kpathsea, etc.
+
+2008-04-28 Karl Berry <karl@tug.org>
+
+ * dvips.h: id.
+ * squeeze.c [!KPATHSEA]: conditionalize #undef fopen,
+ and add decl with return type.
+ * afm2tfm.c: semi-prototype fopen if it got #undef'd.
+ Bug report from vvv, 27 Apr 2008 13:43:37.
+
+2008-02-29 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * acconfig.h: removed.
+
+2008-02-17 Karl Berry <karl@tug.org>
+
+ * config.ps (smallbook): new paper size for Texinfo.
+
+2008-01-31 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Convert from autoconf-2.13 to autoconf-2.59+:
+ * Makefile.in: Add @configure_input@ line.
+ * aclocal.m4 (new): Generated (aclocal -I ../m4).
+ * configure: Regenerated (autoconf).
+
+2007-12-23 Karl Berry <karl@tug.org>
+
+ * dvips.c (helparr): Start options with -, include url.
+
+2007-12-02 Karl Berry <karl@tug.org>
+
+ * skippage.c (skippage): do not test for noomega here; we aren't
+ actually parsing the DVI operations, so argument bytes can
+ erroneously cause complaints.
+ Report on tex-live from W. Fleischer, 27 Nov 2007 17:43:47.
+
+2007-10-24 Karl Berry <karl@tug.org>
+
+ * config.ps (unknown): duplicated entry, remove one.
+
+2007-10-22 Karl Berry <karl@tug.org>
+
+ * hps.c (stamp_external, stamp_hps): protext against long strings.
+ From Bastien Roucaries via Norbert, 21 Oct 2007 13:22:19,
+ Debian bug 447081.
+
+2007-10-12 Karl Berry <karl@tug.org>
+
+ * resident.c (i): declare as int, in case tfmload() returns 65536
+ for an ofm font.
+ From Akira, 11 Oct 2007 11:39:52.
+
+2007-09-24 Karl Berry <karl@tug.org>
+
+ * dvips.texi (psfile special): document llx/lly/urx/ury, based on
+ a description from Tom R.
+
+2007-08-28 Karl Berry <karl@tug.org>
+
+ * dvips.h: clarify license (again).
+
+2007-06-13 Karl Berry <karl@tug.org>
+
+ * config.ps: use integral mm values (from Akira).
+
+2007-06-10 Karl Berry <karl@tug.org>
+
+ * dospecial.c: implement ps::nobreak for Scott (Pakin); we need
+ to break by default because pstricks is written to assume that,
+ and we can't ask Herbert to rewrite thousands of lines of code.
+
+2007-05-31 Karl Berry <karl@tug.org>
+
+ * hps.c (finish_hps): remove head.tmp and body.tmp unless
+ we are debugging. Report from Dan Luecking, 25 May 2007 13:00:17,
+ fix from Akira.
+
+2007-05-09 Karl Berry <karl@tug.org>
+
+ * dvips.c, finclude.c: cleanups of my patching from Akira.
+
+2007-05-06 Karl Berry <karl@tug.org>
+
+ * finclude.c, dvips.c: keep track of last-unused psname (Akira).
+ * dvips.c (DEFRES): move down.
+ * dvips.c (--help): just mention Tom R.
+
+2007-05-05 Karl Berry <karl@tug.org>
+
+ * dvips.h (DOWNLOADEDPSSIZE): new constant.
+ * dvips.c (downloadedpsname): new global array.
+ * finclude.c: set it up as we download.
+ * download.c: use it to avoid downloading fonts as both header
+ and font. (From Akira.)
+
+2007-05-04 Karl Berry <karl@tug.org>
+
+ * dvips.h (BANNER): change to 5.96dev to distinguish from the release.
+
+ * header.c (add_name, add_header): cast result of
+ add_header_general to int and return it. From Akira.
+
+2007-03-23 Karl Berry <karl@tug.org>
+
+ * dvips.texi: document it.
+ * dvips.c, loadfont.c, resident.c: also report map files
+ and config files, if the envvar DVIPSDEBUG is set. From Akira.
+
+2007-03-20 Karl Berry <karl@tug.org>
+
+ * download.c, output.c, emspecial.c: report full pathnames,
+ to help debugging and for consistency with TeX. From Akira.
+
+2007-03-19 Karl Berry <karl@tug.org>
+
+ * config.ps (screen): add this, 8.25x11, for powerdot. (From Akira.)
+
+2006-12-09 Karl Berry <karl@tug.org>
+
+ * dvips.texi (Config file paper sizes): best match now. (From Akira.)
+
+2006-12-07 Karl Berry <karl@tug.org>
+
+ * Changes made and accumulated by Akira:
+(1) security problem
+ -R0 : shell escape and absolute path are allowed
+ -R1 : shell escape is forbidden and absolute path is allowed
+ (default)
+ -R2 : shell escape and absolute path are forbidden
+
+(2) line breaking problem in ps: special (Scott Pakin).
+
+(3) Heiko's change of hps.lpro.
+
+(4) paper size problem:
+ * Is the dimension close enough for a match? We use a quarter inch
+ * as a match; this is 65536*72.27/4 or 1,184,072 scaled points.
+--->
+ * Is the dimension close enough for a match? We use 5bp
+ * as a match; this is 65536*72.27*5/72 or 328909 scaled points.
+and dvips now finds the best match rather than the first match.
+
+2006-12-06 Karl Berry <karl@tug.org>
+
+ * output.c (copyfile_general): add removingBytes=0, to avoid
+ omitting the line after %%EndData or %%EndBinary with -K1.
+ tex-k mail from t s, 29 Nov 2006 21:11:14.
+
+2006-12-05 Karl Berry <karl@tug.org>
+
+ * dvips.h (BANNER): bump version to 5.96 for 2006, why not.
+
+2006-07-06 Karl Berry <karl@tug.org>
+
+ * dvips.texi: mention -tunknown to avoid floating to predefined
+ paper size. From Vincent Fourmond, tex-k mail, 25apr06.
+
+2006-06-02 Karl Berry <karl@tug.org>
+
+ * dvips.texi: typo
+
+2004-05-10 Karl Berry <karl@tug.org>
+
+ From Matthew Swift <swift@alum.mit.edu>, via Debian bug 181065:
+ * config.ps: improve comments.
+ * output.c (open_output) [DJGPP]: do not disable writing to a pipe
+ when secure; we don't do that in the non-DJGPP case.
+ * dvips.texi (Option details): -R does not disable output to a pipe.
+ (Configuration file commands): typo in `o' doc.
+
+WARNING: THIS CHANGELOG IS WAY OUT OF DATE.
+
+2001-06-02 Sebastian Rahtz <sebastian.rahtz@computing-services.oxford.ac.uk>
+
+ * resident.c: added option to config file ('z') to have the same
+ effect as -R (secure mode)
+
+Mon Jan 10 21:39:20 CET 2000
+ * from pdftex distribution: improved partial font downloading
+ ported back
+ * .notdef related fixes for afm2tfm
+
+Sun Apr 11 09:03:29 CEST 1999
+ * output.c: (from Tom Rokicki)
+ Faster inclusion of DOS EPSF files. Use byte counter to avoid
+ calling ftell().
+
+Wed Apr 7 01:07:41 CEST 1999
+ * Makefile.in: added -DSHIFTLOWCHARS to compiler flags
+ * output.c: corrected T1Char function for SHIFTLOWCHARS
+
+Mon Mar 9 10:31:44 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * clean reencoding/asex.enc; small fix to copyright year (from
+ Thomas Esser)
+
+Fri Mar 6 10:56:28 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * dvips.h (BANNER): changed to 5.78, as per Tom. also afm2tfm.c
+ and dvips.c
+
+ * tex.lpro: (from Tom Rokicki)
+ Richard Sites of Adobe found a bug in dvips that
+ causes dvips-generated output, when piped through Distiller, to
+ fail. The problem is that dvips uses names in its encoding array
+ that are `illegal' according to distiller. I've encouraged him to
+ patch up distiller to `do the right thing', but I need to fix
+ dvips too. The patch I've come up with is to change, in tex.lpro,
+
+ 0 1 255 {IE S 1 string dup 0 3 index put cvn put} for
+ to
+
+ 2 string 0 1 255 { IE S dup 360 add 36 4 index cvrs cvn put } for pop
+
+Tue Mar 3 10:15:37 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * afm2tfm.c: Tom Browder <tbrowde@asi-fwb.com>. To fix the case
+ where the afm file has a -1 for the CC encoding position
+
+Wed Feb 25 10:52:19 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * patches to add facility to shift characters below 32 to higher
+ positions, if possible, activated by -G. By default, this is not
+ activated, needs -DSHIFTLOWCHARS in the Makefile, as I am not sure
+ about it, but the conditional code is there to study for those who
+ want to experiment
+
+Tue Feb 24 11:56:52 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * Makefile.in: clean up check target to be self-contained
+
+Mon Feb 23 10:11:57 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * resident.c: changed parsing of "<<" so that the font is passed
+ through to be treated as a font, not a procset. it will still be
+ partially downloaded, though.
+
+Tue Feb 17 10:17:40 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * dvips.c: logic of #ifdef Omega was reversed for help message,
+ corrected
+
+Mon Feb 16 12:33:30 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * afm2tfm.c: fixes for explicit extension by Thomas Esser:
+ Several things did not work as expected:
+ - removing the suffix by putting \0 at the position found by
+ find_suffix(outname) does not work, as find_suffix returns the
+ position *after* the last dot
+ - memmove(outname, p, strlen(p)) (where p = basename(outname))
+ should be memmove(outname, p, strlen(p)+1), but I think that
+ we should just use two strcpy calls since memmove is not
+ available on every platform.
+
+
+Mon Feb 9 10:56:25 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * put data files for "make check" into testdata/, to avoid them
+ being zapped by "make extraclean"
+
+ * patch to dvips.texi from Thomas Esser
+
+Mon Feb 2 11:32:32 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * small fix in make check target of Makefile.in
+
+Tue Jan 27 14:32:25 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * configure etc: new configure.in, c-auto.in, Makefile.in from
+ Olaf Weber
+
+Tue Jan 27 13:49:11 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * ChangeLog: changes to "check" target (explicit -D
+ 300). regenerated .xps file.
+
+Mon Jan 19 20:45:15 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * renamed contrib/volker config.* files to *.cfg, and to shorter
+ names (screen to scr) for DOS 8+3 naming
+
+ * added .tfm and .vf files for make check to directory;
+ changed permissions of dvips.texi
+
+Sat Jan 17 15:08:57 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * assorted patches from Peter Breitenlohner, Olaf Weber,
+ Fabrice Popineau etc. Hope it all still works.
+
+Fri Jan 16 21:28:44 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * dvips.c: patch from John Plaice for odvips, to flag odvips as program
+ name
+
+Thu Jan 1 10:59:29 1998 Sebastian Rahtz <s.rahtz@elsevier.co.uk>
+
+ * provided prebuilt dvipstst.xdv and dvipstst.xps to allow
+ check target to work.
+
+Wed Aug 27 20:18:20 1997 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * stamp-auto: Remove this file, should be in build tree, not in
+ source tree.
+
+ * configure.in: Make `configure' rebuild the `stamp-auto' file.
+
+Sun Aug 24 18:04:14 1997 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.in: Allow `make check' when $(srcdir) is not `.'.
+
+Fri Mar 07 12:10:46 1997 Fabrice POPINEAU <popineau@ese-metz.fr>
+
+ * config.h: introduce prototyping when __STDC__ is defined.
+ * dvips.h: defines a PROTO() macro according to __STDC__.
+ * dvips.h: getenv() is declared here.
+
+ * dvips.c:
+ * emspecial.c:
+ * output.c:
+ * resident.c: use the PROTO() declaration.
+ * resident.c: bad_config was called whitout argument.
+ * squeeze.c: exit() declaration.
+
+Thu Feb 6 17:34:06 1997 Karl Berry <karl@cs.umb.edu>
+
+ * Version 5.66a.
+
+Sat Feb 1 17:15:39 1997 Karl Berry <karl@cs.umb.edu>
+
+ * t1part.c: Changes to avoid compiler warnings. From Tom.
+
+ * Makefile.in (program_files): dvipstst.dvi should be included
+ for make check.
+ From: Joern Clausen <joern@techfak.uni-bielefeld.de>.
+
+Sun Jan 19 12:47:37 1997 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (version): Now 5.66a.
+ * dvips.texi: Update version number.
+ * download, finclude.c, output.c: Update for new version.
+
+Fri Jan 17 10:06:25 1997 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (version): Now 5.64a.
+
+ * finclude.c, t1part.[ch], resident.c, output.c, download.c,
+ dopage.c: Update for dvips 5.64.
+
+ * afm2tfm.c (writevpl): No vname in CHARACTER property.
+ (version): Now 8.1.
+
+Tue Jan 14 14:50:27 1997 Karl Berry <karl@cs.umb.edu>
+
+ * hps.c (PAGESIZE): #undef.
+
+Mon Jan 13 14:25:07 1997 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.h (BANNER): Add www.radicaleye.com per Tom.
+
+Sun Jan 12 10:57:34 1997 Karl Berry <karl@cs.umb.edu>
+
+ * texps.lpro: Change /setfont line to use cvx instead of load.
+ Fix from Tom, reported by poortom@apmisc.ibm.co.jp for the QMS 1725.
+
+Sun Jan 5 12:05:54 1997 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in: Remove special case for t1part.c, and add it to
+ objects. We compile it normally now.
+ * bbox.c, dospecial.c, drawPS.c, dvips.c, dvips.h, tex/epsf.tex,
+ search.c, virtualfont.c, tex.lpro, finclude.c
+ afm2tfm.c: Updates for dvips 5.62.
+
+Mon Dec 9 17:24:58 1996 Karl Berry <karl@cs.umb.edu>
+
+ * t1part.c (CHAR) [WIN32]: #define as CHARACTER to work around
+ <windows.h> typedef.
+
+Sat Dec 7 17:21:37 1996 Karl Berry <karl@cs.umb.edu>
+
+ * dospecial.c (system): Don't bother to declare, it returns an int.
+
+ * afm2tfm.c, dvips.c, emspecial.c, output.c, resident.c: Various
+ WIN32 changes from Fabrice.
+
+Tue Dec 3 01:25:28 1996 Ulrik Vieth <vieth@thphy.uni-duesseldorf.de>
+
+ * afm2tfm.c: Fix version message.
+
+Mon Dec 9 01:29:41 1996 Ulrik Vieth <vieth@thphy.uni-duesseldorf.de>
+
+ * afm2tfm.c: Reformat usage message slightly for consistency.
+ Issue "Try --help" message if called with no args.
+
+Tue Dec 3 01:25:28 1996 Ulrik Vieth <vieth@thphy.uni-duesseldorf.de>
+
+ * afm2tfm.c: Fix version message.
+
+Thu Nov 28 09:33:13 1996 Karl Berry <karl@cs.umb.edu>
+
+ * resident.c: Pass explicit error strings to bad_config.
+ * dvips.h (INT_FORMAT) [SHORTINT]: Define as %ld or %d.
+
+ * t1part.c (ScanChars): Cast label[counter].select, which is a char,
+ to int, for the sake of machines where char is unsigned by default,
+ such as the RS/6000.
+
+Wed Nov 27 10:06:27 1996 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (program_files): Don't bother to include dvipstst.dvi.
+
+Fri Nov 15 16:22:42 1996 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (install-exec): Use INSTALL_LIBTOOL_PROG for
+ binaries.
+
+Sun Nov 10 16:29:31 1996 Karl Berry <karl@cs.umb.edu>
+
+ * t1part.c (PartialPFB): Return value from fread is an int,
+ not a pointer, so don't compare to NULL.
+
+Thu Nov 7 14:53:08 1996 Karl Berry <karl@cs.umb.edu>
+
+ * papersiz.c (myatodim, myatol): If error, give the erroneous string.
+
+Sun Oct 27 16:20:58 1996 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (check): Don't run TeX.
+ (program_files): Distribute dvipstst.dvi.
+
+ * resident.c (c_lineno): Remove invalid second declaration.
+
+ * t1part.c (PartialPFA): Cast UniRealloc result to avoid warning
+ from SunOS cc.
+ (UniRealloc) [KPATHSEA_TYPES_H]: Define as xrealloc, not just realloc.
+
+Sun Oct 20 11:25:27 1996 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (install-data): mkdirchain dvips_plain_macrodir.
+ (post-dist): Link in tex.
+ *.tex: Move to tex/ subdirectory.
+
+Fri Oct 18 14:51:03 1996 Karl Berry <karl@cs.umb.edu>
+
+ From: Marek Rouchal <marek@btfmd1.fs.uni-bayreuth.de>.
+ These changes finish implementing multiple epsf output files.
+ * bbox.c (findbb): Pass in bop location.
+ * dvips.c: for -i, default section size to one page.
+ Change call to initprinter.
+ * output.c (epsftest): Change call to findbb.
+ (initprinter): Take sectiontype as parameter instead of page count.
+
+Mon Oct 14 11:25:13 1996 Karl Berry <karl@cs.umb.edu>
+
+ * Changes for NT from Fabrice POPINEAU <popineau@esemetz.ese-metz.fr>.
+ * hps.c: Rename Rectangle to dvipsRectangle.
+ * dvips.h (ERROR, NO_ERROR): #undef.
+ * paths.h (DVIPSRC) [WIN32]: Define as dvips.ini
+ * output.c: WIN32 conditionals a la MSDOS.
+
+Sun Oct 13 13:40:26 1996 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (main),
+ * output.c (epsftest): Remove condition that document be a single
+ page for -E.
+ Suggested by: Marek Rouchal <marek@btfmd1.fs.uni-bayreuth.de>.
+
+ * bbox.c, dosection.c, download.c, drawPS.c, dvips.c, finclude.c,
+ fontdef.c, prescan.c, resident.c, virtualfont.c: Keep mag as a
+ real instead of an integer.
+ From: "Melissa O'Neill" <oneill@cs.sfu.ca>.
+
+Tue Oct 8 16:47:13 1996 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (version_files): Add dvips.c.
+
+Sat Oct 5 17:00:53 1996 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (main),
+ * afm2tfm.c (version): Change to the new standard GNU format.
+
+ * Makefile.in (install-data): Call install-info.
+ * dvips.texi: Use @url, @email, and @dircategory/@direntry.
+
+Sat Sep 7 16:01:38 1996 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (help): Include bug reporting address.
+ * afm2tfm.c (usage): Likewise.
+
+Fri Sep 6 19:05:23 1996 Karl Berry <karl@cs.umb.edu>
+
+ * output.c, dospecial: Call output_with_perror for PostScript
+ output file open failure.
+ * dvips.c (error_with_perror): New routine.
+
+Fri Aug 23 16:57:39 1996 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (main): Better bad first/last page errors.
+
+Sun Aug 4 15:56:50 1996 Karl Berry <karl@cs.umb.edu>
+
+ * dospecial.c: Updates from d.love, PAGEUS_INTERUPPTUS is now
+ page_interrupt, etc.
+
+ * hps.c: Use mymalloc instead of malloc where we don't check the
+ return value.
+
+ * dvips.c (main): Also print kpathsea_version_string if --version.
+
+Fri Jul 26 15:47:20 1996 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in: Remove co.make.
+
+Thu Jul 11 19:17:52 1996 Karl Berry <karl@laurie>
+
+ * resident.c: Include variable.h.
+
+Mon Jun 10 11:00:35 1996 Karl Berry <karl@cs.umb.edu>
+
+ * hps.c: Update again from Dave, the last patch got corrupted.
+
+Fri Jun 7 18:46:46 1996 K. Berry <kb@cs.umb.edu>
+
+ * Makefile.in (afm2tfm, $(program)): Use $(kpathsea_link).
+ (squeeze): Include $(XLOADLIBES).
+
+Sat Jun 1 14:36:39 1996 Karl Berry <karl@cs.umb.edu>
+
+ * resident.c (getdefaults): Use envvar/config value DVIPSRC if set.
+
+Thu May 16 22:41:15 1996 Dave Love <d.love@dl.ac.uk>
+
+ * texc.lpro: Update to dvihps 0.4 (mostly robuster anchors?).
+ * dopage.c, hps.c: Likewise.
+
+Wed May 1 16:37:00 1996 Karl Berry <karl@cs.umb.edu>
+
+ * paths.h (DVIPSRC): Prepend $HOME/, so we only search for .dvips
+ in the user's home directory. (Original dvips behavior,
+ unwittingly changed, just noted by Michel Goossens.)
+
+Fri Apr 26 13:36:25 1996 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (install-data): Install the plain macro files in
+ $(dvips_plain_macrodir), and avoid $(CP_R).
+ From: Pierre Asselin <pa@magtsm.tdh.qntm.com>.
+
+Sun Apr 21 16:32:43 1996 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (main): Do not pass in !dontmakefont to kpse_init_prog.
+ In 'M' command line case, call the new kpse_set_enabled fn.
+
+Fri Mar 8 14:39:03 1996 Karl Berry <karl@cs.umb.edu>
+
+ * hps.c: qoutes -> quotes.
+
+ * dospecial.c: Don't complain about unknown specials if TEX_HUSH.
+
+Thu Mar 7 11:15:34 1996 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (check_checksum): New routine.
+ * bbox.c, loadfont.c, tfmload.c, virtualfont.c: Call it.
+
+ * t1part.c (perror): Remove spurious #define, and change return's
+ to exit's after calling perror.
+ New copyright notice from Sergey.
+
+Sun Mar 3 12:26:01 1996 Karl Berry <karl@cs.umb.edu>
+
+ * t1part.c: New version (1.59) from Sergey, fixing the problem
+ with lbma.
+
+Wed Feb 28 15:19:30 1996 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.texi: Document the new MISSFONT_LOG variable.
+
+ * Installed following update from Dave Love:
+
+Tue Jan 23 13:55:52 1996 D.J.G.Love <d.love@dl.ac.uk>
+
+ * hps.c (PAGESIZE): Don't hardcode.
+
+Mon Jan 22 19:34:38 1996 Dave Love <d.love@dl.ac.uk>
+
+ * dopage.c: Update to dvihps 0.3c.
+ * dospecial.c: Likewise.
+ * hps.c: Likewise.
+ * hps.lpro: Likewise.
+
+Tue Feb 27 17:06:42 1996 Karl Berry <karl@cs.umb.edu>
+
+ * afm2tfm.c (main): Need to call kpse_set_progname now that we are
+ using the afm search path.
+
+ * resident.c (addentry): Oops, another mistake in the partial
+ download merge.
+
+Sun Feb 18 15:59:18 1996 Karl Berry <karl@cs.umb.edu>
+
+ * afm2tfm.c: Search for AFM file along new AFM path.
+
+ * hps.c: Use mymalloc, not plain malloc.
+ And replace dup_str with the existing xstrdup.
+
+Thu Feb 15 13:56:07 1996 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (main): Set kpse_make_tex_discard_errors = quiet.
+
+Sat Feb 10 14:03:12 1996 Karl Berry <karl@cs.umb.edu>
+
+ * afm2tfm.c (assignchars): Avoid creating texnum's > 255, since we
+ can't handle it. Happens with an AFM line like:
+ C 256 ; WX 402 ; N c256 ; B 4 0 402 630 ;
+ Also, don't try to output kern equivalences for unencoded characters.
+ From: "Dr Peter J. Braam" <braam@stlawrence.maths.ox.ac.uk>.
+
+Fri Feb 9 15:28:03 1996 Karl Berry <karl@cs.umb.edu>
+
+ * afm2tfm.c (usage): Include kpathsea_version_string in output.
+ Recognize --version and --help.
+
+ * tex.lpro: I had fixed texc.lpro, but that's not a source file.
+
+ * hps.c (PAGESIZE): Compute dynamically.
+ From: Dave Love <d.love@dl.ac.uk>.
+
+Sat Feb 3 15:44:19 1996 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (DEFS): Moved to common.make.
+
+Fri Dec 29 17:17:14 1995 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in: misc.make is now clean.make.
+
+Tue Dec 26 17:18:39 1995 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (initialize): Initialize dontmakefont to
+ !MAKE_TEX_PK_BY_DEFAULT.
+
+Wed Dec 20 15:38:31 1995 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (INSTALL): Use -D INSTALLONLY, rather than sed.
+ Manual changes to match.
+
+Wed Dec 13 14:29:11 1995 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (DEFRES): Change to 600.
+
+ * afm2tfm.c: Do oslash <> o and Oslash <> O.
+ From: "Young U. Ryu" <ryoung@utdallas.edu>.
+
+Sun Dec 10 16:41:05 1995 Karl Berry <karl@cs.umb.edu>
+
+ * dospecial.c (specerror): Hint that they're using an unsupported
+ macro package, most likely.
+
+Fri Dec 1 16:08:52 1995 Karl Berry <karl@cs.umb.edu>
+
+ * test.tex: Rename to dvipstst.tex for clarity and include in
+ distribution.
+ From: Joern Clausen <joern@techfak.uni-bielefeld.de>.
+
+Thu Nov 16 13:32:50 1995 Karl Berry <karl@cs.umb.edu>
+
+ * search.c: Avoid popen on the Amiga.
+ * dvips.h (close_file): Make function declaration extern for the
+ Amiga. From Andreas Scherer.
+
+Tue Nov 14 14:07:17 1995 Karl Berry <karl@cs.umb.edu>
+
+ * loadfont.c (pkopen): If font was substituted, don't say chars
+ will be left blank (they won't).
+
+ * resident.c (getdefaults): For R case, use line as a string,
+ changing whitespaces to colons, instead of doing numbers here.
+
+Mon Nov 13 17:22:20 1995 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c: Set kpathsea debugging bits even if -d is not first.
+
+Sat Nov 11 16:01:24 1995 Karl Berry <karl@cs.umb.edu>
+
+ * texc.lpro: Add `Color LaserWriter 12/600 PS' to the list of
+ products that need the alternate rule definition.
+
+ * loadfont.c, dvips.c, virtualfont.c: Remove remaining MEM debugs
+ as too voluminous and not useful enough.
+ * debug.h (D_CONFIG): Reuse the D_MEM bit.
+ * resident.c (getdefaults): Output debugging info if requested.
+
+Sun Oct 22 16:57:56 1995 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (squeeze): Use LIBS instead of LOADLIBES.
+
+Sun Sep 24 13:49:43 1995 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (mymalloc): Test a local variable for debug output,
+ instead of DD_MEM.
+
+Fri Sep 22 13:43:38 1995 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c: If invalid option given, say what it was, and don't try
+ to list all the valid ones.
+
+ * dvips.c (case o): make -o - output to stdout.
+
+Thu Sep 14 14:49:53 1995 Karl Berry <karl@cs.umb.edu>
+
+ * config.ps: The default paper size cannot use setpagedevice.
+ From te.
+
+Sat Sep 9 13:12:24 1995 Karl Berry <karl@cs.umb.edu>
+
+ * drawPS.c: Merge hyperdvi changes.
+ From: Dave Love <d.love@dl.ac.uk>.
+
+ * config.h: Define TPIC and EMTEX by default.
+ * Makefile.in (DEFS): Instead of in DEFS.
+
+Sat Sep 2 11:37:40 1995 Karl Berry <karl@cs.umb.edu>
+
+ * tex.lpro: Oops, missing if in the new code.
+
+ * epsf.tex: Don't do \new... if we've already been read.
+
+ * config.ps: Update from Yves.
+
+Wed Aug 23 11:55:59 1995 Karl Berry <karl@cs.umb.edu>
+
+ * config.h (headerpath): This is now kpse_ps_header_format, since
+ xdvi uses it, too.
+
+ * search.c (search): Try assigning to name and realnameoffile,
+ instead of copying.
+ * tfmload.c (name): Remove this static.
+ * loadfont.c (name): Declare as a pointer, instead of a fixed-size
+ array.
+
+Sat Aug 12 13:42:22 1995 Karl Berry <karl@cs.umb.edu>
+
+ * tex.lpro: Check for LaserWriter 16/600 as well as Display and
+ NeXT when setting RMat. From Tom R., reported by Rik Faith.
+
+Fri Aug 11 14:42:14 1995 Karl Berry <karl@cs.umb.edu>
+
+ * resident.c (N): If we're doing -E, don't disable them.
+
+Thu Aug 10 13:28:37 1995 Karl Berry <karl@cs.umb.edu>
+
+ * header.c, dvips.c (lastheadermem): Remove this global. It's no
+ longer used.
+ From: "Christopher J. Duncan" <cduncan@phys.psu.edu>
+
+ * dvips.texi: Many updates.
+
+Tue Aug 8 19:25:18 1995 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (post-dist): Include a README in reencode, update
+ for new fontname organization, don't include adobe file or fonts.
+ (install-data): Don't install fonts.
+
+Mon Aug 7 17:46:43 1995 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c: Rearrange help message.
+
+Mon May 29 15:56:43 1995 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (install-data): Use $(srcdir)/{tex,fonts}; from zoo.
+ (But, we probably won't have inputs or fonts by release time anyway.)
+
+Mon Apr 17 10:02:30 1995 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (squeeze, afm2tfm, $(program)): Use link_command.
+
+Mon Mar 20 11:07:32 1995 Karl Berry <karl@cs.umb.edu>
+
+ * output.c: Print the > after reading the file, not before.
+
+Fri Mar 3 14:49:16 1995 Karl Berry <karl@cs.umb.edu>
+
+ * afm2tfm.c (checksum): Use cyclic left shift, so we're not just
+ using the last four characters. From Piet.
+ (vname): New routine to better document the ligtable in the vpl.
+ (writevpl): If the base encoding is the same as the output
+ encoding, only output it once.
+ Also, don't output checksums; let vptovf and vftovp do that.
+ (addkern): New routine.
+ (checkligkern): If <>, make one character's kerning (Zcaron) be
+ the same as another's (Z).
+ (staticligkern): Define the default kerning equivalents.
+
+Fri Feb 24 14:03:02 1995 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (main): Don't give `W' output if -q(uiet).
+
+ * config.ps (N): Don't define this by default.
+
+Fri Feb 10 15:39:50 1995 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c: Doc fix.
+
+ * Makefile.in (texc.lpro): Use $(srcdir)/tex.lpro. From Andreas.
+
+Sun Jan 8 12:13:48 1995 Karl Berry <karl@cs.umb.edu>
+
+ * Version 5.58f.
+
+Sun Jan 1 14:16:52 1995 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (DEFS): Include -DEMTEX by default. Suggested by Joachim.
+
+Sat Dec 31 17:33:14 1994 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in: Don't include tmptk.make any more.
+ (install-exec): Don't depend on install-MakeTeXPK, either.
+
+Mon Dec 26 07:58:37 1994 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (main): Don't set mfmode to / here, do it in kpse_init_prog.
+
+Sat Dec 24 15:20:50 1994 Karl Berry <karl@cs.umb.edu>
+
+ * emspecial.c (TRUE, FALSE) [TRUE]: Make definitions conditional.
+ From Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>.
+
+Wed Dec 14 15:16:53 1994 Karl Berry <karl@cs.umb.edu>
+
+ * Version 5.58e.
+
+Mon Dec 12 07:11:14 1994 Karl Berry <karl@cs.umb.edu>
+
+ * MakeTeXPK.in (pattern): Give right name in error message. From
+ nickc@cs.st-andrews.ac.uk.
+
+Mon Dec 5 15:32:48 1994 Karl Berry <karl@cs.umb.edu>
+
+ * MakeTeXPK.in: Use $SAVEPWD instead of $PWD, for bash's sake.
+ From bas@phys.uva.nl (Bas de Bakker).
+
+Sun Dec 4 16:34:59 1994 Karl Berry <karl@cs.umb.edu>
+
+ * dospecial.c (predospecial): Avoid scanning compressed files for
+ font comments. From Peter Whaite <peta@cim.mcgill.ca>.
+
+Sun Nov 27 11:39:42 1994 Karl Berry <karl@cs.umb.edu>
+
+ * output.c: Remove unmatched ( in output.c. From Philippe
+ Charnier <charnier@lirmm.fr>.
+
+ * Makefile.in (install-data): Test for nonexistence of config.ps
+ and psfonts.map before grepping in them, to avoid spurious error
+ or unnecessary redirection.
+
+ * config.h (MFMODE): Don't bother with this.
+ * dvips.c (main): If mfmode is not set, set it to /, not a
+ compile-time default.
+
+Fri Nov 25 11:05:58 1994 Karl Berry <karl@cs.umb.edu>
+
+ * resident.c (getdefaults): Don't set oname in case 'o' if the
+ cmdline already did.
+ * dvips.c (oname_option): New global.
+ (main): Set if.
+
+ * dvips.c, resident.c: Make config.$PRINTER mode value override
+ config.ps. From heiko@lotte.sax.de and Michael
+ C. Grant <mcgrant@rascals.stanford.edu> (independently).
+
+ * MakeTeXPK.in: Restore the umask 0. Requested by
+ Yves.Arrouye@imag.fr and others.
+
+ * texc.script: Don't pass single - arg to ed; Linux loses. From
+ heiko@lotte.sax.de (Heiko Schlittermann).
+
+Tue Nov 15 16:20:48 1994 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (targets.make): This is split up now.
+
+Sun Nov 6 16:10:33 1994 Karl Berry <karl@cs.umb.edu>
+
+ * configure.in: Run autoupdate.
+
+Sun Oct 30 16:17:22 1994 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (post-dist): Remove texc.lpro. From
+ interran@uluru.Stanford.EDU.
+
+Tue Oct 25 17:47:48 1994 Karl Berry <karl@cs.umb.edu>
+
+ * Version 5.58c.
+
+Sun Oct 23 17:41:24 1994 Karl Berry <karl@cs.umb.edu>
+
+ * config.h (MFMODE) [!MFMODE]: Define to be "cx".
+ * dvips.c (mfmode): Initalize to MFMODE, new option -mode to set it.
+ * resident.c (getdefaults): For case M, only get the new mode if
+ it wasn't specified on the command line.
+
+Tue Oct 18 07:15:42 1994 Karl Berry <karl@cs.umb.edu>
+
+ * MakeTeXPK.in: Reformat the MakeTeXPK.site line so Autoconf will
+ substitute for both occurrences. (Actually, I think was my bug in
+ make/targets.make for not doing global sed substitutions.)
+
+Sun Oct 16 20:42:47 1994 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.texi: Distinguish somewhat more clearly between dvips and
+ Dvipsk.
+
+ * dospecial.c (dospecial): In " case, there was never supposed to
+ *be* a closing quote in the \special, so go back to the original.
+
+Fri Oct 14 10:32:38 1994 Karl Berry <karl@cs.umb.edu>
+
+ * Version 5.58b.
+
+Tue Oct 11 15:28:44 1994 Karl Berry <karl@cs.umb.edu>
+
+ * Makefile.in (install-exec): mkdirchain $(fontdir), for the sake
+ of MakeTeXPK.
+
+ * dospecial.c (dospecial): In "..." case, don't send closing quote.
+
+Sun Oct 9 16:57:25 1994 Karl Berry <karl@cs.umb.edu>
+
+ * MakeTeXPK.in: Source $psheaderdir/MakeTeXPK.site if it exists.
+ Also, add pk/ into the default destination path if we have map files.
+
+Thu Oct 6 14:36:41 1994 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c: Don't call help () twice for -?, and support --help and
+ --version.
+
+Sun Oct 2 16:42:25 1994 Karl Berry <karl@cs.umb.edu>
+
+ * resident.c (SET_CLIENT_PATH): New macro; strdup path values from
+ the config file.
+ (getdefaults): Call it.
+
+ * psfonts.map: Add more obliques for the standard fonts. From
+ te@informatik.uni-hannover.de.
+
+ * search.c (secure) [SECURE]: Put this back. From
+ hank@automat.uni-essen.de.
+
+Sat Oct 1 20:25:42 1994 Karl Berry <karl@cs.umb.edu>
+
+ * MakeTeXPK.in: Make egrep pattern search for the base font, not
+ just $NAME.
+
+Sat Sep 24 16:53:36 1994 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c (o and f cases): Do not set noenv. This makes dvips
+ always read the config files.
+
+Thu Sep 22 15:35:22 1994 Karl Berry <karl@cs.umb.edu>
+
+ * dvips.c: Remove `got a new papersize' messages.
+ * resident.c (getpsinfo): Allow multiple spec's a la download's.
+
+Mon Sep 19 11:55:13 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (post-dist): Just link to the fontname dvips
+ directory, since it has all the encoding files.
+
+Mon Sep 12 11:04:46 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.58a.
+
+ * dospecial.c: Remove my warning stuff; Tom did it his way.
+
+Sun Sep 11 14:49:31 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Update for dvips 558.
+
+ * Makefile.in (psconfigfile): Remove this variable, and just use
+ config.ps; we would never install anything else anyway.
+ (uninstall-data): Install psfonts.map and config.ps if they didn't
+ exist.
+
+Sat Sep 10 13:45:28 1994 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in (ps_to_pk case): Only parse psfonts.map if we are ps2pk.
+
+ * dvips.texi: Fix overfull boxes.
+
+ * Makefile.in (post-dist-*): Include .aux/.cps in distribution.
+
+Wed Sep 7 12:04:36 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.55b.
+
+ * afm2tfm.c (assignchars): Forget the outenname stuff; I just
+ noticed -u (pedantic).
+
+Sun Sep 4 07:19:05 1994 Karl Berry (karl@cs.umb.edu)
+
+ * loadfont.c: Include c-pathmx.h.
+
+Sat Sep 3 13:03:55 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (install-data): Install the .enc files.
+ (uninstall-data): And uninstall them.
+
+Fri Sep 2 11:55:34 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (default): New target.
+ (makeargs): No need for this.
+
+ * psfonts.map: Include entries for *0, to accomodate the !@#$% latex2e.
+
+Tue Aug 30 14:21:42 1994 Karl Berry (karl@cs.umb.edu)
+
+ * dospecial.c (dospecial, GetKeyVal): Add case for warning.
+
+ * dvips.texi (Special Font Effects): Mention outlined fonts.
+
+ * bbox.c (floor): Do not declare this.
+
+ * Makefile.in (distclean): Don't need this.
+
+Mon Aug 29 16:53:48 1994 Karl Berry (karl@cs.umb.edu)
+
+ * configure.in (AC_OUTPUT): No more fonts/Makefile.
+ * Makefile.in (install-data): Use CP_R.
+
+Thu Aug 25 14:19:18 1994 Karl Berry (karl@cs.umb.edu)
+
+ * config.h (D_SEARCH): New debug bit.
+ * dvips.c (dvips): Set it.
+ * dvips.texi: Document it.
+
+Tue Aug 23 14:21:06 1994 Karl Berry (karl@cs.umb.edu)
+
+ * afm2tfm.c (assignchars): Don't add additional characters if
+ an explicit output encoding was specified.
+
+ * MakeTeXPK.in: Remove ;landscape hacks.
+
+Sun Aug 21 10:58:11 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (mtp_destroot): Toss this.
+ (MakeTeXPK): Substitute fontdir instead.
+
+Sat Aug 20 16:13:28 1994 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in (DESTDIR): Deal with ;landscape in the mode.
+
+Fri Aug 19 13:42:22 1994 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in: Consistently use mf instead of $mf.
+ (MODE): If `default', guess, so users can specify a destdir with
+ no mode.
+
+Tue Aug 16 09:28:35 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (sauterdir): Change to .../src.
+ (MakeTeXPK): Substitute for it.
+
+ * MakeTeXPK.in: Don't echo the args; let kpathsea do it.
+
+Sat Aug 13 17:14:54 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in: Use $@ where possible.
+
+Fri Aug 12 10:54:19 1994 Karl Berry (karl@cs.umb.edu)
+
+ * dopage.c (floor): Do not declare.
+
+Tue Aug 9 13:53:12 1994 Karl Berry (karl@cs.umb.edu)
+
+ * dvips.c (-D): Set mfmode to the empty string.
+
+ * MakeTeXPK.in: Don't bother trying at +-1 now.
+ * fontdef.c (newfontdesc): kpse_magstep_fix the dpi calculation.
+
+Sun Aug 7 19:34:57 1994 Karl Berry (karl@cs.umb.edu)
+
+ * loadfont.c (pkopen): Free the filename if necessary.
+
+Tue Aug 2 15:02:59 1994 Karl Berry (karl@cs.umb.edu)
+
+ * config.h, dvips.c (D_DB_BUILD): Replace with D_HASH.
+
+Sun Jul 31 14:49:22 1994 Karl Berry (karl@cs.umb.edu)
+
+ * special.lpro (startTexFig): Set magscale to true. From Tom.
+
+ * MakeTeXPK.in (pointsize): Improve sed expression to extract
+ this. From jsacco@ssl.com.
+
+Fri Jul 29 12:01:50 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in: Use ac_include.
+ (install-{exec,data}): Different strategy for ensuring always-true
+ exit status.
+
+Thu Jul 28 15:38:04 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (install-exec): Check for MakeTeXPK in $(scriptdir),
+ not $(bindir). From john@minster.york.ac.uk.
+
+Fri Jul 15 11:46:20 1994 Karl Berry (karl@cs.umb.edu)
+
+ * virtualfont.c (vfopen): Don't append .vf here, kpathsea does it.
+ * tfmload.c (tfmopen): Likewise.
+
+ * dvips.c (main): Call kpse_set_progname first.
+
+Tue Jul 5 14:01:33 1994 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in (DVIPSHEADERS): Set this, and export it for
+ gsftopk.
+
+Fri Jun 24 17:09:19 1994 Karl Berry (karl@cs.umb.edu)
+
+ * config.h (D_*): Add defns to pass to kpathsea.
+ (*path): Define as the kpse enum constants.
+ * most files: Remove extern char * decls of path variables.
+ * search.c: Pass in the format, not the path.
+ * resident.c (checkenv): #if 0 out.
+
+Thu Jun 23 16:56:50 1994 Karl Berry (karl@cs.umb.edu)
+
+ * loadfont.c (pkopen): Don't set the ..._ENABLED bit; kpathsea
+ does that now.
+ * paths.h (*_ENVS): Move these to kpathsea.
+ * dvips.c (tfmpath, pkpath, etc.): Delete these; they're in the
+ kpathsea structure now.
+
+Tue Jun 14 12:41:48 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (depend_encies): Remove.
+
+Mon Jun 13 10:09:09 1994 Karl Berry (karl@cs.umb.edu)
+
+ * loadfont.c (pkopen): Don't call kpse_set_maketex_mag here,
+ let kpathsea do it. Also don't set MAKETEX_DPI, it's not used.
+
+Sat May 28 19:08:50 1994 Karl Berry (karl@cs.umb.edu)
+
+ * PSfonts: Rename to fonts, for consistency with dviljk.
+ * Makefile.in: Change the cd's.
+
+Thu May 26 16:29:54 1994 Karl Berry (karl@cs.umb.edu)
+
+ * loadfont.c (name): Make size be PATH_MAX.
+ * search.c (search, pksearch): Set name.
+ * virtualfont.c (name): Replace definition with extern.
+
+ * virtualfont.c (virtualfont) [DEBUG]: Print memory stats if
+ D_MEM, not D_FONTS.
+ * loadfont.c (loadfont): Likewise.
+
+ * resident.c (getpsinfo): Ignore whitespace after a <.
+
+Tue May 24 13:14:08 1994 Karl Berry (karl@cs.umb.edu)
+
+ * resident.c (checkenv): Always set MAKETEX_BASE_DPI, for the sake
+ of missfont.log, even if dontmakefont.
+
+Thu Apr 28 12:14:50 1994 Karl Berry (karl@cs.umb.edu)
+
+ * output.c (cleanprinter): Call perror if file writing failed.
+
+Thu Apr 21 13:24:58 1994 Karl Berry (karl@ra.cs.umb.edu)
+
+ * config.h (SHORTINT): Define if SIZEOF_INT < 4.
+
+Sun Apr 17 16:13:16 1994 Karl Berry (karl@ra.cs.umb.edu)
+
+ * debug.h (fopen): Do not define this; we'll use kpathsea's fopen
+ debugging support now.
+ * dvips.c (main): 'd' flag calls KPSE_DEBUG_SET (KPSE_DEBUG_FOPEN).
+
+ * Makefile.in (texc.lpro): Use $(SHELL) to run texc.script.
+ (top_srcdir): Define this for configure to substitute.
+
+Tue Apr 5 11:51:32 1994 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in (sauterdir): Substitute for this value.
+ Various other Sauter fixes from barthel@uaimzm.Mathematik.Uni-Mainz.DE.
+ * Makefile.in (sauterdir): Make it a variable.
+
+Sun Apr 3 10:21:41 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.55a.
+
+Fri Apr 1 11:52:42 1994 Karl Berry (karl@cs.umb.edu)
+
+ * resident.c (checkenv): Allow envvars {DVIPS,TEX}SIZES to
+ override the R config file line.
+
+ * Update for dvips 5.55.
+
+Thu Mar 24 10:43:03 1994 Karl Berry (karl@cs.umb.edu)
+
+ * search.c (search): must_exist is false for VF files.
+
+Tue Mar 15 07:21:04 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (distclean): Remove PSfonts/Makefile. From John I.
+
+Fri Mar 11 14:51:04 1994 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in: Echo `gsftopk failed' to stderr, not stdout.
+
+Thu Mar 3 08:51:50 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.528a.
+
+Thu Feb 24 16:19:55 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (installargs): Pass fontdir and ps_fontdir.
+
+Tue Feb 22 11:41:13 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (c-auto.h.in): Include SMART_PUTENV.
+
+Mon Feb 21 16:47:21 1994 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in: Default to appending the mode, and allow an extra
+ arg to specify the destination directory. From neal.
+
+ * dvips.c (newoutname): | means pipe.
+
+ * afm2tfm.c: Remove declarations of exit.
+
+ * loadfont.c (pkopen): Cast args to kpse_bitmap_tolerance for the
+ sake of non-ANSI compilers.
+
+Sun Feb 13 11:32:48 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Update for dvips 5.528.
+
+Wed Feb 2 09:06:20 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.526b.
+
+ * loadfont.c (pkopen): Don't complain if the two dpi's can
+ tolerate each other.
+
+ * dvips.c (helparr): Mention -pp.
+
+ * dvips.1: Change char92 to \. From karney@theory.pppl.gov.
+
+Tue Feb 1 11:31:30 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (install-data): Add || true to the install_fonts, so
+ Ultrix make doesn't quit prematurely.
+
+ * Makefile.in (c-auto.h.in): New target.
+
+Sat Jan 22 14:25:02 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.526a.
+
+ * loadfont.c (pkopen): Set dontmakefont=1 at the first failure.
+
+Thu Jan 20 14:17:04 1994 Karl Berry (karl@cs.umb.edu)
+
+ * search.c (search) [SECURE]: Don't allow reading of an absolute_p
+ file. From maj@cl.cam.ac.uk.
+
+Sun Jan 16 14:55:08 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (mtp_destdir): Change to $(fontdir)/pk.
+
+Fri Jan 14 15:27:17 1994 Karl Berry (karl@cs.umb.edu)
+
+ * Update for dvips 5.523.
+
+ * MakeTeXPK (MODE): Remove guess for lview monitor, that no one in
+ the world uses but me.
+
+Sat Dec 18 12:49:10 1993 Karl Berry (karl@cs.umb.edu)
+
+ * dvips.texi (Config File Options): Enumerate the envvars that
+ override the P path. (From worsch@ira.uka.de.)
+
+Thu Dec 16 12:32:21 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in: Say where gsftopk can be ftp'd.
+
+Fri Dec 10 15:29:34 1993 Karl Berry (karl@cs.umb.edu)
+
+ * finclude.c (scanvm): Remove declaration of atol, as it causes
+ trouble with glibc. From kayvan@satyr.sylvan.com.
+
+Thu Dec 9 09:44:34 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in: Add gsftopk stuff, guess ljfour for 600 dpi, allow
+ user envvars to override, other cleanups. gsftopk stuff from
+ R.Kooijman@et.tudelft.nl.
+
+Tue Dec 7 14:01:30 1993 Karl Berry (karl@cs.umb.edu)
+
+ * loadfont.c (pkopen): Call kpse_set_maketex_mag instead of
+ find_mag_str.
+ * Makefile.in (objects): Remove makefont.o.
+
+ * dvips.texi (Installation): Mention that MakeTeXPK's interface is
+ different in dvipsk.
+
+ * dvips.c (main): Make -v print the version number and exit.
+
+Sat Nov 27 14:55:28 1993 Karl Berry (karl@cs.umb.edu)
+
+ * resident.c (INIT_PATH): Use the current value for the default,
+ also. Change calls.
+
+ * resident.c (getdefaults): Improve error message.
+ (getpath): Expand a default value here; change callers to pass
+ compile-time default, instead of previous value.
+
+Sun Nov 21 15:34:21 1993 Karl Berry (karl@cs.umb.edu)
+
+ * resident.c (checkenv) [DEBUG]: Correct #endif placement. From
+ pnoma@wk.estec.esa.nl.
+
+Sun Nov 14 11:56:19 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (mtp_destdir): texfontdir has been renamed.
+
+Fri Nov 12 19:42:21 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in: Document the final echo in no uncertain terms.
+
+Thu Nov 11 10:58:41 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in (pointsize): Don't assume the fontname starts with `cm'.
+
+Sat Nov 6 07:15:17 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in: test $d should have been test -d.
+
+Wed Nov 3 14:43:05 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.521a.
+
+Fri Oct 29 13:24:01 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (program_rm): Take out paths.h.
+
+Tue Oct 26 11:38:35 1993 Karl Berry (karl@cs.umb.edu)
+
+ * drawPS.c (arc): Consistently check for nonsquare aspect ratios.
+ From Ulf.Niemeyer@fernuni-hagen.de.
+
+Sun Oct 24 19:26:37 1993 Karl Berry (karl@cs.umb.edu)
+
+ * resident.c (checkenv): Let TEXCONFIG override the config path,
+ as it's supposed to.
+
+Sat Oct 23 14:51:37 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in: Check for the GF file being at +1 or -1 of the dpi
+ we were asked for. Apparently the DC fonts are generated this way.
+
+Fri Oct 22 13:09:29 1993 Karl Berry (karl@cs.umb.edu)
+
+ * resident.c (checkenv): Set kpse_override_path to pkpath, so a
+ config file value will be found.
+
+ * emspecial.c, dospecial.c (atoi): Do not declare here, as it
+ conflicts with the Linux system decl.
+
+ * dvips.texi (Install): Be more precise about when config.ps and
+ MakeTeXPK are overwritten. From gv@me.umn.edu.
+
+ * paths.h.in: Move paths to kpathsea/paths.h.in, and rename to paths.h.
+ * Makefile.in (paths.h): Remove this dependency.
+
+ * Makefile.in ($(kpathsea)): Depend on files in kpathsea_srcdir.
+ (install-exec): MakeTeXPK is not in srcdir anymore.
+ (install-data): The prologues aren't in srcdir. The info files
+ might be in either place.
+ From simon@lia.di.epfl.ch.
+
+Tue Oct 19 12:07:25 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MACHINES: New entries from simon.
+
+Sat Oct 9 07:06:26 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (MakeTeXPK): Make executable.
+
+ * Makefile.in (distclean): MakeTeXPK removed at mostlyclean now.
+
+Thu Oct 7 09:58:48 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in: Missing ", and don't assume sauterdir exists.
+
+Wed Oct 6 08:50:06 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.519b.
+
+Sat Oct 2 17:30:45 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (install-*): Don't reassign PATH, just invoke
+ mkdirchain explicitly.
+
+ * Makefile.in (dvips_makeargs): Delete, since now unused.
+
+Fri Oct 1 07:09:29 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK.in: Don't try to put the MF command into a variable;
+ quoting rules are too confused.
+
+Wed Sep 29 15:21:49 1993 (karl@terminus.cs.umb.edu)
+
+ * Version 5.519a.
+
+Tue Sep 28 13:23:45 1993 Karl Berry (karl@cs.umb.edu)
+
+ * resident.c (print_path): Don't compare char to NULL.
+
+ * resident.c (lastresortsizes): Declare as an unsigned array.
+
+ * loadfont.c (pkopen): ifdef out the dead code.
+
+Sat Sep 25 11:33:21 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (mtp_destdir): New variable.
+ (MakeTeXPK): New target.
+ * MakeTeXPK.in: New file.
+
+ * resident.c (getdefaults): Set envvar MAKETEX_MODE in M case.
+
+Fri Sep 24 11:47:55 1993 Karl Berry (karl@cs.umb.edu)
+
+ * resident.c (checkenv): Initialize kpse_fallback_font.
+
+Thu Sep 23 17:53:48 1993 Karl Berry (karl@cs.umb.edu)
+
+ * resident.c (checkenv): Check for DVIPSFONTS.
+ * dvips.texi (Environment variables): Document it.
+
+Sun Aug 29 11:45:52 1993 Karl Berry (karl@cs.umb.edu)
+
+ * resident.c: No leading spaces before #'s.
+
+ * Makefile.in (install-*): Use $(PATH) instead of $$PATH.
+
+ * config.h (DEBUG) [NO_DEBUG]: Define this.
+
+Fri Aug 27 10:27:34 1993 Karl Berry (karl@cs.umb.edu)
+
+ * paths.h.in (DVIPS_{HEADER,PICT}_ENVS): New defines.
+ * resident.c (getpath): Make a copy.
+ (getdefaults): Go back to calling getpath.
+ (checkenv): Change kpse_init_path calls to pass default.
+ * dvips.c (*path): Initialize to default paths.
+
+ * dvips.c (tfmpath, pkpath, vfpath, figpath, headerpath): All
+ strings now, not string *'s.
+ * tfmload.c (tfmpath): Likewise.
+
+Wed Aug 25 14:35:30 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Update for dvips 5.519.
+
+Sun Aug 22 19:13:42 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (install-data): Install the fonts last.
+
+ * Makefile.in (install-*): mkdirchain is in the top level.
+
+Tue Aug 10 10:34:30 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in: Remove reference to -DFONTLIB.
+ (objects): Remove flib.o.
+
+Fri Aug 6 09:04:45 1993 Karl Berry (karl@cs.umb.edu)
+
+ * resident.c (checkenv): Look for DVIPSHEADERS.
+
+Thu Aug 5 09:03:31 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.518a.
+
+ * Makefile.in (default_config_path): Add ~.
+
+Wed Aug 4 13:50:36 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK: Announce that we're running.
+
+ * Makefile.in: Major surgery to conform to new scheme.
+
+Sat Jul 31 11:36:15 1993 Karl Berry (karl@cs.umb.edu)
+
+ * configure.in: Remove AC_PREFIX.
+
+Tue Jul 27 15:00:44 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Update for dvips 5.518.
+
+Sun Jul 25 10:43:45 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (install*): Add $(srcdir) to PATH for mkdirchain, not .
+
+Wed Jul 21 19:46:22 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (configclean): New target.
+
+Sun Jul 11 16:20:41 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK: Output the filename we generate to stdout, if we succeed.
+
+Tue Jul 6 08:40:25 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK: Send all output to stderr.
+
+Mon Jul 5 09:32:30 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in: Various configuration changes from xdvik.
+
+ * paths.h.in (DEFAULT_{TFM,PK,VF}_PATH): Remove.
+
+Fri Jul 2 12:00:05 1993 Karl Berry (karl@cs.umb.edu)
+
+ * configure.in: sinclude common.ac.
+
+Tue May 25 10:09:02 1993 Karl Berry (karl@cs.umb.edu)
+
+ * configure.in (AC_HAVE_HEADERS): Test for `pwd.h'.
+
+Sat May 22 11:21:34 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (dist): Run gzip -9.
+
+Fri May 21 10:14:25 1993 Karl Berry (karl@cs.umb.edu)
+
+ * resident.c: Change #if DEBUG to #ifdef.
+
+Thu May 20 11:48:28 1993 Karl Berry (karl@cs.umb.edu)
+
+ * psfonts.map: Add URW fonts.
+
+Tue May 18 13:58:55 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (install-*): mkdirchain on install dirs, and put
+ mkdirchain in the dist.
+
+Sun May 16 17:47:26 1993 Karl Berry (karl@cs.umb.edu)
+
+ * dvips.texi: Do paragraph indentation from command.
+ * Makefile.in (MAKEINFO_FLAGS): New variable.
+
+Mon May 10 07:13:29 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.516a.
+
+Sun May 9 10:35:58 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (extraclean): add *.i and *.s.
+
+Sat May 8 13:11:16 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (dist): Rewrite for kpathsea.
+ * <many>.c, config.h: Use <kpathsea/foo.h> instead of "foo.h".
+
+Tue May 4 14:56:57 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (info, dvi): New targets.
+
+Sat May 1 16:21:41 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Update for dvips 5.516, and kpathsea library.
+
+Fri Apr 23 16:46:29 1993 Karl Berry (karl@cs.umb.edu)
+
+ * configure.in (AC_CONST): Add this.
+
+Tue Apr 20 06:58:31 1993 Karl Berry (karl@cs.umb.edu)
+
+ * pathshare from web2c.
+
+Sun Apr 11 18:57:39 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.515b.
+
+Sat Apr 10 14:58:56 1993 Karl Berry (karl@cs.umb.edu)
+
+ * config.h (UNIX_ST_NLINK): Define unless on foreign OS.
+
+ * Makefile.in (uninstall*): New targets.
+
+ * Makefile.in (scriptdir): New variable.
+ (install): Install MakeTeXPK there.
+
+ * configure.in: Do AC_XENIR_DIR after AC_DIR_HEADER.
+
+Mon Mar 29 08:28:22 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.515a.
+
+ * Makefile.in (default_tfm_path): Put . first.
+
+Sun Mar 28 16:43:50 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Update for dvips 5.515.
+
+Mon Mar 22 06:12:25 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.12c.
+
+Sun Mar 14 14:51:03 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK (MFINPUTS): Append a colon to be sure and get the
+ system default path.
+
+Sat Mar 13 11:04:26 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (CPPFLAGS): Add @DEFS@, for -DHAVE_CONFIG_H.
+
+Mon Mar 8 06:27:11 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.12b.
+
+Mon Mar 1 06:26:28 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.512a.
+
+Sun Feb 28 12:03:16 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (dist): Get lucida.sty.
+
+Thu Feb 25 14:02:02 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK (MFINPUTS): Include the old cwd before changing to
+ TEMPDIR.
+
+Tue Feb 23 16:51:38 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (dist): Copy info files to my local info directory.
+
+Mon Feb 22 06:19:46 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.499c.
+
+Wed Feb 17 06:45:29 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (INSTALL): Use tr instead of grep to remove the
+ Info control characters.
+
+Sun Feb 14 17:11:10 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (install): Split into install-exec and install-data.
+
+Fri Feb 12 08:34:45 1993 Karl Berry (karl@cs.umb.edu)
+
+ * dvips.1: Don't refer to dvips.tex.
+
+Tue Feb 9 20:27:50 1993 Karl Berry (karl@cs.umb.edu)
+
+ * MakeTeXPK: Create DESTDIR if it doesn't exist.
+
+Sun Feb 7 10:01:25 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.499b.
+
+ * Makefile.in (install): dir is a shell variable, not a make
+ variable; fix logic for original MakeTeXPK, etc.
+
+Tue Feb 2 11:41:10 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (install): Don't install over a modified MakeTeXPK,
+ config.ps, or psfonts.map.
+
+ * Version 5.499a.
+
+Sun Jan 31 07:08:44 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (install): Allow install_subdirs to be empty.
+
+Fri Jan 29 17:38:04 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (CPPFLAGS): Don't bother with `-I.'.
+
+Wed Jan 20 07:53:36 1993 Karl Berry (karl@cs.umb.edu)
+
+ * config.h (FATAL*): Now in lib.h.
+
+ * Version 5.497c.
+
+Mon Jan 18 08:19:57 1993 Karl Berry (karl@cs.umb.edu)
+
+ * PSfonts: Merge PStfms and PSvfs.
+
+Sat Jan 9 15:21:30 1993 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (configure, config.status): cd $(srcdir) first.
+
+Sun Jan 3 19:43:20 1993 Karl Berry (karl@cs.umb.edu)
+
+ * config.h: Move some includes to c-std.h.
+
+Fri Jan 1 13:57:24 1993 Karl Berry (karl@cs.umb.edu)
+
+ * configure.in, c-auto.h.in, c-memstr.h, dirio.h: Changes for
+ new Autoconf.
+
+Wed Dec 23 06:57:20 1992 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.497b.
+
+Thu Dec 17 07:13:35 1992 Karl Berry (karl@cs.umb.edu)
+
+ * dvips.c (main) [DEBUG]: Missing part of fprintf.
+
+ * resident.c (checkenv) [DEBUG]: Had figpath instead of pkpath.
+
+Mon Dec 14 07:27:39 1992 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.497a.
+
+Fri Dec 11 15:23:58 1992 Karl Berry (karl@cs.umb.edu)
+
+ * afm2tfm.c, dospecial.c, emspecial.c, finclude.c: Change ctype
+ references to use uppercase macros.
+
+Thu Dec 10 10:36:13 1992 Karl Berry (karl@cs.umb.edu)
+
+ * GNUmakefile.in (GNUmakefile): Add $(srcdir) to dependency, and
+ use $(SHELL) instead of sh.
+ (config.status): Use $(SHELL).
+
+Tue Dec 8 07:19:52 1992 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (.texi.info): Add `-o $@'.
+
+Sat Dec 5 18:50:09 1992 Karl Berry (karl@cs.umb.edu)
+
+ * Update for version 5.497.
+
+Sun Nov 29 17:25:52 1992 Karl Berry (karl@cs.umb.edu)
+
+ * finclude.c (atof) [!STDC_HEADERS]: Make declaration conditional.
+
+Sun Nov 22 11:11:24 1992 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (install): Test for non-null install_subdirs.
+
+Sat Oct 31 07:56:41 1992 Karl Berry (karl@cs.umb.edu)
+
+ * encodings/texm{sym,ital,ext}.enc: New files.
+
+ * dvips.texi: Remove the `eg$ ' from examples.
+
+Wed Oct 28 07:43:50 1992 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.495b.
+
+Tue Oct 27 06:07:20 1992 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (.lpro.pro): Depend on squeeze; also, use a temp
+ file to avoid creating empty files.
+
+ * Makefile.in (checkenv) [DEBUG]: Conditionalize use of D_PATH.
+
+ * Makefile.in (.texi.info): New suffix rule, to avoid use of $< in
+ normal rules.
+
+ * Makefile.in (distclean): Remove */Makefile.
+
+Sat Oct 24 11:48:14 1992 Karl Berry (karl@ds3.cs.umb.edu)
+
+ * Makefile.in (install): Quote $(install_subdirs), in case it's
+ been set to empty.
+
+ * Makefile.in (texfontdir): New variable.
+ (install): mkdir it and the ps subdirectories.
+
+Sat Oct 17 16:39:02 1992 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (install_subdirs, subdirs): New variables.
+ (install): make install in $(install_subdirs).
+ (dist): Dist $(subdirs).
+ (installargs): Make arguments to pass to subdirs.
+ (ps{tfm,vf}dir): New target directories.
+ * configure.in (AC_OUTPUT): Create Makefiles in the install subdirs.
+
+ * Makefile.in (paths.h): Don't depend on Makefile and Makefile.in
+ -- they change too often for other reasons than paths.
+
+ * Makefile.in (check): New target.
+
+ * Makefile.in (objects): Include `emspecial.o'.
+
+ * Update for dvips 5.495.
+
+Thu Oct 15 08:34:33 1992 Karl Berry (karl@cs.umb.edu)
+
+ * configure: Ran Autoconf 1.2.
+
+Sat Oct 10 12:20:02 1992 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (dist): Don't copy any subdirs.
+ * README: Document what we've changed and what we haven't.
+
+Wed Sep 23 07:51:13 1992 Karl Berry (karl@cs.umb.edu)
+
+ * Version 5.493c.
+
+Sun Sep 20 12:52:24 1992 Karl Berry (karl@cs.umb.edu)
+
+ * Makefile.in (config.status): use sh to run configure --no-create.
+
+ * Makefile.in (realclean): OK, don't remove configure.
+
+Thu Sep 17 07:40:27 1992 Karl Berry (karl@hayley)
+
+ * Version 5.493b.
+
+Mon Sep 14 17:59:53 1992 Karl Berry (karl@hayley)
+
+ * Makefile.in (config.status): new target.
+ (Makefile): depend on config.status.
+
+Thu Sep 10 08:57:33 1992 Karl Berry (karl@hayley)
+
+ * Makefile.in (dist): include COPYING*.
+
+ * Makefile.in (realclean): remove configure.
+
+ * MakeTeXPK: run gftopk ./<filename>, in case an old version of
+ gftopk is installed.
+
+Wed Sep 9 06:26:30 1992 Karl Berry (karl@hayley)
+
+ * Version 5.493a.
+
+Tue Sep 8 16:51:25 1992 Karl Berry (karl@hayley)
+
+ * c-auto.h.in (_MINIX, _{ALL,POSIX,POSIX_1}_SOURCE): add #undef's
+ for configure to define.
+
+ * configure.in: test for more Unix variants.
+
+Fri Sep 4 17:27:52 1992 Karl Berry (karl@hayley)
+
+ * Makefile.in (extraclean): new target.
+
+ * Update to version 5.493.
+
+Thu Aug 27 08:57:06 1992 Karl Berry (karl@hayley)
+
+ * configure: regenerated from Autoconf 1.1.
+
+Tue Aug 11 07:00:15 1992 Karl Berry (karl@hayley)
+
+ * Version 5.490s.
+
+ * Makefile.in (dist): copy MakeTeXPK.
+
+Fri Jul 31 19:14:15 1992 Karl Berry (karl@hayley)
+
+ * Makefile.in (dist): include our aclocal.m4.
+
+Wed Jul 29 08:52:01 1992 Karl Berry (karl@hayley)
+
+ * Version 5.490r (ran pathshare).
+
+Fri Jul 24 06:49:56 1992 Karl Berry (karl@hayley)
+
+ * Version 5.490q.
+
+Wed Jul 22 09:10:03 1992 Karl Berry (karl@hayley)
+
+ * configure.in: update for Autoconf 1.0.
+
+Tue Jul 21 08:52:21 1992 Karl Berry (karl@hayley)
+
+ * resident.c (print_path): new function.
+ (checkenv): call it, if we are debugging paths.
+
+ * resident.c (checkenv): don't reset envvars if they are already set.
+ (getdefaults): pass the user envvars when setting values from the
+ config files, so they will override.
+
+Thu Jul 16 06:56:31 1992 Karl Berry (karl@hayley)
+
+ * Version 5.490p.
+
+Sun Jul 12 06:20:11 1992 Karl Berry (karl@hayley)
+
+ * Makefile.in (dist): forgot to include the config files.
+
+Sat Jul 11 11:52:48 1992 Karl Berry (karl@hayley)
+
+ * Makefile.in (dist): copy texinfo.tex and `adobe' from their
+ original directory, instead of using the versions here.
+
+Fri Jul 10 06:52:51 1992 Karl Berry (karl@hayley)
+
+ * Version 5.490o.
+
+Thu Jul 2 15:25:00 1992 Karl Berry (karl@hayley)
+
+ * Makefile.in (CPPFLAGS): new variable.
+ (.c.o): use it.
+ (CFLAGS): define as -g.
+ (cdebug): remove.
+ (LDFLAGS): use CFLAGS instead of cdebug.
+
+ * Run Autoconf 0.119.
+
+Wed Jul 1 07:48:33 1992 Karl Berry (karl@hayley)
+
+ * Version 5.490n.
+
+Sat Jun 27 11:03:09 1992 Karl Berry (karl@hayley)
+
+ * Makefile.in (paths.h): depend on Makefile.in and Makefile.
+
+Thu Jun 25 09:57:54 1992 Karl Berry (karl@hayley)
+
+ * All these $(srcdir) changes from or inspired by zoo@cygnus.com.
+
+ * Makefile.in (paths.h): use $(srcdir) for paths.h.in.
+
+Wed Jun 24 11:57:21 1992 Karl Berry (karl@hayley)
+
+ * structures.h (BANNER): name this program kdvips.
+ * Makefile.in (distdir): ditto for the directory.
+
+ * Makefile.in (CCFLAGS): new variable to replace $(CFLAGS).
+ (.c.o): new implicit rule to use it.
+ (.lpro.pro): use $< instead of $*.lpro, since I
+ guess it's marginally more portable.
+ (texc.lpro, install): use $(srcdir).
+ (Makefile): new target.
+
+ * Makefile (install): mkdir more of the top level directories.
+
+ * Makefile (dist): distribute the config* files (except
+ config.status).
+
+ * README: say that %-specifiers don't work.
+
+Tue Jun 23 08:50:06 1992 Karl Berry (karl@hayley)
+
+ * Version 5.490m.
+
+Fri Jun 19 09:26:14 1992 Karl Berry (karl@hayley)
+
+ * psfonts.map: update for new (old by now, actually) change in the
+ way ExtendFont and SlantFont work.
+
+Tue Jun 16 06:13:31 1992 Karl Berry (karl@hayley)
+
+ * Version 5.490l.
+
+Sat Jun 13 07:13:07 1992 Karl Berry (karl@hayley)
+
+ * loadfont.c (pkopen): fix remaining sprintf-with-too-many-%'s.
+
+Thu Jun 11 08:45:25 1992 Karl Berry (karl@hayley)
+
+ * Makefile.in (.NOEXPORT): new target, since Autoconf doesn't add
+ it automatically any more.
+
+Wed Jun 10 06:34:24 1992 Karl Berry (karl@hayley)
+
+ * Version 5.490k.
+
+Fri Jun 5 07:58:45 1992 Karl Berry (karl@hayley)
+
+ * squeeze.c, afm2tfm.c (main): `return 0' instead of `exit (0)'.
+ (From Paul Eggert) Also declare as `int'.
+
+ * Makefile (install): `black.tex' is now `blackdvi.tex', etc.
+
+Thu Jun 4 08:25:51 1992 Karl Berry (karl@hayley)
+
+ * main.c (main): `return 0' instead of `exit (0)'. (From Paul Eggert)
+
+ * Update for dvips 5.490.
+
+ * configure.in (AC_HEADER_FILE): rename to AC_CONFIG_HEADER, for
+ Autoconf 0.115.
+
+Wed Jun 3 08:19:53 1992 Karl Berry (karl@hayley)
+
+ * Version 5.487l.
+
+Fri May 29 11:28:16 1992 Karl Berry (karl@hayley)
+
+ * Below changes from Paul Eggert.
+
+ * dvips.c (main): declare as returning an int.
+
+ * dvips.c (exit): do not declare.
+
+ * resident.c (pagecopies) [DEBUG]: declare unconditionally.
+
+ * resident.c (exit): do not declare.
+
+ * unpack.c (flip): don't use a variable `howmany', since Sun has a
+ macro called that.
+
+ * config.h (FATAL): don't assume an ANSI cpp.
diff --git a/Build/source/texk/dvipsk/Makefile.am b/Build/source/texk/dvipsk/Makefile.am
new file mode 100644
index 00000000000..cc27e1e01bd
--- /dev/null
+++ b/Build/source/texk/dvipsk/Makefile.am
@@ -0,0 +1,230 @@
+## $Id$
+## Makefile.am for the TeX Live subdirectory texk/dvipsk/
+##
+## Copyright 2017-2021 Karl Berry <tex-live@tug.org>
+## Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org>
+## You may freely use, modify and/or distribute this file.
+##
+SUBDIRS = squeeze
+
+AM_CPPFLAGS = $(KPATHSEA_INCLUDES) -DUNIX -DKPATHSEA -DSHIFTLOWCHARS
+AM_CFLAGS = $(WARNING_CFLAGS)
+
+bin_PROGRAMS = afm2tfm dvips
+
+afm2tfm_SOURCES = afm2tfm.c
+
+$(afm2tfm_OBJECTS): $(KPATHSEA_DEPEND)
+
+dvips_SOURCES = \
+ bbox.c \
+ bitmapenc.c \
+ color.c \
+ config.h \
+ debug.h \
+ dopage.c \
+ dosection.c \
+ dospecial.c \
+ download.c \
+ dpicheck.c \
+ drawPS.c \
+ dviinput.c \
+ dvips.c \
+ dvips.h \
+ emspecial.c \
+ finclude.c \
+ fontdef.c \
+ header.c \
+ hps.c \
+ loadfont.c \
+ output.c \
+ papersiz.c \
+ paths.h \
+ pprescan.c \
+ prescan.c \
+ protos.h \
+ protos_add.h \
+ ptexmac.h \
+ repack.c \
+ resident.c \
+ scalewidth.c \
+ scanpage.c \
+ search.c \
+ skippage.c \
+ t1part.c \
+ t1part.h \
+ tfmload.c \
+ unpack.c \
+ virtualfont.c \
+ writet1.c
+
+$(dvips_OBJECTS): $(KPATHSEA_DEPEND)
+
+LDADD = $(KPATHSEA_LIBS)
+
+## Rebuild libkpathsea
+@KPATHSEA_RULE@
+
+dist_man1_MANS = afm2tfm.1 dvips.1
+
+info_TEXINFOS = dvips.texi
+dvips_TEXINFOS = contrib/config.proto dvips.help
+
+DISTCLEANFILES = $(DVIS) $(PSS)
+
+enc_DATA = dvips-all.enc
+
+prolog_DATA = $(prologues)
+
+dist_prologues = \
+ color.lpro \
+ crop.lpro \
+ finclude.lpro \
+ hps.lpro \
+ special.lpro \
+ tex.lpro \
+ texps.lpro
+
+prologdir = $(datarootdir)/texmf-dist/dvips/base
+
+prologues = $(dist_prologues:.lpro=.pro) texc.pro
+
+texc.lpro: texc.script tex.lpro
+ $(AM_V_GEN)$(SHELL) $(srcdir)/texc.script $(srcdir)/tex.lpro $@
+
+SUFFIXES = .pro .lpro
+
+# The `t[mp]-' business is so that we don't create an empty .pro file,
+# if running squeeze fails for some reason. A dependency on squeeze
+# fails here, so we include it below.
+.lpro.pro:
+ $(AM_V_GEN)squeeze/squeeze <$< >t-$@ && mv t-$@ $@
+
+# When cross-compiling, EXEEXT for the build and host systems may differ.
+# Thus we depend on the auxiliary file squeeze/stamp-squeeze.
+$(prologues): squeeze/stamp-squeeze
+
+squeeze/stamp-squeeze:
+ cd squeeze && $(MAKE) $(AM_MAKEFLAGS) stamp-squeeze
+
+EXTRA_DIST = $(dist_prologues) texc.script
+
+CLEANFILES = $(prologues) texc.lpro
+
+## dvips/afm2tfm tests
+TEST_EXTENSIONS = .pl .test
+TESTS = test-afm2tfm.test
+test-afm2tfm-test.log: afm2tfm$(EXEEXT)
+TESTS += beginfontk1.test eepic-nan.test pfbincl.test \
+ quotecmd-test.pl same-name.test test-dvips.test \
+ test-missing-image.test test-overflow-buffers.test uptex-vf.test
+beginfontk1.log eepic-nan.log pfbincl.log \
+ quotecmd-test.log same-name.log test-dvips.log \
+ test-overflow-buffers.log: dvips$(EXEEXT)
+
+AM_TESTS_ENVIRONMENT = TEXMFCNF=$(srcdir)/../kpathsea; export TEXMFCNF;
+AM_TESTS_ENVIRONMENT += TEXCONFIG=$(srcdir)/testdata; export TEXCONFIG;
+AM_TESTS_ENVIRONMENT += TEXFONTS=$(srcdir)/testdata; export TEXFONTS;
+AM_TESTS_ENVIRONMENT += TEXFONTMAPS=$(srcdir)/testdata; export TEXFONTMAPS;
+AM_TESTS_ENVIRONMENT += TEXPSHEADERS=$(srcdir)/testdata; export TEXPSHEADERS;
+
+EXTRA_DIST += \
+ $(TESTS) \
+ testdata/8r.enc \
+ testdata/ad.enc \
+ testdata/alt-rule.pro \
+ testdata/cmex10.pfb \
+ testdata/cmex10.tfm \
+ testdata/cmmi10.pfb \
+ testdata/cmmi10.tfm \
+ testdata/cmr10.pfb \
+ testdata/cmr10.tfm \
+ testdata/cmsy10.pfb \
+ testdata/cmsy10.tfm \
+ testdata/cmtt10.pfb \
+ testdata/cmtt10.tfm \
+ testdata/color.pro \
+ testdata/config.pdf \
+ testdata/config.ps \
+ testdata/psfonts.map \
+ testdata/ptmbi.vf \
+ testdata/ptmbi8r.tfm \
+ testdata/ptmr.vf \
+ testdata/ptmr8r.tfm \
+ testdata/ptmri.vf \
+ testdata/ptmri8r.tfm \
+ testdata/special.pro \
+ testdata/tex.pro \
+ testdata/texc.pro \
+ testdata/texps.pro
+
+## beginfontk1.test
+EXTRA_DIST += testdata/beginfontk1.dvi testdata/beginfontk1.eps testdata/beginfontk1.tex
+DISTCLEANFILES += beginfontk1.ps
+## eepic-nan.test
+EXTRA_DIST += testdata/eepic-nan.dvi testdata/eepic-nan.tex
+DISTCLEANFILES += eepic-nan.ps
+## pfbincl.test
+EXTRA_DIST += testdata/pfbincl.eps testdata/pfbincl.tex testdata/pfbincl.xdv testdata/pfbincl.xps
+DISTCLEANFILES += pfbincl.ps
+## quotecmd-test.pl
+EXTRA_DIST += testdata/quotecmd.dvi testdata/quotecmd.tex
+DISTCLEANFILES += *badnews*
+## same-name.test
+DISTCLEANFILES += same-name.out
+## test-afm2tfm.test
+DISTCLEANFILES += afmtest.tfm
+## test-dvips.test
+EXTRA_DIST += testdata/dvipstst.tex testdata/dvipstst.xdv testdata/dvipstst.xps
+DISTCLEANFILES += dvipstst.ps missfont.log mtest.ps
+## test-missing-image.test
+EXTRA_DIST += testdata/missing-image.tex testdata/missing-image.dvi
+DISTCLEANFILES += missing-image.ps
+## test-overflow-buffers.test
+EXTRA_DIST += overflow-color-push.dvi overflow-color-push.tex \
+ overflow-epsfile.dvi overflow-epsfile.tex \
+ overflow-psbox.dvi overflow-psbox.tex
+DISTCLEANFILES += overflow-color-push.ps overflow-epsfile.ps overflow-psbox.ps
+## uptex-vf.test
+EXTRA_DIST += testdata/Makefile_upjf testdata/upjf.tex testdata/upjf.dvi testdata/upjf.map \
+ testdata/upjf.tfm testdata/upjf-g.tfm testdata/upjf-r.tfm \
+ testdata/upjf_full.vf testdata/upjf_omit.vf \
+ testdata/upjf_full.cnf testdata/upjf_omit.cnf
+DISTCLEANFILES += upjf.vf upjf_full.ps upjf_omit.ps
+
+EXTRA_DIST += \
+ NEWS \
+ TODO \
+ testdata/intoverflow.dvi \
+ testdata/vfnameoverflow.dvi
+
+## Not used
+##
+EXTRA_DIST += \
+ atari \
+ cmfonts.map \
+ config.ps \
+ contrib/afm-extra \
+ contrib/colorsep.lpro \
+ contrib/configs \
+ contrib/crop.lpr \
+ contrib/latex209 \
+ contrib/treen.sh \
+ contrib/treen2.sh \
+ contrib/volker \
+ contrib/whichinpath \
+ cyrfonts.map \
+ eufonts.map \
+ flib.c \
+ hps/CHANGES_HPS.txt \
+ hps/README_HPS.txt \
+ lafonts.map \
+ makefont.c \
+ mvs \
+ psfonts.map \
+ tex \
+ vmcms \
+ vms
+
+# Files not to be distributed
+include $(srcdir)/../../am/dist_hook.am
diff --git a/Build/source/texk/dvipsk/Makefile.in b/Build/source/texk/dvipsk/Makefile.in
new file mode 100644
index 00000000000..b5707d69c9a
--- /dev/null
+++ b/Build/source/texk/dvipsk/Makefile.in
@@ -0,0 +1,2018 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 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.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@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
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = afm2tfm$(EXEEXT) dvips$(EXEEXT)
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-common.m4 \
+ $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
+ $(top_srcdir)/../../m4/kpse-warnings.m4 \
+ $(top_srcdir)/../../m4/libtool.m4 \
+ $(top_srcdir)/../../m4/ltoptions.m4 \
+ $(top_srcdir)/../../m4/ltsugar.m4 \
+ $(top_srcdir)/../../m4/ltversion.m4 \
+ $(top_srcdir)/../../m4/lt~obsolete.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+ $(am__configure_deps) $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = c-auto.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" \
+ "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(encdir)" \
+ "$(DESTDIR)$(prologdir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_afm2tfm_OBJECTS = afm2tfm.$(OBJEXT)
+afm2tfm_OBJECTS = $(am_afm2tfm_OBJECTS)
+afm2tfm_LDADD = $(LDADD)
+am__DEPENDENCIES_1 =
+afm2tfm_DEPENDENCIES = $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+am_dvips_OBJECTS = bbox.$(OBJEXT) bitmapenc.$(OBJEXT) color.$(OBJEXT) \
+ dopage.$(OBJEXT) dosection.$(OBJEXT) dospecial.$(OBJEXT) \
+ download.$(OBJEXT) dpicheck.$(OBJEXT) drawPS.$(OBJEXT) \
+ dviinput.$(OBJEXT) dvips.$(OBJEXT) emspecial.$(OBJEXT) \
+ finclude.$(OBJEXT) fontdef.$(OBJEXT) header.$(OBJEXT) \
+ hps.$(OBJEXT) loadfont.$(OBJEXT) output.$(OBJEXT) \
+ papersiz.$(OBJEXT) pprescan.$(OBJEXT) prescan.$(OBJEXT) \
+ repack.$(OBJEXT) resident.$(OBJEXT) scalewidth.$(OBJEXT) \
+ scanpage.$(OBJEXT) search.$(OBJEXT) skippage.$(OBJEXT) \
+ t1part.$(OBJEXT) tfmload.$(OBJEXT) unpack.$(OBJEXT) \
+ virtualfont.$(OBJEXT) writet1.$(OBJEXT)
+dvips_OBJECTS = $(am_dvips_OBJECTS)
+dvips_LDADD = $(LDADD)
+dvips_DEPENDENCIES = $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/afm2tfm.Po ./$(DEPDIR)/bbox.Po \
+ ./$(DEPDIR)/bitmapenc.Po ./$(DEPDIR)/color.Po \
+ ./$(DEPDIR)/dopage.Po ./$(DEPDIR)/dosection.Po \
+ ./$(DEPDIR)/dospecial.Po ./$(DEPDIR)/download.Po \
+ ./$(DEPDIR)/dpicheck.Po ./$(DEPDIR)/drawPS.Po \
+ ./$(DEPDIR)/dviinput.Po ./$(DEPDIR)/dvips.Po \
+ ./$(DEPDIR)/emspecial.Po ./$(DEPDIR)/finclude.Po \
+ ./$(DEPDIR)/fontdef.Po ./$(DEPDIR)/header.Po \
+ ./$(DEPDIR)/hps.Po ./$(DEPDIR)/loadfont.Po \
+ ./$(DEPDIR)/output.Po ./$(DEPDIR)/papersiz.Po \
+ ./$(DEPDIR)/pprescan.Po ./$(DEPDIR)/prescan.Po \
+ ./$(DEPDIR)/repack.Po ./$(DEPDIR)/resident.Po \
+ ./$(DEPDIR)/scalewidth.Po ./$(DEPDIR)/scanpage.Po \
+ ./$(DEPDIR)/search.Po ./$(DEPDIR)/skippage.Po \
+ ./$(DEPDIR)/t1part.Po ./$(DEPDIR)/tfmload.Po \
+ ./$(DEPDIR)/unpack.Po ./$(DEPDIR)/virtualfont.Po \
+ ./$(DEPDIR)/writet1.Po
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(afm2tfm_SOURCES) $(dvips_SOURCES)
+DIST_SOURCES = $(afm2tfm_SOURCES) $(dvips_SOURCES)
+AM_V_DVIPS = $(am__v_DVIPS_@AM_V@)
+am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@)
+am__v_DVIPS_0 = @echo " DVIPS " $@;
+am__v_DVIPS_1 =
+AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@)
+am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@)
+am__v_MAKEINFO_0 = @echo " MAKEINFO" $@;
+am__v_MAKEINFO_1 =
+AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@)
+am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@)
+am__v_INFOHTML_0 = @echo " INFOHTML" $@;
+am__v_INFOHTML_1 =
+AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@)
+am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@)
+am__v_TEXI2DVI_0 = @echo " TEXI2DVI" $@;
+am__v_TEXI2DVI_1 =
+AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@)
+am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@)
+am__v_TEXI2PDF_0 = @echo " TEXI2PDF" $@;
+am__v_TEXI2PDF_1 =
+AM_V_texinfo = $(am__v_texinfo_@AM_V@)
+am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@)
+am__v_texinfo_0 = -q
+am__v_texinfo_1 =
+AM_V_texidevnull = $(am__v_texidevnull_@AM_V@)
+am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@)
+am__v_texidevnull_0 = > /dev/null
+am__v_texidevnull_1 =
+INFO_DEPS = $(srcdir)/dvips.info
+TEXINFO_TEX = $(top_srcdir)/../../build-aux/texinfo.tex
+am__TEXINFO_TEX_DIR = $(top_srcdir)/../../build-aux
+DVIS = dvips.dvi
+PDFS = dvips.pdf
+PSS = dvips.ps
+HTMLS = dvips.html
+TEXINFOS = dvips.texi
+TEXI2DVI = texi2dvi
+TEXI2PDF = $(TEXI2DVI) --pdf --batch
+MAKEINFOHTML = $(MAKEINFO) --html
+AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+DVIPS = dvips
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+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__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(dist_man1_MANS)
+DATA = $(enc_DATA) $(prolog_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ cscope check recheck distdir distdir-am dist dist-all \
+ distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
+ c-auto.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+am__tty_colors_dummy = \
+ mgn= red= grn= lgn= blu= brg= std=; \
+ am__color_tests=no
+am__tty_colors = { \
+ $(am__tty_colors_dummy); \
+ if test "X$(AM_COLOR_TESTS)" = Xno; then \
+ am__color_tests=no; \
+ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+ am__color_tests=yes; \
+ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+ am__color_tests=yes; \
+ fi; \
+ if test $$am__color_tests = yes; then \
+ red=''; \
+ grn=''; \
+ lgn=''; \
+ blu=''; \
+ mgn=''; \
+ brg=''; \
+ std=''; \
+ fi; \
+}
+am__recheck_rx = ^[ ]*:recheck:[ ]*
+am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
+am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+ recheck = 1; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ { \
+ if ((getline line2 < ($$0 ".log")) < 0) \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+ { \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+ { \
+ break; \
+ } \
+ }; \
+ if (recheck) \
+ print $$0; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+ print "fatal: making $@: " msg | "cat >&2"; \
+ exit 1; \
+} \
+function rst_section(header) \
+{ \
+ print header; \
+ len = length(header); \
+ for (i = 1; i <= len; i = i + 1) \
+ printf "="; \
+ printf "\n\n"; \
+} \
+{ \
+ copy_in_global_log = 1; \
+ global_test_result = "RUN"; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".trs"); \
+ if (line ~ /$(am__global_test_result_rx)/) \
+ { \
+ sub("$(am__global_test_result_rx)", "", line); \
+ sub("[ ]*$$", "", line); \
+ global_test_result = line; \
+ } \
+ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+ copy_in_global_log = 0; \
+ }; \
+ if (copy_in_global_log) \
+ { \
+ rst_section(global_test_result ": " $$0); \
+ while ((rc = (getline line < ($$0 ".log"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".log"); \
+ print line; \
+ }; \
+ printf "\n"; \
+ }; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+ --color-tests "$$am__color_tests" \
+ --enable-hard-errors "$$am__enable_hard_errors" \
+ --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test. Creates the
+# directory for the log if needed. Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log. Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup); \
+$(am__vpath_adj_setup) $(am__vpath_adj) \
+$(am__tty_colors); \
+srcdir=$(srcdir); export srcdir; \
+case "$@" in \
+ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
+ *) am__odir=.;; \
+esac; \
+test "x$$am__odir" = x"." || test -d "$$am__odir" \
+ || $(MKDIR_P) "$$am__odir" || exit $$?; \
+if test -f "./$$f"; then dir=./; \
+elif test -f "$$f"; then dir=; \
+else dir="$(srcdir)/"; fi; \
+tst=$$dir$$f; log='$@'; \
+if test -n '$(DISABLE_HARD_ERRORS)'; then \
+ am__enable_hard_errors=no; \
+else \
+ am__enable_hard_errors=yes; \
+fi; \
+case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
+ am__expect_failure=yes;; \
+ *) \
+ am__expect_failure=no;; \
+esac; \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed). The result is saved in the shell variable
+# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+ bases='$(TEST_LOGS)'; \
+ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+ bases=`echo $$bases`
+AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
+RECHECK_LOGS = $(TEST_LOGS)
+TEST_SUITE_LOG = test-suite.log
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+am__test_logs3 = $(am__test_logs2:.pl.log=.log)
+PL_LOG_DRIVER = $(SHELL) $(top_srcdir)/../../build-aux/test-driver
+PL_LOG_COMPILE = $(PL_LOG_COMPILER) $(AM_PL_LOG_FLAGS) $(PL_LOG_FLAGS)
+am__set_b = \
+ case '$@' in \
+ */*) \
+ case '$*' in \
+ */*) b='$*';; \
+ *) b=`echo '$@' | sed 's/\.log$$//'`; \
+ esac;; \
+ *) \
+ b='$*';; \
+ esac
+TEST_LOGS = $(am__test_logs3:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../../build-aux/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+ $(TEST_LOG_FLAGS)
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(dist_man1_MANS) $(dvips_TEXINFOS) \
+ $(srcdir)/../../am/dist_hook.am $(srcdir)/Makefile.in \
+ $(srcdir)/c-auto.in $(top_srcdir)/../../build-aux/compile \
+ $(top_srcdir)/../../build-aux/config.guess \
+ $(top_srcdir)/../../build-aux/config.sub \
+ $(top_srcdir)/../../build-aux/depcomp \
+ $(top_srcdir)/../../build-aux/install-sh \
+ $(top_srcdir)/../../build-aux/ltmain.sh \
+ $(top_srcdir)/../../build-aux/missing \
+ $(top_srcdir)/../../build-aux/test-driver \
+ $(top_srcdir)/../../build-aux/texinfo.tex \
+ ../../build-aux/ar-lib ../../build-aux/compile \
+ ../../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 \
+ ChangeLog NEWS README TODO
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
+am__post_remove_distdir = $(am__remove_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
+GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
+# Exists only to be overridden by the user if desired.
+AM_DISTCHECK_DVI_TARGET = dvi
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
+KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
+KPATHSEA_LIBS = @KPATHSEA_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+encdir = @encdir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+subdirs = @subdirs@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = squeeze
+AM_CPPFLAGS = $(KPATHSEA_INCLUDES) -DUNIX -DKPATHSEA -DSHIFTLOWCHARS
+AM_CFLAGS = $(WARNING_CFLAGS)
+afm2tfm_SOURCES = afm2tfm.c
+dvips_SOURCES = \
+ bbox.c \
+ bitmapenc.c \
+ color.c \
+ config.h \
+ debug.h \
+ dopage.c \
+ dosection.c \
+ dospecial.c \
+ download.c \
+ dpicheck.c \
+ drawPS.c \
+ dviinput.c \
+ dvips.c \
+ dvips.h \
+ emspecial.c \
+ finclude.c \
+ fontdef.c \
+ header.c \
+ hps.c \
+ loadfont.c \
+ output.c \
+ papersiz.c \
+ paths.h \
+ pprescan.c \
+ prescan.c \
+ protos.h \
+ protos_add.h \
+ ptexmac.h \
+ repack.c \
+ resident.c \
+ scalewidth.c \
+ scanpage.c \
+ search.c \
+ skippage.c \
+ t1part.c \
+ t1part.h \
+ tfmload.c \
+ unpack.c \
+ virtualfont.c \
+ writet1.c
+
+LDADD = $(KPATHSEA_LIBS)
+dist_man1_MANS = afm2tfm.1 dvips.1
+info_TEXINFOS = dvips.texi
+dvips_TEXINFOS = contrib/config.proto dvips.help
+DISTCLEANFILES = $(DVIS) $(PSS) beginfontk1.ps eepic-nan.ps pfbincl.ps \
+ *badnews* same-name.out afmtest.tfm dvipstst.ps missfont.log \
+ mtest.ps missing-image.ps overflow-color-push.ps \
+ overflow-epsfile.ps overflow-psbox.ps upjf.vf upjf_full.ps \
+ upjf_omit.ps
+enc_DATA = dvips-all.enc
+prolog_DATA = $(prologues)
+dist_prologues = \
+ color.lpro \
+ crop.lpro \
+ finclude.lpro \
+ hps.lpro \
+ special.lpro \
+ tex.lpro \
+ texps.lpro
+
+prologdir = $(datarootdir)/texmf-dist/dvips/base
+prologues = $(dist_prologues:.lpro=.pro) texc.pro
+SUFFIXES = .pro .lpro
+EXTRA_DIST = $(dist_prologues) texc.script $(TESTS) testdata/8r.enc \
+ testdata/ad.enc testdata/alt-rule.pro testdata/cmex10.pfb \
+ testdata/cmex10.tfm testdata/cmmi10.pfb testdata/cmmi10.tfm \
+ testdata/cmr10.pfb testdata/cmr10.tfm testdata/cmsy10.pfb \
+ testdata/cmsy10.tfm testdata/cmtt10.pfb testdata/cmtt10.tfm \
+ testdata/color.pro testdata/config.pdf testdata/config.ps \
+ testdata/psfonts.map testdata/ptmbi.vf testdata/ptmbi8r.tfm \
+ testdata/ptmr.vf testdata/ptmr8r.tfm testdata/ptmri.vf \
+ testdata/ptmri8r.tfm testdata/special.pro testdata/tex.pro \
+ testdata/texc.pro testdata/texps.pro testdata/beginfontk1.dvi \
+ testdata/beginfontk1.eps testdata/beginfontk1.tex \
+ testdata/eepic-nan.dvi testdata/eepic-nan.tex \
+ testdata/pfbincl.eps testdata/pfbincl.tex testdata/pfbincl.xdv \
+ testdata/pfbincl.xps testdata/quotecmd.dvi \
+ testdata/quotecmd.tex testdata/dvipstst.tex \
+ testdata/dvipstst.xdv testdata/dvipstst.xps \
+ testdata/missing-image.tex testdata/missing-image.dvi \
+ overflow-color-push.dvi overflow-color-push.tex \
+ overflow-epsfile.dvi overflow-epsfile.tex overflow-psbox.dvi \
+ overflow-psbox.tex testdata/Makefile_upjf testdata/upjf.tex \
+ testdata/upjf.dvi testdata/upjf.map testdata/upjf.tfm \
+ testdata/upjf-g.tfm testdata/upjf-r.tfm testdata/upjf_full.vf \
+ testdata/upjf_omit.vf testdata/upjf_full.cnf \
+ testdata/upjf_omit.cnf NEWS TODO testdata/intoverflow.dvi \
+ testdata/vfnameoverflow.dvi atari cmfonts.map config.ps \
+ contrib/afm-extra contrib/colorsep.lpro contrib/configs \
+ contrib/crop.lpr contrib/latex209 contrib/treen.sh \
+ contrib/treen2.sh contrib/volker contrib/whichinpath \
+ cyrfonts.map eufonts.map flib.c hps/CHANGES_HPS.txt \
+ hps/README_HPS.txt lafonts.map makefont.c mvs psfonts.map tex \
+ vmcms vms
+CLEANFILES = $(prologues) texc.lpro
+TEST_EXTENSIONS = .pl .test
+TESTS = test-afm2tfm.test beginfontk1.test eepic-nan.test pfbincl.test \
+ quotecmd-test.pl same-name.test test-dvips.test \
+ test-missing-image.test test-overflow-buffers.test \
+ uptex-vf.test
+AM_TESTS_ENVIRONMENT = TEXMFCNF=$(srcdir)/../kpathsea; export \
+ TEXMFCNF; TEXCONFIG=$(srcdir)/testdata; export TEXCONFIG; \
+ TEXFONTS=$(srcdir)/testdata; export TEXFONTS; \
+ TEXFONTMAPS=$(srcdir)/testdata; export TEXFONTMAPS; \
+ TEXPSHEADERS=$(srcdir)/testdata; export TEXPSHEADERS;
+NEVER_DIST = `find . $(NEVER_NAMES)`
+NEVER_NAMES = -name .svn
+NEVER_NAMES_SUB = -o -name .deps -o -name .dirstamp -o -name '*.$(OBJEXT)'
+NEVER_NAMES_LT = -o -name .libs -o -name '*.lo'
+all: c-auto.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .pro .lpro .c .dvi .html .info .lo .log .o .obj .pdf .pl .pl$(EXEEXT) .ps .test .test$(EXEEXT) .texi .trs
+am--refresh: Makefile
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
+ esac;
+$(srcdir)/../../am/dist_hook.am $(am__empty):
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+c-auto.h: stamp-h1
+ @test -f $@ || rm -f stamp-h1
+ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
+
+stamp-h1: $(srcdir)/c-auto.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status c-auto.h
+$(srcdir)/c-auto.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f c-auto.h stamp-h1
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ 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)'; 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)'; 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
+
+afm2tfm$(EXEEXT): $(afm2tfm_OBJECTS) $(afm2tfm_DEPENDENCIES) $(EXTRA_afm2tfm_DEPENDENCIES)
+ @rm -f afm2tfm$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(afm2tfm_OBJECTS) $(afm2tfm_LDADD) $(LIBS)
+
+dvips$(EXEEXT): $(dvips_OBJECTS) $(dvips_DEPENDENCIES) $(EXTRA_dvips_DEPENDENCIES)
+ @rm -f dvips$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(dvips_OBJECTS) $(dvips_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/afm2tfm.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bbox.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitmapenc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dopage.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dosection.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dospecial.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/download.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dpicheck.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/drawPS.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dviinput.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dvips.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emspecial.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/finclude.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fontdef.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/header.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hps.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loadfont.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/output.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/papersiz.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pprescan.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prescan.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/repack.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resident.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalewidth.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scanpage.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/search.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/skippage.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1part.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tfmload.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unpack.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virtualfont.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/writet1.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool config.lt
+
+.texi.info:
+ $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+ am__cwd=`pwd` && $(am__cd) $(srcdir) && \
+ rm -rf $$backupdir && mkdir $$backupdir && \
+ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+ done; \
+ else :; fi && \
+ cd "$$am__cwd"; \
+ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $@ $<; \
+ then \
+ rc=0; \
+ $(am__cd) $(srcdir); \
+ else \
+ rc=$$?; \
+ $(am__cd) $(srcdir) && \
+ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+ fi; \
+ rm -rf $$backupdir; exit $$rc
+
+.texi.dvi:
+ $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+ $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
+ $<
+
+.texi.pdf:
+ $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+ $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
+ $<
+
+.texi.html:
+ $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp)
+ $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $(@:.html=.htp) $<; \
+ then \
+ rm -rf $@ && mv $(@:.html=.htp) $@; \
+ else \
+ rm -rf $(@:.html=.htp); exit 1; \
+ fi
+$(srcdir)/dvips.info: dvips.texi $(dvips_TEXINFOS)
+dvips.dvi: dvips.texi $(dvips_TEXINFOS)
+dvips.pdf: dvips.texi $(dvips_TEXINFOS)
+dvips.html: dvips.texi $(dvips_TEXINFOS)
+.dvi.ps:
+ $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ $(DVIPS) $(AM_V_texinfo) -o $@ $<
+
+uninstall-dvi-am:
+ @$(NORMAL_UNINSTALL)
+ @list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \
+ rm -f "$(DESTDIR)$(dvidir)/$$f"; \
+ done
+
+uninstall-html-am:
+ @$(NORMAL_UNINSTALL)
+ @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \
+ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \
+ done
+
+uninstall-info-am:
+ @$(PRE_UNINSTALL)
+ @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \
+ list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
+ if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
+ then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \
+ done; \
+ else :; fi
+ @$(NORMAL_UNINSTALL)
+ @list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
+ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \
+ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
+ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
+ else :; fi); \
+ done
+
+uninstall-pdf-am:
+ @$(NORMAL_UNINSTALL)
+ @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(pdfdir)/$$f"; \
+ done
+
+uninstall-ps-am:
+ @$(NORMAL_UNINSTALL)
+ @list='$(PSS)'; test -n "$(psdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(psdir)/$$f"; \
+ done
+
+dist-info: $(INFO_DEPS)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ list='$(INFO_DEPS)'; \
+ for base in $$list; do \
+ case $$base in \
+ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
+ esac; \
+ if test -f $$base; then d=.; else d=$(srcdir); fi; \
+ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
+ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
+ if test -f $$file; then \
+ relfile=`expr "$$file" : "$$d/\(.*\)"`; \
+ test -f "$(distdir)/$$relfile" || \
+ cp -p $$file "$(distdir)/$$relfile"; \
+ else :; fi; \
+ done; \
+ done
+
+mostlyclean-aminfo:
+ -rm -rf dvips.t2d dvips.t2p
+
+clean-aminfo:
+ -test -z "dvips.dvi dvips.pdf dvips.ps dvips.html" \
+ || rm -rf dvips.dvi dvips.pdf dvips.ps dvips.html
+
+maintainer-clean-aminfo:
+ @list='$(INFO_DEPS)'; for i in $$list; do \
+ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
+ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
+ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
+ done
+install-man1: $(dist_man1_MANS)
+ @$(NORMAL_INSTALL)
+ @list1='$(dist_man1_MANS)'; \
+ list2=''; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_man1_MANS)'; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+install-encDATA: $(enc_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(enc_DATA)'; test -n "$(encdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(encdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(encdir)" || exit 1; \
+ fi; \
+ 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)$(encdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(encdir)" || exit $$?; \
+ done
+
+uninstall-encDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(enc_DATA)'; test -n "$(encdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(encdir)'; $(am__uninstall_files_from_dir)
+install-prologDATA: $(prolog_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(prolog_DATA)'; test -n "$(prologdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(prologdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(prologdir)" || exit 1; \
+ fi; \
+ 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)$(prologdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(prologdir)" || exit $$?; \
+ done
+
+uninstall-prologDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(prolog_DATA)'; test -n "$(prologdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(prologdir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+ test ! -s cscope.files \
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+ -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+ rm -f $< $@
+ $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+ @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+ @$(am__set_TESTS_bases); \
+ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+ redo_bases=`for i in $$bases; do \
+ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+ done`; \
+ if test -n "$$redo_bases"; then \
+ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+ if $(am__make_dryrun); then :; else \
+ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+ fi; \
+ fi; \
+ if test -n "$$am__remaking_logs"; then \
+ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+ "recursion detected" >&2; \
+ elif test -n "$$redo_logs"; then \
+ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+ fi; \
+ if $(am__make_dryrun); then :; else \
+ st=0; \
+ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+ for i in $$redo_bases; do \
+ test -f $$i.trs && test -r $$i.trs \
+ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+ test -f $$i.log && test -r $$i.log \
+ || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+ done; \
+ test $$st -eq 0 || exit 1; \
+ fi
+ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+ ws='[ ]'; \
+ results=`for b in $$bases; do echo $$b.trs; done`; \
+ test -n "$$results" || results=/dev/null; \
+ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
+ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
+ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
+ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
+ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+ if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+ success=true; \
+ else \
+ success=false; \
+ fi; \
+ br='==================='; br=$$br$$br$$br$$br; \
+ result_count () \
+ { \
+ if test x"$$1" = x"--maybe-color"; then \
+ maybe_colorize=yes; \
+ elif test x"$$1" = x"--no-color"; then \
+ maybe_colorize=no; \
+ else \
+ echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+ fi; \
+ shift; \
+ desc=$$1 count=$$2; \
+ if test $$maybe_colorize = yes && test $$count -gt 0; then \
+ color_start=$$3 color_end=$$std; \
+ else \
+ color_start= color_end=; \
+ fi; \
+ echo "$${color_start}# $$desc $$count$${color_end}"; \
+ }; \
+ create_testsuite_report () \
+ { \
+ result_count $$1 "TOTAL:" $$all "$$brg"; \
+ result_count $$1 "PASS: " $$pass "$$grn"; \
+ result_count $$1 "SKIP: " $$skip "$$blu"; \
+ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+ result_count $$1 "FAIL: " $$fail "$$red"; \
+ result_count $$1 "XPASS:" $$xpass "$$red"; \
+ result_count $$1 "ERROR:" $$error "$$mgn"; \
+ }; \
+ { \
+ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
+ $(am__rst_title); \
+ create_testsuite_report --no-color; \
+ echo; \
+ echo ".. contents:: :depth: 2"; \
+ echo; \
+ for b in $$bases; do echo $$b; done \
+ | $(am__create_global_log); \
+ } >$(TEST_SUITE_LOG).tmp || exit 1; \
+ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
+ if $$success; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
+ fi; \
+ echo "$${col}$$br$${std}"; \
+ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
+ echo "$${col}$$br$${std}"; \
+ create_testsuite_report --maybe-color; \
+ echo "$$col$$br$$std"; \
+ if $$success; then :; else \
+ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
+ if test -n "$(PACKAGE_BUGREPORT)"; then \
+ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+ fi; \
+ echo "$$col$$br$$std"; \
+ fi; \
+ $$success || exit 1
+
+check-TESTS:
+ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ exit $$?;
+recheck: all
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ bases=`for i in $$bases; do echo $$i; done \
+ | $(am__list_recheck_tests)` || exit 1; \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ log_list=`echo $$log_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+ am__force_recheck=am--force-recheck \
+ TEST_LOGS="$$log_list"; \
+ exit $$?
+.pl.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(PL_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_PL_LOG_DRIVER_FLAGS) $(PL_LOG_DRIVER_FLAGS) -- $(PL_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.pl$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(PL_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_PL_LOG_DRIVER_FLAGS) $(PL_LOG_DRIVER_FLAGS) -- $(PL_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ 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 -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ 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="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-info dist-hook
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -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)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
+ $(am__post_remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__post_remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+ $(am__post_remove_distdir)
+
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__post_remove_distdir)
+
+dist-zstd: distdir
+ tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+ $(am__post_remove_distdir)
+
+dist-tarZ: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__post_remove_distdir)
+
+dist-shar: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
+ $(am__post_remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__post_remove_distdir)
+
+dist dist-all:
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+ $(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ *.tar.zst*) \
+ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
+ esac
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_build/sub $(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-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build/sub \
+ && ../../configure \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=../.. --prefix="$$dc_install_base" \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__post_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:
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-recursive
+all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(MANS) $(DATA) c-auto.h
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(encdir)" "$(DESTDIR)$(prologdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+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)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-aminfo clean-binPROGRAMS clean-generic clean-libtool \
+ mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f ./$(DEPDIR)/afm2tfm.Po
+ -rm -f ./$(DEPDIR)/bbox.Po
+ -rm -f ./$(DEPDIR)/bitmapenc.Po
+ -rm -f ./$(DEPDIR)/color.Po
+ -rm -f ./$(DEPDIR)/dopage.Po
+ -rm -f ./$(DEPDIR)/dosection.Po
+ -rm -f ./$(DEPDIR)/dospecial.Po
+ -rm -f ./$(DEPDIR)/download.Po
+ -rm -f ./$(DEPDIR)/dpicheck.Po
+ -rm -f ./$(DEPDIR)/drawPS.Po
+ -rm -f ./$(DEPDIR)/dviinput.Po
+ -rm -f ./$(DEPDIR)/dvips.Po
+ -rm -f ./$(DEPDIR)/emspecial.Po
+ -rm -f ./$(DEPDIR)/finclude.Po
+ -rm -f ./$(DEPDIR)/fontdef.Po
+ -rm -f ./$(DEPDIR)/header.Po
+ -rm -f ./$(DEPDIR)/hps.Po
+ -rm -f ./$(DEPDIR)/loadfont.Po
+ -rm -f ./$(DEPDIR)/output.Po
+ -rm -f ./$(DEPDIR)/papersiz.Po
+ -rm -f ./$(DEPDIR)/pprescan.Po
+ -rm -f ./$(DEPDIR)/prescan.Po
+ -rm -f ./$(DEPDIR)/repack.Po
+ -rm -f ./$(DEPDIR)/resident.Po
+ -rm -f ./$(DEPDIR)/scalewidth.Po
+ -rm -f ./$(DEPDIR)/scanpage.Po
+ -rm -f ./$(DEPDIR)/search.Po
+ -rm -f ./$(DEPDIR)/skippage.Po
+ -rm -f ./$(DEPDIR)/t1part.Po
+ -rm -f ./$(DEPDIR)/tfmload.Po
+ -rm -f ./$(DEPDIR)/unpack.Po
+ -rm -f ./$(DEPDIR)/virtualfont.Po
+ -rm -f ./$(DEPDIR)/writet1.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-hdr distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am: $(DVIS)
+
+html: html-recursive
+
+html-am: $(HTMLS)
+
+info: info-recursive
+
+info-am: $(INFO_DEPS)
+
+install-data-am: install-encDATA install-info-am install-man \
+ install-prologDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am: $(DVIS)
+ @$(NORMAL_INSTALL)
+ @list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \
+ fi; \
+ 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)$(dvidir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \
+ done
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-recursive
+
+install-html-am: $(HTMLS)
+ @$(NORMAL_INSTALL)
+ @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ $(am__strip_dir) \
+ d2=$$d$$p; \
+ if test -d "$$d2"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
+ $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
+ echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+ $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
+ else \
+ list2="$$list2 $$d2"; \
+ fi; \
+ done; \
+ test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \
+ done; }
+install-info: install-info-recursive
+
+install-info-am: $(INFO_DEPS)
+ @$(NORMAL_INSTALL)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \
+ fi; \
+ for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ esac; \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
+ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
+ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
+ if test -f $$ifile; then \
+ echo "$$ifile"; \
+ else : ; fi; \
+ done; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
+ @$(POST_INSTALL)
+ @if $(am__can_run_installinfo); then \
+ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+ for file in $$list; do \
+ relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
+ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
+ done; \
+ else : ; fi
+install-man: install-man1
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am: $(PDFS)
+ @$(NORMAL_INSTALL)
+ @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \
+ fi; \
+ 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)$(pdfdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done
+install-ps: install-ps-recursive
+
+install-ps-am: $(PSS)
+ @$(NORMAL_INSTALL)
+ @list='$(PSS)'; test -n "$(psdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \
+ fi; \
+ 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)$(psdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f ./$(DEPDIR)/afm2tfm.Po
+ -rm -f ./$(DEPDIR)/bbox.Po
+ -rm -f ./$(DEPDIR)/bitmapenc.Po
+ -rm -f ./$(DEPDIR)/color.Po
+ -rm -f ./$(DEPDIR)/dopage.Po
+ -rm -f ./$(DEPDIR)/dosection.Po
+ -rm -f ./$(DEPDIR)/dospecial.Po
+ -rm -f ./$(DEPDIR)/download.Po
+ -rm -f ./$(DEPDIR)/dpicheck.Po
+ -rm -f ./$(DEPDIR)/drawPS.Po
+ -rm -f ./$(DEPDIR)/dviinput.Po
+ -rm -f ./$(DEPDIR)/dvips.Po
+ -rm -f ./$(DEPDIR)/emspecial.Po
+ -rm -f ./$(DEPDIR)/finclude.Po
+ -rm -f ./$(DEPDIR)/fontdef.Po
+ -rm -f ./$(DEPDIR)/header.Po
+ -rm -f ./$(DEPDIR)/hps.Po
+ -rm -f ./$(DEPDIR)/loadfont.Po
+ -rm -f ./$(DEPDIR)/output.Po
+ -rm -f ./$(DEPDIR)/papersiz.Po
+ -rm -f ./$(DEPDIR)/pprescan.Po
+ -rm -f ./$(DEPDIR)/prescan.Po
+ -rm -f ./$(DEPDIR)/repack.Po
+ -rm -f ./$(DEPDIR)/resident.Po
+ -rm -f ./$(DEPDIR)/scalewidth.Po
+ -rm -f ./$(DEPDIR)/scanpage.Po
+ -rm -f ./$(DEPDIR)/search.Po
+ -rm -f ./$(DEPDIR)/skippage.Po
+ -rm -f ./$(DEPDIR)/t1part.Po
+ -rm -f ./$(DEPDIR)/tfmload.Po
+ -rm -f ./$(DEPDIR)/unpack.Po
+ -rm -f ./$(DEPDIR)/virtualfont.Po
+ -rm -f ./$(DEPDIR)/writet1.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-aminfo \
+ maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-aminfo mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am: $(PDFS)
+
+ps: ps-recursive
+
+ps-am: $(PSS)
+
+uninstall-am: uninstall-binPROGRAMS uninstall-dvi-am uninstall-encDATA \
+ uninstall-html-am uninstall-info-am uninstall-man \
+ uninstall-pdf-am uninstall-prologDATA uninstall-ps-am
+
+uninstall-man: uninstall-man1
+
+.MAKE: $(am__recursive_targets) all check-am install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--depfiles am--refresh check check-TESTS check-am clean \
+ clean-aminfo clean-binPROGRAMS clean-cscope clean-generic \
+ clean-libtool cscope cscopelist-am ctags ctags-am dist \
+ dist-all dist-bzip2 dist-gzip dist-hook dist-info dist-lzip \
+ dist-shar dist-tarZ dist-xz dist-zip dist-zstd distcheck \
+ distclean distclean-compile distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags distcleancheck distdir \
+ distuninstallcheck dvi dvi-am html html-am info info-am \
+ install install-am install-binPROGRAMS install-data \
+ install-data-am install-dvi install-dvi-am install-encDATA \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-man1 \
+ install-pdf install-pdf-am install-prologDATA install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs installdirs-am maintainer-clean \
+ maintainer-clean-aminfo maintainer-clean-generic mostlyclean \
+ mostlyclean-aminfo mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \
+ uninstall uninstall-am uninstall-binPROGRAMS uninstall-dvi-am \
+ uninstall-encDATA uninstall-html-am uninstall-info-am \
+ uninstall-man uninstall-man1 uninstall-pdf-am \
+ uninstall-prologDATA uninstall-ps-am
+
+.PRECIOUS: Makefile
+
+
+$(afm2tfm_OBJECTS): $(KPATHSEA_DEPEND)
+
+$(dvips_OBJECTS): $(KPATHSEA_DEPEND)
+
+@KPATHSEA_RULE@
+
+texc.lpro: texc.script tex.lpro
+ $(AM_V_GEN)$(SHELL) $(srcdir)/texc.script $(srcdir)/tex.lpro $@
+
+# The `t[mp]-' business is so that we don't create an empty .pro file,
+# if running squeeze fails for some reason. A dependency on squeeze
+# fails here, so we include it below.
+.lpro.pro:
+ $(AM_V_GEN)squeeze/squeeze <$< >t-$@ && mv t-$@ $@
+
+# When cross-compiling, EXEEXT for the build and host systems may differ.
+# Thus we depend on the auxiliary file squeeze/stamp-squeeze.
+$(prologues): squeeze/stamp-squeeze
+
+squeeze/stamp-squeeze:
+ cd squeeze && $(MAKE) $(AM_MAKEFLAGS) stamp-squeeze
+test-afm2tfm-test.log: afm2tfm$(EXEEXT)
+beginfontk1.log eepic-nan.log pfbincl.log \
+ quotecmd-test.log same-name.log test-dvips.log \
+ test-overflow-buffers.log: dvips$(EXEEXT)
+dist-hook:
+ cd "$(distdir)" && rm -rf $(NEVER_DIST)
+
+# Files not to be distributed
+
+# 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/dvipsk/NEWS b/Build/source/texk/dvipsk/NEWS
new file mode 100644
index 00000000000..6a1c8c423cf
--- /dev/null
+++ b/Build/source/texk/dvipsk/NEWS
@@ -0,0 +1,91 @@
+$Id$
+This file records noteworthy changes. (Public domain.)
+
+dvips 2021.1 (TeX Live 2021):
+ Default title is now the basename of the input file instead of the
+ full path, and can be overridden with new option -title.
+ If an .eps or other image file is not found, dvips now exits unsuccessfully.
+ Support new feature of virtual font to fallback Japanese font definition.
+
+dvips 2020.1 (TeX Live 2020):
+ Encodings for bitmap fonts.
+ https://tug.org/TUGboat/tb40-2/tb125rokicki-type3search.pdf
+
+dvips 5.999 (TeX Live 2019):
+ Buffer overflows.
+
+dvips 5.998 (TeX Live 2018):
+ New JFM (Japanese font metrics) spec supported; compiler portability fixes.
+
+dvips 5.997 (TeX Live 2017):
+ Make the last papersize special win, to match dvipdfmx; the -L0 option
+ or L0 config restores the previous behavior of the first special winning.
+
+dvips 5.996 (TeX Live 2016):
+ afm2tfm 8.4: only adjust heights of base characters upward for accent
+ position, and new option -a to omit all adjustments.
+
+dvips 5.995 (TeX Live 2015):
+ Remove psfig support, as it is nonfree.
+
+dvips 5.994 (TeX Live 2014):
+ Omit UniqueID from subsets.
+
+dvips 5.993 (TeX Live 2013):
+ `m' value <= 0 now means no limit on vm.
+
+dvips 5.992 (TeX Live 2012):
+ `c' config file include directive.
+
+dvips 5.991 (TeX Live 2011):
+ Type 1 parsing bug fixes.
+ Integer overflow bug fix.
+
+dvips 5.99 (TeX Live 2010):
+ Use the type1 path to search for Type 1 fonts.
+ Support for Japanese pTeX.
+ Numeric overflow and sprintf checks.
+ Reformat sources.
+
+
+dvips 5.86 notes:
+ Minor improvements to epsf style file.
+ Another patch to t1part.c to make it more liberal in accepting pfb/pfa
+ font files.
+ Added PS reencoding reimplementation by Rob Hutchings.
+ Added 'F' in config file to send controlD.
+ Added quick exit if -? or -v.
+ Improved tex.lpro to fix a bug that showed up in distiller.
+ Improved tex.lpro to work around a problem in certain Windows
+ environments.
+ Made dvips complain if it had to section a document.
+ Eliminated use-after-free bug in hps.c.
+ Fixed a problem in t1part for the Euro fonts with partial font downloading.
+ Fixed a big problem in t1part for some font downloading due to
+ uninitialized allocations.
+ Added `unknown' paper size back to config.ps.
+ Made t1part munge the UniqueID to prevent cache problems in Acrobat and
+ other programs.
+ Fixed parsing error when whitespace following '<' in psfonts.map.
+ Made '<<' work correctly (disable partial font downloading for that
+ particular font) in psfonts.map.
+
+dvips 5.74 notes:
+
+ The epsf.sty and epsf.tex files are now in the public domain.
+ The t1part.c has been updated to support binary files with
+ multiple binary sections.
+
+dvips 5.72 notes:
+
+ Bug fix in t1part.c??? I hope so!
+
+ Debugging now turned on by default. No real reason to turn it off.
+ (Too many Linux versions of dvips without debugging have been
+ distributed, and it makes it very difficult to help the users with
+ their problems . . .)
+
+dvips 5.62 notes:
+
+ The makefile and config.ps and MakeTeXPK need to be modified to fit
+ your site!
diff --git a/Build/source/texk/dvipsk/README b/Build/source/texk/dvipsk/README
new file mode 100644
index 00000000000..b97242c6550
--- /dev/null
+++ b/Build/source/texk/dvipsk/README
@@ -0,0 +1,43 @@
+$Id$
+This directory contains Dvips, Tom Rokicki's dvips, a DVI-to-PostScript
+translator. It requires the Kpathsea library for path searching.
+
+See `NEWS' for changes by release, `ChangeLog` for all changes.
+See `../kpathsea/BUGS' for details on reporting bugs.
+
+Dvips is free software; Tom's original files are public domain. The
+files Karl wrote (originally for the Free Software Foundation) are
+covered by the GNU General Public License -- see the files COPYING*.
+-------------------------------------------------------------------------
+The documentation is in the file dvips.texi.
+
+You can read and run the file testdata/dvipstst.tex that to test some
+basic capabilities of dvips. Some of the other files in testdata:
+intoverflow.dvi (CVE-2010-0739)
+vfnameoverflow.dvi (CVE-2010-0827)
+See also the *.test* scripts.
+
+If you enjoy using dvips, you will probably enjoy being a member of
+the TeX Users Group. To join or contribute to TUG, see http://tug.org.
+
+This is a list of people who have contributed substantially to dvips.
+I'm sure I've forgotten many. Thanks to all!
+
+Karl Berry
+Peter Breitenlohner
+P. W. Daly
+Mark Doyle
+Edward J. Groth
+James Hafner
+John Hobby
+Rob Hutchings
+David Jones
+Akira Kakuto
+Donald E. Knuth
+Russell Lang
+Sergey Lesenko
+Art Ogawa
+Melissa O'Neill
+Sebastian Rahtz
+Andrew Trevorrow
+Staszek Wawrykiewicz
diff --git a/Build/source/texk/dvipsk/TODO b/Build/source/texk/dvipsk/TODO
new file mode 100644
index 00000000000..7803deae4c7
--- /dev/null
+++ b/Build/source/texk/dvipsk/TODO
@@ -0,0 +1,41 @@
+TODO for dvips(k). (Public domain.)
+
+- see dvips items on tug.org/help (lots! both doc and code).
+- use snprintf, not sprintf, if any question.
+- comment line break http://groups.google.com/group/comp.text.tex/browse_thread/thread/b8ed25cc6153d5c
+- \special{map: ...} a la \pdfmapline (reinhardk 30dec06)
+- maybe stuff from dvipsfnt.txt from yy
+- dvips +ufoobar.map -> no error?
+
+From Tom:
+
+To document:
+ Landscape mfmode
+ HPS integration
+ Separate EPSF file generation
+ Better bbox support
+ Comment elision now turned *off*
+ Upleveling of font requirements
+ Bitmap font descriptions
+
+Questions:
+ Should I eliminate PStfms/PSvfs/afm-extra?
+ Should I eliminate PSlatex? (my guess is yes)
+ Partial type 1 downloading (Sergey Lesenko)
+ HyperTeX support (Mark Doyle)
+ Lots of little bugs/changes/fixes
+
+Still todo:
+- Make a better copyfile that handles Level 2 data better
+- Add landscape mode def and code to select it.
+- Sanitize; test on various systems
+- Improve makefile!!! Goal: on a standard C installation (with stdlib
+ and all) and a Unix machine using TDS, make it be just a `make' away.
+- Improve diagnostics, especially when files not found.
+- Eliminate `extern' declarations; use header files properly
+
+Won't do:
+- would be nice to report the full path of config.ps and psfonts.map,
+etc., if !quiet, but unfortunately these are processed before the banner
+is printed. Can't move the banner earlier because we have to know if we
+are being quiet or not. So, leave as debugging output only.
diff --git a/Build/source/texk/dvipsk/ac/withenable.ac b/Build/source/texk/dvipsk/ac/withenable.ac
new file mode 100644
index 00000000000..66838935c39
--- /dev/null
+++ b/Build/source/texk/dvipsk/ac/withenable.ac
@@ -0,0 +1,9 @@
+## texk/dvipsk/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/dvipsk/
+dnl
+dnl Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org>
+dnl You may freely use, modify and/or distribute this file.
+dnl
+dnl extra_dirs = texk/dvipsk/squeeze
+dnl
+## configure options and TL libraries required for dvipsk
+KPSE_ENABLE_PROG([dvipsk], [kpathsea])
diff --git a/Build/source/texk/dvipsk/aclocal.m4 b/Build/source/texk/dvipsk/aclocal.m4
new file mode 100644
index 00000000000..5317e303064
--- /dev/null
+++ b/Build/source/texk/dvipsk/aclocal.m4
@@ -0,0 +1,1176 @@
+# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
+
+# Copyright (C) 1996-2020 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.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+# Copyright (C) 2002-2020 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.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# 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.16'
+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.16.3], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_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.16.3])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001-2020 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.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997-2020 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.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+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='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999-2020 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.
+
+
+# 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,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
+ [$1], [CXX], [depcc="$CXX" am_compiler_list=],
+ [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+ [$1], [UPC], [depcc="$UPC" am_compiler_list=],
+ [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ 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
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ 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.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | 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
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $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 $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
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+ [--enable-dependency-tracking],
+ [do not reject slow dependency extractors])
+AS_HELP_STRING(
+ [--disable-dependency-tracking],
+ [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999-2020 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.
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # Older Autoconf 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.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ AS_CASE([$CONFIG_FILES],
+ [*\'*], [eval set x "$CONFIG_FILES"],
+ [*], [set x $CONFIG_FILES])
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`AS_DIRNAME(["$am_mf"])`
+ am_filepart=`AS_BASENAME(["$am_mf"])`
+ AM_RUN_LOG([cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles]) || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE="gmake" (or whatever is
+ necessary). You can also try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).])
+ fi
+ AS_UNSET([am_dirpart])
+ AS_UNSET([am_filepart])
+ AS_UNSET([am_mf])
+ AS_UNSET([am_rc])
+ rm -f conftest-deps.mk
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking is enabled.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
+# order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996-2020 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.
+
+# 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.
+
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# 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.65])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
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+ [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+ m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ [ok:ok],,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+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([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
+dnl macro 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
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+
+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
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2020 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.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh+set}" != 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-2020 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.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2020 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.
+
+# 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],
+[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 enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+ [AS_HELP_STRING([--]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=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+]
+)
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001-2020 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.
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+ AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+ ['0:this is the am__doit target'],
+ [AS_CASE([$s],
+ [BSD], [am__include='.include' am__quote='"'],
+ [am__include='include' am__quote=''])])
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997-2020 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.
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001-2020 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.
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1999-2020 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.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+ [whether $CC understands -c and -o together],
+ [am_cv_prog_cc_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2020 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.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996-2020 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.
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# 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 (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ 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`
+ fi
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+ alias in your environment])
+ fi
+ if test "$[2]" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+ [AC_MSG_CHECKING([that generated files are newer than configure])
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+
+# Copyright (C) 2009-2020 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.
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+ [--enable-silent-rules],
+ [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+ [--disable-silent-rules],
+ [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+ [am_cv_make_support_nested_variables],
+ [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+ dnl Using '$V' instead of '$(V)' breaks IRIX make.
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2020 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.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor 'install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in "make install-strip", and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# 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.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006-2020 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.
+
+# _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-2020 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.
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+#
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+ [m4_case([$1],
+ [ustar],
+ [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+ # There is notably a 21 bits limit for the UID and the GID. In fact,
+ # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+ # and bug#13588).
+ am_max_uid=2097151 # 2^21 - 1
+ am_max_gid=$am_max_uid
+ # The $UID and $GID variables are not portable, so we need to resort
+ # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
+ # below are definitely unexpected, so allow the users to see them
+ # (that is, avoid stderr redirection).
+ am_uid=`id -u || echo unknown`
+ am_gid=`id -g || echo unknown`
+ AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+ if test $am_uid -le $am_max_uid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi
+ AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+ if test $am_gid -le $am_max_gid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi],
+
+ [pax],
+ [],
+
+ [m4_fatal([Unknown tar format])])
+
+ AC_MSG_CHECKING([how to create a $1 tar archive])
+
+ # Go ahead even if we have the value already cached. We do so because we
+ # need to set the values for the 'am__tar' and 'am__untar' variables.
+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+ for _am_tool in $_am_tools; do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar; do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+ done
+ rm -rf conftest.dir
+
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([../../m4/kpse-common.m4])
+m4_include([../../m4/kpse-kpathsea-flags.m4])
+m4_include([../../m4/kpse-warnings.m4])
+m4_include([../../m4/libtool.m4])
+m4_include([../../m4/ltoptions.m4])
+m4_include([../../m4/ltsugar.m4])
+m4_include([../../m4/ltversion.m4])
+m4_include([../../m4/lt~obsolete.m4])
diff --git a/Build/source/texk/dvipsk/afm2tfm.1 b/Build/source/texk/dvipsk/afm2tfm.1
new file mode 100644
index 00000000000..b6cca982351
--- /dev/null
+++ b/Build/source/texk/dvipsk/afm2tfm.1
@@ -0,0 +1,26 @@
+.TH AFM2TFM 1 "1 February 2016"
+.SH NAME
+afm2tfm \- convert Adobe font metrics to TeX font metrics
+.SH DESCRIPTION
+PostScript fonts are (or should be) accompanied by font metric files
+such as
+.B Times-Roman.afm,
+which describes the characteristics of the font called Times-Roman.
+To use such fonts with TeX, we need TFM files that contain similar
+information. This program does that conversion.
+.PP
+For all the details, see the dvips manual (http://tug.org/dvips).
+.SH FILES
+.I psfonts.map
+in the config directory used by dvips.
+.SH "SEE ALSO"
+dvips(1), tex(1), vptovf(1), fontinst(1), afm2pl(1), otftotfm(1)
+.SH BUGS
+An option to add letterspacing to the virtual font was rejected by Knuth
+because it would make the fi and fl ligatures break the normal rhythmic
+pattern.
+.SH AUTHORS
+Tomas Rokicki and Donald E. Knuth.
+.PP
+Maintained in TeX Live; please send bug reports or other correspondence
+to tex-k@tug.org (http://lists.tug.org/tex-k).
diff --git a/Build/source/texk/dvipsk/afm2tfm.c b/Build/source/texk/dvipsk/afm2tfm.c
new file mode 100644
index 00000000000..47e0e6c4a1f
--- /dev/null
+++ b/Build/source/texk/dvipsk/afm2tfm.c
@@ -0,0 +1,2170 @@
+/* $Id$ */
+
+/* Public domain, originally written by Tom Rokicki.
+ * This program converts AFM files to TeX TFM files, and optionally
+ * to TeX VPL files that retain all kerning and ligature information.
+ * Both files make the characters not normally encoded by TeX available
+ * by character codes greater than 127.
+ */
+
+/* (Modified by Don Knuth from Tom Rokicki's pre-VPL version.) */
+/* VM/CMS port by J. Hafner (hafner@almaden.ibm.com), based on
+ * the port by Alessio Guglielmi (guglielmi@ipisnsib.bitnet)
+ * and Marco Prevedelli (prevedelli@ipisnsva.bitnet).
+ * This port is still in test state. No guarantees.
+ * 11/3/92: more corrections to VM/CMS port. Now it looks correct
+ * and will be supported by J. Hafner.
+ *
+ */
+/*
+ * More changes, primarily from Karl Berry, enough for a new version
+ * number to 8.0; 1 December 1996. Note that this version computes
+ * checksums differently (more intelligently).
+ */
+
+#ifdef KPATHSEA
+#include "config.h"
+#include <kpathsea/c-ctype.h>
+#include <kpathsea/progname.h>
+#include <kpathsea/version.h>
+#include <math.h>
+#else /* ! KPATHSEA */
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+#if defined(SYSV) || defined(VMS) || defined(__THINK__) || defined(MSDOS) || defined(OS2) || defined(ATARIST) || defined(WIN32)
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#include <math.h>
+#ifdef ATARIST
+#include <float.h>
+#endif
+#endif /* KPATHSEA */
+
+/* JLH: added these to make the code easier to read and remove some
+ ascii<->ebcdic dependencies */
+#define ASCII_A 65
+#define ASCII_Z 90
+#define ASCII_a 97
+#define ASCII_z 122
+#define ASCII_0 48
+#define ASCII_9 57
+
+#ifdef VMCMS
+#define interesting lookstr /* for 8 character truncation conflicts */
+#include "dvipscms.h"
+extern FILE *cmsfopen();
+extern char ebcdic2ascii[];
+extern char ascii2ebcdic[];
+#ifdef fopen
+#undef fopen
+#endif
+#define fopen cmsfopen
+#endif /* VMCMS */
+
+#include "dvips.h"
+/* debug.h redefines fopen to my_real_fopen, but it's still a FILE * */
+#ifdef fopen
+#undef fopen
+extern FILE *fopen ();
+#endif
+
+struct encoding {
+ const char *name;
+ const char *vec[256];
+};
+struct encoding staticencoding = {
+ "TeX text",
+ {"Gamma", "Delta", "Theta", "Lambda", "Xi", "Pi", "Sigma",
+ "Upsilon", "Phi", "Psi", "Omega", "arrowup", "arrowdown", "quotesingle",
+ "exclamdown", "questiondown", "dotlessi", "dotlessj", "grave", "acute",
+ "caron", "breve", "macron", "ring", "cedilla", "germandbls", "ae", "oe",
+ "oslash", "AE", "OE", "Oslash", "space", "exclam", "quotedbl", "numbersign",
+ "dollar", "percent", "ampersand", "quoteright", "parenleft", "parenright",
+ "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one",
+ "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon",
+ "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C",
+ "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
+ "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash",
+ "bracketright", "circumflex", "underscore", "quoteleft", "a", "b", "c", "d",
+ "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
+ "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright",
+ "tilde", "dieresis", "", "", "", "", "", "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "" } };
+/*
+ * It's easier to put this in static storage and parse it as we go
+ * than to build the structures ourselves.
+ */
+const char *staticligkern[] = {
+ "% LIGKERN space l =: lslash ; space L =: Lslash ;",
+ "% LIGKERN question quoteleft =: questiondown ;",
+ "% LIGKERN exclam quoteleft =: exclamdown ;",
+ "% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;",
+ "% LIGKERN quoteleft quoteleft =: quotedblleft ;",
+ "% LIGKERN quoteright quoteright =: quotedblright ;",
+ "% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ;",
+ "% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ;",
+ "% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ;",
+ "% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ;",
+ "% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ;",
+ "% LIGKERN nine {} * ; * {} nine ;",
+/* Kern accented characters the same way as their base. */
+ "% LIGKERN Aacute <> A ; aacute <> a ;",
+ "% LIGKERN Acircumflex <> A ; acircumflex <> a ;",
+ "% LIGKERN Adieresis <> A ; adieresis <> a ;",
+ "% LIGKERN Agrave <> A ; agrave <> a ;",
+ "% LIGKERN Aring <> A ; aring <> a ;",
+ "% LIGKERN Atilde <> A ; atilde <> a ;",
+ "% LIGKERN Ccedilla <> C ; ccedilla <> c ;",
+ "% LIGKERN Eacute <> E ; eacute <> e ;",
+ "% LIGKERN Ecircumflex <> E ; ecircumflex <> e ;",
+ "% LIGKERN Edieresis <> E ; edieresis <> e ;",
+ "% LIGKERN Egrave <> E ; egrave <> e ;",
+ "% LIGKERN Iacute <> I ; iacute <> i ;",
+ "% LIGKERN Icircumflex <> I ; icircumflex <> i ;",
+ "% LIGKERN Idieresis <> I ; idieresis <> i ;",
+ "% LIGKERN Igrave <> I ; igrave <> i ;",
+ "% LIGKERN Ntilde <> N ; ntilde <> n ;",
+ "% LIGKERN Oacute <> O ; oacute <> o ;",
+ "% LIGKERN Ocircumflex <> O ; ocircumflex <> o ;",
+ "% LIGKERN Odieresis <> O ; odieresis <> o ;",
+ "% LIGKERN Ograve <> O ; ograve <> o ;",
+ "% LIGKERN Oslash <> O ; oslash <> o ;",
+ "% LIGKERN Otilde <> O ; otilde <> o ;",
+ "% LIGKERN Scaron <> S ; scaron <> s ;",
+ "% LIGKERN Uacute <> U ; uacute <> u ;",
+ "% LIGKERN Ucircumflex <> U ; ucircumflex <> u ;",
+ "% LIGKERN Udieresis <> U ; udieresis <> u ;",
+ "% LIGKERN Ugrave <> U ; ugrave <> u ;",
+ "% LIGKERN Yacute <> Y ; yacute <> y ;",
+ "% LIGKERN Ydieresis <> Y ; ydieresis <> y ;",
+ "% LIGKERN Zcaron <> Z ; zcaron <> z ;",
+/*
+ * These next are only included for deficient afm files that
+ * have the lig characters but not the lig commands.
+ */
+ "% LIGKERN f i =: fi ; f l =: fl ; f f =: ff ; ff i =: ffi ;",
+ "% LIGKERN ff l =: ffl ;",
+ 0 };
+/*
+ * The above layout corresponds to TeX Typewriter Type and is compatible
+ * with TeX Text because the position of ligatures is immaterial.
+ */
+struct encoding *outencoding = 0;
+struct encoding *inencoding = 0;
+char *outenname = NULL,
+ *inenname = NULL;/* the file names for input and output encodings */
+int boundarychar = -1; /* the boundary character */
+int ignoreligkern; /* do we look at ligkern info in the encoding? */
+/*
+ * This is what we store Adobe data in.
+ */
+struct adobeinfo {
+ struct adobeinfo *next;
+ int adobenum, texnum, width;
+ const char *adobename;
+ int llx, lly, urx, ury;
+ struct lig *ligs;
+ struct kern *kerns;
+ struct adobeptr *kern_equivs;
+ struct pcc *pccs;
+ int wptr, hptr, dptr, iptr;
+} *adobechars, *adobeptrs[256], *texptrs[256],
+ *uppercase[256], *lowercase[256];
+int nexttex[256]; /* for characters encoded multiple times in output */
+/*
+ * These are the eight ligature ops, in VPL terms and in METAFONT terms.
+ */
+const char *vplligops[] = {
+ "LIG", "/LIG", "/LIG>", "LIG/", "LIG/>", "/LIG/", "/LIG/>", "/LIG/>>", 0
+};
+const char *encligops[] = {
+ "=:", "|=:", "|=:>", "=:|", "=:|>", "|=:|", "|=:|>", "|=:|>>", 0
+};
+struct lig {
+ struct lig *next;
+ const char *succ, *sub;
+ short op, boundleft;
+};
+struct kern {
+ struct kern *next;
+ const char *succ;
+ int delta;
+};
+struct adobeptr {
+ struct adobeptr *next;
+ struct adobeinfo *ch;
+};
+struct pcc {
+ struct pcc *next;
+ const char * partname;
+ int xoffset, yoffset;
+};
+
+FILE *afmin, *vplout, *tfmout;
+#define MAXNAME 256
+char inname[MAXNAME], outname[MAXNAME]; /* names of input and output files */
+char tmpstr[MAXNAME]; /* a buffer for one string */
+#define INBUFSIZE 1024
+char buffer[INBUFSIZE+10]; /* input buffer (modified while parsing) */
+char obuffer[INBUFSIZE+10]; /* unmodified copy of input buffer */
+char *param; /* current position in input buffer */
+const char *fontname = "Unknown";
+const char *codingscheme = "Unspecified";
+#ifdef VMCMS
+char *ebfontname;
+char *ebcodingscheme;
+#endif
+float italicangle = 0.0;
+char fixedpitch;
+char makevpl;
+char pedantic;
+int noaccentheightadjust;
+int xheight = 400;
+int fontspace;
+int bc, ec;
+long cksum;
+float efactor = 1.0, slant = 0.0;
+float capheight = 0.8;
+char *efactorparam, *slantparam;
+double newslant;
+char titlebuf[500];
+
+static void
+error(const char *s)
+{
+ fprintf(stderr, "%s\n", s);
+ if (obuffer[0]) {
+ fprintf(stderr, "%s\n", obuffer);
+ while (param > buffer) {
+ fprintf(stderr, " ");
+ param--;
+ }
+ fprintf(stderr, "^\n");
+ }
+ if (*s == '!')
+ exit(1);
+}
+
+static int
+transform(register int x, register int y)
+{
+ register double acc;
+ acc = efactor * x + slant *y;
+ return (int)(acc>=0? floor(acc+0.5) : ceil(acc-0.5) );
+}
+
+static int
+texlive_getline(void) {
+ register char *p;
+ register int c;
+
+ param = buffer;
+ for (p=buffer; (c=getc(afmin)) != EOF;) {
+ if (p - buffer >= INBUFSIZE)
+ error("! input line too long; perhaps input file is malformed?");
+ *p++ = c;
+ if (c == '\r') {
+ c = getc(afmin);
+ if (c != EOF) {
+ if (c == '\n') {
+ *p++ = c;
+ } else {
+ ungetc(c, afmin);
+ }
+ }
+ break;
+ } else if (c == '\n') {
+ break;
+ }
+ }
+ *p = 0;
+ strcpy(obuffer, buffer);
+ if (p == buffer && c == EOF)
+ return(0);
+ else
+ return(1);
+}
+
+const char *interesting[] = { "FontName", "ItalicAngle", "IsFixedPitch",
+ "XHeight", "C", "KPX", "CC", "EncodingScheme", NULL};
+#define FontName (0)
+#define ItalicAngle (1)
+#define IsFixedPitch (2)
+#define XHeight (3)
+#define C (4)
+#define KPX (5)
+#define CC (6)
+#define EncodingScheme (7)
+#define NONE (-1)
+static int
+interest(const char *s)
+{
+ register const char **p;
+ register int n;
+
+ for (p=interesting, n=0; *p; p++, n++)
+ if (strcmp(s, *p)==0)
+ return(n);
+ return(NONE);
+}
+
+static char *
+mymalloc(unsigned long len)
+{
+ register char *p;
+ int i;
+
+#ifdef SMALLMALLOC
+ if (len > 65500L)
+ error("! can't allocate more than 64K!");
+#endif
+ p = (char *) malloc((unsigned)len);
+ if (p==NULL)
+ error("! out of memory");
+ for (i=0; i<len; i++)
+ p[i] = 0;
+ return(p);
+}
+
+static char *
+newstring(char *s)
+{
+ char *q = mymalloc((unsigned long)(strlen(s) + 1));
+ strcpy(q, s);
+ return q;
+}
+
+static char *
+paramnewstring(void) {
+ register char *p, *q;
+
+ p = param;
+ while (*p > ' ')
+ p++;
+ if (*p != 0)
+ *p++ = 0;
+ q = newstring(param);
+ while (*p && *p <= ' ')
+ p++;
+ param = p;
+ return(q);
+}
+
+static char *
+paramstring(void) {
+ register char *p, *q;
+
+ p = param;
+ while (*p > ' ')
+ p++;
+ q = param;
+ if (*p != 0)
+ *p++ = 0;
+ while (*p && *p <= ' ')
+ p++;
+ param = p;
+ return(q);
+}
+
+static int
+paramnum(void) {
+ register char *p;
+ int i;
+
+ p = paramstring();
+ if (sscanf(p, "%d", &i) != 1)
+ error("! integer expected");
+ return(i);
+}
+
+static float
+paramfloat(void) {
+ register char *p;
+ float i;
+
+ p = paramstring();
+ if (sscanf(p, "%f", &i) != 1)
+ error("! number expected");
+ return(i);
+}
+
+static struct adobeinfo *
+newchar(void) {
+ register struct adobeinfo *ai;
+
+ ai = (struct adobeinfo *)mymalloc((unsigned long)sizeof(struct adobeinfo));
+ ai->adobenum = -1;
+ ai->texnum = -1;
+ ai->width = -1;
+ ai->adobename = NULL;
+ ai->llx = -1;
+ ai->lly = -1;
+ ai->urx = -1;
+ ai->ury = -1;
+ ai->ligs = NULL;
+ ai->kerns = NULL;
+ ai->kern_equivs = NULL;
+ ai->pccs = NULL;
+ ai->next = adobechars;
+ adobechars = ai;
+ return(ai);
+}
+
+static struct kern *
+newkern(void) {
+ register struct kern *nk;
+
+ nk = (struct kern *)mymalloc((unsigned long)sizeof(struct kern));
+ nk->next = NULL;
+ nk->succ = NULL;
+ nk->delta = 0;
+ return(nk);
+}
+
+static struct pcc *
+newpcc(void) {
+ register struct pcc *np;
+
+ np = (struct pcc *)mymalloc((unsigned long)sizeof(struct pcc));
+ np->next = NULL;
+ np->partname = NULL;
+ np->xoffset = 0;
+ np->yoffset = 0;
+ return(np);
+}
+
+static struct lig *
+newlig(void) {
+ register struct lig *nl;
+
+ nl = (struct lig *)mymalloc((unsigned long)sizeof(struct lig));
+ nl->next = NULL;
+ nl->succ = NULL;
+ nl->sub = NULL;
+ nl->op = 0; /* the default =: op */
+ nl->boundleft = 0;
+ return(nl);
+}
+
+static void
+expect(const char *s)
+{
+ if (strcmp(paramstring(), s) != 0) {
+ fprintf(stderr, "%s expected: ", s);
+ error("! syntax error");
+ }
+}
+
+static void
+handlechar(void) { /* an input line beginning with C */
+ register struct adobeinfo *ai;
+ register struct lig *nl;
+
+ ai = newchar();
+ ai->adobenum = paramnum();
+ expect(";");
+ expect("WX");
+ ai->width = transform(paramnum(),0);
+ if (ai->adobenum >= 0 && ai->adobenum < 256) {
+ adobeptrs[ai->adobenum] = ai;
+ }
+ expect(";");
+/* Ignore vertical metrics information */
+ if (*param == 'W' && *(param + 1) == 'Y') {
+ expect("WY");
+ paramnum();
+ expect(";");
+ }
+ expect("N");
+ ai->adobename = paramnewstring();
+ expect(";");
+ expect("B");
+ ai->llx = paramnum();
+ ai->lly = paramnum();
+ ai->llx = transform(ai->llx, ai->lly);
+ ai->urx = paramnum();
+ ai->ury = paramnum();
+ ai->urx = transform(ai->urx, ai->ury);
+/* We need to avoid negative heights or depths. They break accents in
+ math mode, among other things. */
+ if (ai->lly > 0)
+ ai->lly = 0;
+ if (ai->ury < 0)
+ ai->ury = 0;
+ expect(";");
+/* Now look for ligatures (which aren't present in fixedpitch fonts) */
+ while (*param == 'L' && !fixedpitch) {
+ expect("L");
+ nl = newlig();
+ nl->succ = paramnewstring();
+ nl->sub = paramnewstring();
+ nl->next = ai->ligs;
+ ai->ligs = nl;
+ expect(";");
+ }
+}
+
+static struct adobeinfo *
+findadobe(const char *p)
+{
+ register struct adobeinfo *ai;
+
+ for (ai=adobechars; ai; ai = ai->next)
+ if (strcmp(p, ai->adobename)==0)
+ return(ai);
+ return(NULL);
+}
+
+
+/*
+ * The following comment no longer applies; we rely on the LIGKERN
+ * entries to kill space kerns. Also, the same applies to numbers.
+ *
+ * We ignore kerns before and after space characters, because (1) TeX
+ * is using the space only for Polish ligatures, and (2) TeX's
+ * boundarychar mechanisms are not oriented to kerns (they apply
+ * to both spaces and punctuation) so we don't want to use them.
+ */
+static void
+handlekern(void) { /* an input line beginning with KPX */
+ register struct adobeinfo *ai;
+ register char *p;
+ register struct kern *nk;
+
+ p = paramstring();
+ ai = findadobe(p);
+ if (ai == NULL)
+ error("kern char not found");
+ else {
+ nk = newkern();
+ nk->succ = paramnewstring();
+ nk->delta = transform(paramnum(),0);
+ nk->next = ai->kerns;
+ ai->kerns = nk;
+ }
+}
+
+static void
+handleconstruct(void) { /* an input line beginning with CC */
+ register struct adobeinfo *ai;
+ register char *p;
+ register struct pcc *np;
+ register int n;
+ struct pcc *npp = NULL;
+
+ p = paramstring();
+ ai = findadobe(p);
+ if (ai == NULL)
+ error("! composite character name not found");
+ n = paramnum();
+ expect(";");
+ while (n--) {
+ if (strcmp(paramstring(),"PCC") != 0) return;
+ /* maybe I should expect("PCC") instead, but I'm playing it safe */
+ np = newpcc();
+ np->partname = paramnewstring();
+ if (findadobe(np->partname)==NULL) return;
+ np->xoffset = paramnum();
+ np->yoffset = paramnum();
+ np->xoffset = transform(np->xoffset, np->yoffset);
+ if (npp) npp->next = np;
+ else ai->pccs = np;
+ npp = np;
+ expect(";");
+ }
+}
+
+static struct encoding *readencoding(char *);
+
+#if 0
+/* Not used */
+static void
+makeaccentligs(void) {
+ register struct adobeinfo *ai, *aci;
+ register char *p;
+ register struct lig *nl;
+ for (ai=adobechars; ai; ai=ai->next) {
+ p = ai->adobename;
+ if (strlen(p)>2)
+ if ((aci=findadobe(p+1)) && (aci->adobenum > 127)) {
+ nl = newlig();
+ nl->succ = mymalloc((unsigned long)2);
+ *(nl->succ + 1) = 0;
+ *(nl->succ) = *p;
+ nl->sub = ai->adobename;
+ nl->next = aci->ligs;
+ aci->ligs = nl;
+ }
+ }
+}
+#endif
+
+static void
+readadobe(void) {
+ struct adobeinfo *ai;
+#ifdef VMCMS
+ int i;
+#endif
+
+/*
+ * We allocate a placeholder boundary char.
+ */
+ ai = newchar();
+ ai->adobenum = -1;
+ ai->adobename = "||"; /* boundary character name */
+ while (texlive_getline()) {
+ switch(interest(paramstring())) {
+case FontName:
+ fontname = paramnewstring();
+#ifdef VMCMS
+/* fontname comes in as ebcdic but we need it asciified for tfm file
+ so we save it in ebfontname and change it in fontname */
+ ebfontname = newstring(fontname);
+ i=0;
+ while(fontname[i] != '\0') {
+ fontname[i]=ebcdic2ascii[fontname[i]];
+ i++;
+ };
+#endif
+ break;
+case EncodingScheme:
+ codingscheme = paramnewstring();
+#ifdef VMCMS
+/* for codingscheme, we do the same as we did for fontname */
+ ebcodingscheme = newstring(codingscheme);
+ i=0;
+ while(codingscheme[i] != '\0') {
+ codingscheme[i]=ebcdic2ascii[codingscheme[i]];
+ i++;
+ }
+#endif
+ break;
+case ItalicAngle:
+ italicangle = paramfloat();
+ break;
+case IsFixedPitch:
+ if (*param == 't' || *param == 'T')
+ fixedpitch = 1;
+ else
+ fixedpitch = 0;
+ break;
+case XHeight:
+ xheight = paramnum();
+ break;
+case C:
+ handlechar();
+ break;
+case KPX:
+ handlekern();
+ break;
+case CC:
+ handleconstruct();
+ break;
+default:
+ break;
+ }
+ }
+ fclose(afmin);
+ afmin = 0;
+}
+/*
+ * Re-encode the adobe font. Assumes that the header file will
+ * also contain the appropriate instructions!
+ */
+static void
+handlereencoding(void) {
+ if (inenname) {
+ int i;
+ struct adobeinfo *ai;
+ const char *p;
+
+ ignoreligkern = 1;
+ inencoding = readencoding(inenname);
+ for (i=0; i<256; i++)
+ if (0 != (ai=adobeptrs[i])) {
+ ai->adobenum = -1;
+ adobeptrs[i] = NULL;
+ }
+ for (i=0; i<256; i++) {
+ p = inencoding->vec[i];
+ if (p && *p && strcmp(p, ".notdef") != 0 && 0 != (ai = findadobe(p))) {
+ ai->adobenum = i;
+ adobeptrs[i] = ai;
+ }
+ }
+ codingscheme = inencoding->name;
+ }
+ ignoreligkern = 0;
+ if (outenname) {
+ outencoding = readencoding(outenname);
+ } else {
+ outencoding = readencoding((char *)0);
+ }
+}
+
+/*
+ * This routine reverses a list. We use it because we accumulate the
+ * adobeinfo list in reverse order, but when we go to map the
+ * characters, we would prefer to use the original ordering. It just
+ * makes more sense.
+ */
+static struct adobeinfo *
+revlist (struct adobeinfo *p)
+{
+ struct adobeinfo *q = 0, *t;
+
+ while (p) {
+ t = p->next;
+ p->next = q;
+ q = p;
+ p = t;
+ }
+ return q;
+}
+
+static void
+assignchars(void) {
+ register const char **p;
+ register int i, j;
+ register struct adobeinfo *ai, *pai;
+ int nextfree = 128;
+ struct pcc *pcp;
+
+/*
+ * First, we assign all those that match perfectly.
+ */
+ for (i=0, p=outencoding->vec; i<256; i++, p++)
+ if (*p && strcmp(*p, ".notdef") != 0 &&
+ (ai=findadobe(*p)) && (ai->adobenum >= 0 || ai->pccs != NULL)) {
+ if (ai->texnum >= 0)
+ nexttex[i] = ai->texnum; /* linked list */
+ ai->texnum = i;
+ texptrs[i] = ai;
+ }
+ if (pedantic)
+ return;
+/*
+ * Next, we assign all the others, retaining the adobe positions, possibly
+ * multiply assigning characters. Unless the output encoding was
+ * precisely specified.
+ */
+ for (ai=adobechars; ai; ai=ai->next)
+ if (ai->adobenum >= 0 && ai->adobenum <256
+ && ai->texnum < 0 && texptrs[ai->adobenum] == 0) {
+ ai->texnum = ai->adobenum;
+ texptrs[ai->adobenum] = ai;
+ }
+/*
+ * Finally, we map all remaining characters into free locations beginning
+ * with 128, if we know how to construct those characters. We need to
+ * make sure the component pieces are mapped.
+ */
+ adobechars = revlist(adobechars);
+ for (ai=adobechars; ai; ai=ai->next)
+ if (ai->texnum<0 && (ai->adobenum>=0 || ai->pccs != NULL)) {
+ while (texptrs[nextfree]) {
+ nextfree=(nextfree+1)&255;
+ if (nextfree==128) goto finishup; /* all slots full */
+ }
+ ai->texnum = nextfree;
+ texptrs[nextfree] = ai;
+ }
+finishup:
+/*
+ * We now check all of the composite characters. If any of the
+ * components are not mapped, we unmap the composite character.
+ */
+ for (i=0; i<256; i++) {
+ ai = texptrs[i];
+ if (ai && ai->pccs != NULL && ai->texnum >= 0) {
+ for (pcp = ai->pccs; pcp; pcp = pcp->next) {
+ pai = findadobe(pcp->partname);
+ if (pai == NULL || pai->texnum < 0) {
+ texptrs[ai->texnum] = 0;
+ ai->texnum = -1;
+ break;
+ }
+ }
+ }
+ }
+/*
+ * Now, if any of the characters are encoded multiple times, we want
+ * ai->texnum to be the first one assigned, since that is most likely
+ * to be the most important one. So we reverse the above lists.
+ */
+ for (ai=adobechars; ai; ai=ai->next)
+ if (ai->texnum >= 0 && ai->texnum < 256) {
+ j = -1;
+ while (nexttex[ai->texnum] >= 0) {
+ i = nexttex[ai->texnum];
+ nexttex[ai->texnum] = j;
+ j = ai->texnum;
+ ai->texnum = i;
+ }
+ nexttex[ai->texnum] = j;
+ }
+}
+
+static void
+upmap(void) { /* Compute uppercase mapping, when making a small caps font */
+ register struct adobeinfo *ai, *Ai;
+ register const char *p;
+ register char *q;
+ register struct pcc *np, *nq;
+ int i;
+ char lwr[50];
+
+/* JLH: changed some lines below to be ascii<->ebcdic independent
+ any reason we don't use 'isupper'?.
+ Looks like we should use isupper to me --karl. */
+ for (Ai=adobechars; Ai; Ai=Ai->next) {
+ p = Ai->adobename;
+ if (isupper ((unsigned char)*p)) {
+ q = lwr;
+ for (; *p; p++)
+ *q++ = TOLOWER (*p);
+ *q = '\0'; /* changed this too! */
+
+ if (0 != (ai=findadobe(lwr))) {
+ for (i = ai->texnum; i >= 0; i = nexttex[i])
+ uppercase[i] = Ai;
+ for (i = Ai->texnum; i >= 0; i = nexttex[i])
+ lowercase[i] = ai;
+ }
+ }
+ }
+/* Note that, contrary to the normal true/false conventions,
+ * uppercase[i] is NULL and lowercase[i] is non-NULL when i is the
+ * ASCII code of an uppercase letter; and vice versa for lowercase letters */
+
+ if (0 != (ai=findadobe("germandbls")))
+ if (0 != (Ai=findadobe("S"))) { /* we also construct SS */
+ for (i=ai->texnum; i >= 0; i = nexttex[i])
+ uppercase[i] = ai;
+ ai->adobenum = -1;
+ ai->width = Ai->width << 1;
+ ai->llx = Ai->llx;
+ ai->lly = Ai->lly;
+ ai->urx = Ai->width + Ai->urx;
+ ai->ury = Ai->ury;
+ ai->kerns = Ai->kerns;
+ np = newpcc();
+ np->partname = "S";
+ nq = newpcc();
+ nq->partname = "S";
+ nq->xoffset = Ai->width;
+ np->next = nq;
+ ai->pccs = np;
+ }
+ if ((ai=findadobe("dotlessi")))
+ for (i=ai->texnum; i >= 0; i = nexttex[i])
+ uppercase[i] = findadobe("I");
+ if ((ai=findadobe("dotlessj")))
+ for (i=ai->texnum; i >= 0; i = nexttex[i])
+ uppercase[i] = findadobe("J");
+}
+/* The logic above seems to work well enough, but it leaves useless characters
+ * like `fi' and `fl' in the font if they were present initially,
+ * and it omits characters like `dotlessj' if they are absent initially */
+
+/* Now we turn to computing the TFM file */
+
+int lf, lh, nw, nh, nd, ni, nl, nk, ne, np;
+
+static void
+write16(register short what)
+{
+ fputc(what >> 8, tfmout);
+ fputc(what & 255, tfmout);
+}
+
+static void
+writearr(register long *p, register int n)
+{
+ while (n) {
+ write16((short)(*p >> 16));
+ write16((short)(*p & 65535));
+ p++;
+ n--;
+ }
+}
+
+static void
+makebcpl(register long *p, register const char *s, register int n)
+{
+ register long t;
+ register long sc;
+
+ if (strlen(s) < n)
+ n = strlen(s);
+ t = ((long)n) << 24;
+ sc = 16;
+ while (n > 0) {
+ t |= ((long)(*(unsigned const char *)s++)) << sc;
+ sc -= 8;
+ if (sc < 0) {
+ *p++ = t;
+ t = 0;
+ sc = 24;
+ }
+ n--;
+ }
+ *p++ = t;
+}
+
+int source[257];
+int unsort[257];
+
+/*
+ * Next we need a routine to reduce the number of distinct dimensions
+ * in a TFM file. Given an array what[0]...what[oldn-1], we want to
+ * group its elements into newn clusters, in such a way that the maximum
+ * difference between elements of a cluster is as small as possible.
+ * Furthermore, what[0]=0, and this value must remain in a cluster by
+ * itself. Data such as `0 4 6 7 9' with newn=3 shows that an iterative
+ * scheme in which 6 is first clustered with 7 will not work. So we
+ * borrow a neat algorithm from METAFONT to find the true optimum.
+ * Memory location what[oldn] is set to 0x7fffffffL for convenience.
+ */
+long nextd; /* smallest value that will give a different mincover */
+static int
+mincover(long *what,
+ register long d) /* tells how many clusters result, given max difference d */
+{
+ register int m;
+ register long l;
+ register long *p;
+
+ nextd = 0x7fffffffL;
+ p = what+1;
+ m = 1;
+ while (*p<0x7fffffffL) {
+ m++;
+ l = *p;
+ while (*++p <= l+d);
+ if (*p-l < nextd) nextd = *p-l;
+ }
+ return (m);
+}
+
+static void
+remap(long * what, int oldn, int newn)
+{
+ register int i, j;
+ register long d, l;
+
+ what[oldn] = 0x7fffffffL;
+ for (i=oldn-1; i>0; i--) {
+ d = what[i];
+ for (j=i; what[j+1]<d; j++) {
+ what[j] = what[j+1];
+ source[j] = source[j+1];
+ }
+ what[j] = d;
+ source[j] = i;
+ } /* Tom, don't let me ever catch you using bubblesort again! -- Don */
+
+ i = mincover(what, 0L);
+ d = nextd;
+ while (mincover(what,d+d)>newn) d += d;
+ while (mincover(what,d)>newn) d = nextd;
+
+ i = 1;
+ j = 0;
+ while (i<oldn) {
+ j++;
+ l = what[i];
+ unsort[source[i]] = j;
+ while (what[++i] <= l+d) {
+ unsort[source[i]] = j;
+ if (i-j == oldn-newn) d = 0;
+ }
+ what[j] = (l+what[i-1])/2;
+ }
+}
+
+static long
+checksum(void) {
+ int i;
+ unsigned long s1 = 0, s2 = 0;
+ const char *p;
+ struct adobeinfo *ai;
+
+ for (i=0; i<256; i++)
+ if (0 != (ai=adobeptrs[i])) {
+ s1 = ((s1 << 1) ^ (s1>>31)) ^ ai->width; /* cyclic left shift */
+ s1 &= 0xffffffff; /* in case we're on a 64-bit machine */
+ for (p=ai->adobename; *p; p++)
+#ifndef VMCMS
+ s2 = (s2 * 3) + *p;
+#else
+ s2 = (s2 * 3) + ebcdic2ascii[*p];
+#endif
+ }
+ s1 = (s1 << 1) ^ s2;
+ return s1;
+}
+
+/*
+ * The next routine simply scales something.
+ * Input is in 1000ths of an em. Output is in FIXFACTORths of 1000.
+ */
+#define FIXFACTOR (0x100000L) /* 2^{20}, the unit fixnum */
+static long
+scale(long what)
+{
+ return(((what / 1000) << 20) +
+ (((what % 1000) << 20) + 500) / 1000);
+}
+
+long *header, *charinfo, *width, *height, *depth, *ligkern, *kern, *tparam,
+ *italic;
+long *tfmdata;
+
+static void
+buildtfm(void) {
+ register int i, j;
+ register struct adobeinfo *ai;
+
+ header = tfmdata;
+ cksum = checksum();
+ header[0] = cksum;
+ header[1] = 0xa00000; /* 10pt design size */
+ makebcpl(header+2, codingscheme, 39);
+ makebcpl(header+12, fontname, 19);
+ lh = 17;
+ charinfo = header + lh;
+
+ for (i=0; i<256 && adobeptrs[i]==NULL; i++);
+ bc = i;
+ for (i=255; i>=0 && adobeptrs[i]==NULL; i--);
+ ec = i;
+ if (ec < bc)
+ error("! no Adobe characters");
+
+ width = charinfo + (ec - bc + 1);
+ width[0] = 0;
+ nw++;
+ for (i=bc; i<=ec; i++)
+ if (0 != (ai=adobeptrs[i])) {
+ width[nw]=ai->width;
+ for (j=1; width[j]!=ai->width; j++);
+ ai->wptr = j;
+ if (j==nw)
+ nw++;
+ }
+ if (nw>256)
+ error("! 256 chars with different widths");
+ depth = width + nw;
+ depth[0] = 0;
+ nd = 1;
+ for (i=bc; i<=ec; i++)
+ if (0 != (ai=adobeptrs[i])) {
+ depth[nd] = -ai->lly;
+ for (j=0; depth[j]!=-ai->lly; j++);
+ ai->dptr = j;
+ if (j==nd)
+ nd++;
+ }
+ if (nd > 16) {
+ remap(depth, nd, 16);
+ nd = 16;
+ for (i=bc; i<=ec; i++)
+ if (0 != (ai=adobeptrs[i]))
+ ai->dptr = unsort[ai->dptr];
+ }
+ height = depth + nd;
+ height[0] = 0;
+ nh = 1;
+ for (i=bc; i<=ec; i++)
+ if (0 != (ai=adobeptrs[i])) {
+ height[nh]=ai->ury;
+ for (j=0; height[j]!=ai->ury; j++);
+ ai->hptr = j;
+ if (j==nh)
+ nh++;
+ }
+ if (nh > 16) {
+ remap(height, nh, 16);
+ nh = 16;
+ for (i=bc; i<=ec; i++)
+ if (0 != (ai=adobeptrs[i]))
+ ai->hptr = unsort[ai->hptr];
+ }
+ italic = height + nh;
+ italic[0] = 0;
+ ni = 1;
+ for (i=bc; i<=ec; i++)
+ if (0 != (ai=adobeptrs[i])) {
+ italic[ni] = ai->urx - ai->width;
+ if (italic[ni]<0)
+ italic[ni] = 0;
+ for (j=0; italic[j]!=italic[ni]; j++);
+ ai->iptr = j;
+ if (j==ni)
+ ni++;
+ }
+ if (ni > 64) {
+ remap(italic, ni, 64);
+ ni = 64;
+ for (i=bc; i<=ec; i++)
+ if (0 != (ai=adobeptrs[i]))
+ ai->iptr = unsort[ai->iptr];
+ }
+
+ for (i=bc; i<=ec; i++)
+ if (0 != (ai=adobeptrs[i]))
+ charinfo[i-bc] = ((long)(ai->wptr)<<24) +
+ ((long)(ai->hptr)<<20) +
+ ((long)(ai->dptr)<<16) +
+ ((long)(ai->iptr)<<10);
+
+ ligkern = italic + ni;
+ nl = 0; /* ligatures and kerns omitted from raw Adobe font */
+ kern = ligkern + nl;
+ nk = 0;
+
+ newslant = (double)slant - efactor * tan(italicangle*(3.1415926535/180.0));
+ tparam = kern + nk;
+ tparam[0] = (long)(FIXFACTOR * newslant + 0.5);
+ tparam[1] = scale((long)fontspace);
+ tparam[2] = (fixedpitch ? 0 : scale((long)(300*efactor+0.5)));
+ tparam[3] = (fixedpitch ? 0 : scale((long)(100*efactor+0.5)));
+ tparam[4] = scale((long)xheight);
+ tparam[5] = scale((long)(1000*efactor+0.5));
+ np = 6;
+}
+
+static void
+writesarr(long *what, int len)
+{
+ register long *p;
+ int i;
+
+ p = what;
+ i = len;
+ while (i) {
+ *p = scale(*p);
+ scale(*p); /* need this kludge for some compilers */
+ p++;
+ i--;
+ }
+ writearr(what, len);
+}
+
+static void
+writetfm(void) {
+ lf = 6 + lh + (ec - bc + 1) + nw + nh + nd + ni + nl + nk + ne + np;
+ write16((short)lf);
+ write16((short)lh);
+ write16((short)bc);
+ write16((short)ec);
+ write16((short)nw);
+ write16((short)nh);
+ write16((short)nd);
+ write16((short)ni);
+ write16((short)nl);
+ write16((short)nk);
+ write16((short)ne);
+ write16((short)np);
+ writearr(header, lh);
+ writearr(charinfo, ec-bc+1);
+ writesarr(width, nw);
+ writesarr(height, nh);
+ writesarr(depth, nd);
+ writesarr(italic, ni);
+ writearr(ligkern, nl);
+ writesarr(kern, nk);
+ writearr(tparam, np);
+}
+
+/* OK, the TFM file is done! Now for our next trick, the VPL file. */
+
+/* For TeX we want to compute a character height that works properly
+ with accents. We only do this if the xheight has a reasonable value
+ (>50), and only if the -a flag is not given. Furthermore, we never
+ return a height less than the height of the original character.
+
+ The idea of this routine is to adjust the heights of bare characters
+ (say, t) so that the result of using the \accent primitive (say, \"t)
+ is the same as a precomposed tdieresis character. This is done in
+ the vpl output, so the vf+tfm generated from the vpl are affected,
+ but not the original tfm.
+
+ This idea is reasonable, but the downside is that changing the height
+ of the base character at all, but especially downward, has
+ undesirable consequences: when putting a rule over the character or
+ constructing a math bar-over accent, for example, the rule will be
+ too close to (or too far from, if the height is increased) the
+ character.
+
+ Furthermore, these days, except when using the original CM fonts,
+ precomposed accent glyphs are widely available and used. And afm2tfm
+ is not used much with the original CM fonts, as they don't come with
+ afm files :).
+
+ In any case, there is one situation where adjusting the height of the
+ base character by looking at the standalone accent is definitely
+ wrong: the dcaron, tcaron, and [Ll]caron glyphs. In these cases, the
+ usual check-above shape is replaced by (approximately) an apostrophe
+ to the right of the character. Therefore looking at the standalone
+ check glyph is inapplicable.
+
+ In general, it seems wrong to ever decrease the height from the
+ original, since that will almost certainly result in crashes with
+ \bar and the like. That seems worse than a mispositioned accent.
+ So the routine returns the original height if the heuristic would
+ decrease it.
+
+ Nevertheless, despite all the above, the original behavior has been
+ around for so many years that it seems bad to change it now. So
+ adjustments upward are still made, unless -a is given.
+
+ The following list of accents doesn't need to be complete. */
+const char *accents[] = { "acute", "tilde", "caron", "dieresis", NULL };
+
+static int
+texheight(struct adobeinfo *ai)
+{
+ const char **p;
+ struct adobeinfo *aci, *acci;
+ /* The `ai' argument is the base letter, e.g., "d".
+ `aci' is the accent, e.g., "caron".
+ `acci' is the pre-composed accented letter, e.g., "dcaron". */
+
+ /* If -a was given, or the xheight is too small, or the character
+ name is more than one letter long, return the original height. */
+ if (noaccentheightadjust
+ || xheight <= 50
+ || *(ai->adobename + 1))
+ return ai->ury;
+
+ for (p = accents; *p; p++) { /* otherwise we look for accented letters */
+ aci = findadobe(*p);
+ if (aci) {
+ strcpy(buffer, ai->adobename);
+ strcat(buffer, *p);
+ acci = findadobe(buffer);
+ if (acci) {
+ /* height heuristic since \accent assumes x-height positioning */
+ int guess = acci->ury - aci->ury + xheight;
+ if (guess > ai->ury) { /* ignore guess if it reduces height */
+ return guess;
+ }
+ }
+ }
+ }
+
+ /* didn't find anything to adjust, return original */
+ return ai->ury;
+}
+
+/* modified tgr to eliminate varargs problems */
+
+#define vout(s) fprintf(vplout, s)
+int level; /* the depth of parenthesis nesting in VPL file being written */
+static void
+vlevout(void)
+{
+ register int l = level;
+ while (l--) vout(" ");
+}
+static void
+vlevnlout(void)
+{
+ vout("\n");
+ vlevout();
+}
+#define voutln(str) {fprintf(vplout,"%s\n",str);vlevout();}
+#define voutln2(f,s) {fprintf(vplout,f,s);vlevnlout();}
+#define voutln3(f,a,b) {fprintf(vplout,f,a,b);vlevnlout();}
+#define voutln4(f,a,b,c) {fprintf(vplout,f,a,b,c);vlevnlout();}
+static void
+vleft(void)
+{
+ level++;
+ vout("(");
+}
+
+static void
+vright(void)
+{
+ level--;
+ voutln(")");
+}
+
+int forceoctal = 0;
+
+char vcharbuf[100];
+static char *
+vchar(int c)
+{
+ if (forceoctal == 0 && ISALNUM (c))
+ sprintf(vcharbuf,"C %c",
+#ifndef VMCMS
+ c);
+#else
+ ascii2ebcdic[c]);
+#endif
+ else sprintf(vcharbuf,"O %o", (unsigned)c);
+ return vcharbuf;
+}
+
+char vnamebuf[1000];
+static char *
+vname(int c)
+{
+ if (!forceoctal && ISALNUM (c)) {
+ vnamebuf[0] = 0;
+ } else if (c >= 0 && c < 256) {
+ snprintf (vnamebuf, sizeof (vnamebuf),
+ " (comment %s)", texptrs[c]->adobename);
+ }
+ return vnamebuf;
+}
+
+static void
+writevpl(void)
+{
+ register int i, j, k;
+ register struct adobeinfo *ai;
+ register struct lig *nlig;
+ register struct kern *nkern;
+ register struct pcc *npcc;
+ struct adobeinfo *asucc, *asub, *api;
+ struct adobeptr *kern_eq;
+ int xoff, yoff, ht;
+ char unlabeled;
+
+ voutln2("(VTITLE Created by %s)", titlebuf);
+ voutln("(COMMENT Please edit that VTITLE if you edit this file)");
+ snprintf(obuffer, sizeof(obuffer), "TeX-%s%s%s%s", outname,
+ (efactor==1.0? "" : "-E"), (slant==0.0? "" : "-S"),
+ (makevpl==1? "" : "-CSC"));
+ if (strlen(obuffer)>19) { /* too long, will retain first 9 and last 10 */
+ register char *p, *q;
+ for (p = &obuffer[9], q = &obuffer[strlen(obuffer)-10]; p<&obuffer[19];
+ p++, q++) *p = *q;
+ obuffer[19] = '\0';
+ }
+ voutln2("(FAMILY %s)" , obuffer);
+ {
+ char tbuf[300];
+ const char *base_encoding =
+#ifndef VMCMS
+ codingscheme;
+#else
+ ebcodingscheme;
+#endif
+
+ if (strcmp (outencoding->name, base_encoding) == 0) {
+ snprintf(tbuf, sizeof(tbuf), "%s", outencoding->name);
+ } else {
+ snprintf(tbuf, sizeof(tbuf), "%s + %s", base_encoding,
+ outencoding->name);
+ }
+
+ if (strlen(tbuf) > 39) {
+ error("Coding scheme too long; shortening to 39 characters.");
+ tbuf[39] = 0;
+ }
+ voutln2("(CODINGSCHEME %s)", tbuf);
+ }
+ voutln("(DESIGNSIZE R 10.0)");
+ voutln("(DESIGNUNITS R 1000)");
+ voutln("(COMMENT DESIGNSIZE (1 em) IS IN POINTS)");
+ voutln("(COMMENT OTHER DIMENSIONS ARE MULTIPLES OF DESIGNSIZE/1000)");
+ /* Let vptovf compute the checksum. */
+ /* voutln2("(CHECKSUM O %lo)",cksum ^ 0xffffffff); */
+ if (boundarychar >= 0)
+ voutln2("(BOUNDARYCHAR O %lo)", (unsigned long)boundarychar);
+ vleft(); voutln("FONTDIMEN");
+ if (newslant)
+ voutln2("(SLANT R %f)", newslant);
+ voutln2("(SPACE D %d)", fontspace);
+ if (! fixedpitch) {
+ voutln2("(STRETCH D %d)", transform(200,0));
+ voutln2("(SHRINK D %d)", transform(100,0));
+ }
+ voutln2("(XHEIGHT D %d)", xheight);
+ voutln2("(QUAD D %d)", transform(1000,0));
+ voutln2("(EXTRASPACE D %d)", fixedpitch ? fontspace : transform(111, 0));
+ vright();
+ vleft(); voutln("MAPFONT D 0");
+ voutln2("(FONTNAME %s)", outname);
+ /* voutln2("(FONTCHECKSUM O %lo)", (unsigned long)cksum); */
+ vright();
+ if (makevpl>1) {
+ vleft(); voutln("MAPFONT D 1");
+ voutln2("(FONTNAME %s)", outname);
+ voutln2("(FONTAT D %d)", (int)(1000.0*capheight+0.5));
+ /* voutln2("(FONTCHECKSUM O %lo)", (unsigned long)cksum); */
+ vright();
+ }
+
+ for (i=0; i<256 && texptrs[i]==NULL; i++);
+ bc = i;
+ for (i=255; i>=0 && texptrs[i]==NULL; i--);
+ ec = i;
+
+ vleft(); voutln("LIGTABLE");
+ ai = findadobe("||");
+ unlabeled = 1;
+ for (nlig=ai->ligs; nlig; nlig=nlig->next)
+ if (0 != (asucc=findadobe(nlig->succ))) {
+ if (0 != (asub=findadobe(nlig->sub)))
+ if (asucc->texnum>=0)
+ if (asub->texnum>=0) {
+ if (unlabeled) {
+ voutln("(LABEL BOUNDARYCHAR)");
+ unlabeled = 0;
+ }
+ for (j = asucc->texnum; j >= 0; j = nexttex[j]) {
+ voutln4("(%s %s O %o)", vplligops[nlig->op],
+ vchar(j), (unsigned)asub->texnum);
+ }
+ }
+ }
+ if (! unlabeled) voutln("(STOP)");
+ for (i=bc; i<=ec; i++)
+ if ((ai=texptrs[i]) && ai->texnum == i) {
+ unlabeled = 1;
+ if (uppercase[i]==NULL) /* omit ligatures from smallcap lowercase */
+ for (nlig=ai->ligs; nlig; nlig=nlig->next)
+ if (0 != (asucc=findadobe(nlig->succ)))
+ if (0 != (asub=findadobe(nlig->sub)))
+ if (asucc->texnum>=0)
+ if (asub->texnum>=0) {
+ if (unlabeled) {
+ for (j = ai->texnum; j >= 0; j = nexttex[j])
+ voutln3("(LABEL %s)%s", vchar(j), vname(j));
+ unlabeled = 0;
+ }
+ for (j = asucc->texnum; j >= 0; j = nexttex[j]) {
+ voutln4("(%s %s O %o)", vplligops[nlig->op],
+ vchar(j), (unsigned)asub->texnum);
+ if (nlig->boundleft)
+ break;
+ }
+ }
+ for (nkern = (uppercase[i] ? uppercase[i]->kerns : ai->kerns);
+ nkern; nkern=nkern->next)
+ if (0 != (asucc=findadobe(nkern->succ)))
+ for (j = asucc->texnum; j >= 0; j = nexttex[j]) {
+ if (uppercase[j]==NULL) {
+ if (unlabeled) {
+ for (k = ai->texnum; k >= 0; k = nexttex[k])
+ voutln3("(LABEL %s)%s", vchar(k), vname(k));
+ unlabeled = 0;
+ }
+ /* If other characters have the same kerns as this
+ one, output the label here. This makes the TFM
+ file much smaller than if we output all the
+ kerns again under a different label. */
+ for (kern_eq = ai->kern_equivs; kern_eq;
+ kern_eq = kern_eq->next) {
+ k = kern_eq->ch->texnum;
+ if (k >= 0 && k < 256)
+ voutln3("(LABEL %s)%s", vchar(k), vname(k));
+ }
+ ai->kern_equivs = 0; /* Only output those labels once. */
+ if (uppercase[i]) {
+ if (lowercase[j]) {
+ for (k=lowercase[j]->texnum; k >= 0; k = nexttex[k])
+ voutln4("(KRN %s R %.1f)%s", vchar(k),
+ capheight*nkern->delta, vname(k));
+ } else voutln4("(KRN %s R %.1f)%s",
+ vchar(j), capheight*nkern->delta, vname(j));
+ } else {
+ voutln4("(KRN %s R %d)%s", vchar(j),
+ nkern->delta, vname(j));
+ if (lowercase[j])
+ for (k=lowercase[j]->texnum; k >= 0; k = nexttex[k])
+ voutln4("(KRN %s R %.1f)%s", vchar(k),
+ capheight*nkern->delta, vname(k));
+ }
+ }
+ }
+ if (! unlabeled) voutln("(STOP)");
+ }
+ vright();
+
+ for (i=bc; i<=ec; i++)
+ if (0 != (ai=texptrs[i])) {
+ vleft(); fprintf(vplout, "CHARACTER %s", vchar(i));
+ if (*vcharbuf=='C') {
+ voutln("");
+ } else
+ voutln2(" (comment %s)", ai->adobename);
+ if (uppercase[i]) {
+ ai=uppercase[i];
+ voutln2("(CHARWD R %.1f)", capheight * (ai->width));
+ if (0 != (ht=texheight(ai)))
+ voutln2("(CHARHT R %.1f)", capheight * ht);
+ if (ai->lly)
+ voutln2("(CHARDP R %.1f)", -capheight * ai->lly);
+ if (ai->urx > ai->width)
+ voutln2("(CHARIC R %.1f)", capheight * (ai->urx - ai->width));
+ } else {
+ voutln2("(CHARWD R %d)", ai->width);
+ if (0 != (ht=texheight(ai)))
+ voutln2("(CHARHT R %d)", ht);
+ if (ai->lly)
+ voutln2("(CHARDP R %d)", -ai->lly);
+ if (ai->urx > ai->width)
+ voutln2("(CHARIC R %d)", ai->urx - ai->width);
+ }
+ if (ai->adobenum != i || uppercase[i]) {
+ vleft(); voutln("MAP");
+ if (uppercase[i]) voutln("(SELECTFONT D 1)");
+ if (ai->pccs && ai->adobenum < 0) {
+ xoff = 0; yoff = 0;
+ for (npcc = ai->pccs; npcc; npcc=npcc->next)
+ if (0 != (api=findadobe(npcc->partname)))
+ if (api->texnum>=0) {
+ if (npcc->xoffset != xoff) {
+ if (uppercase[i]) {
+ voutln2("(MOVERIGHT R %.1f)",
+ capheight * (npcc->xoffset - xoff));
+ } else voutln2("(MOVERIGHT R %d)",
+ npcc->xoffset - xoff);
+ xoff = npcc->xoffset;
+ }
+ if (npcc->yoffset != yoff) {
+ if (uppercase[i]) {
+ voutln2("(MOVEUP R %.1f)",
+ capheight * (npcc->yoffset - yoff));
+ } else voutln2("(MOVEUP R %d)",
+ npcc->yoffset - yoff);
+ yoff = npcc->yoffset;
+ }
+ voutln2("(SETCHAR O %o)", (unsigned)api->adobenum);
+ xoff += texptrs[api->texnum]->width;
+ }
+ } else voutln2("(SETCHAR O %o)", (unsigned)ai->adobenum);
+ vright();
+ }
+ vright();
+ }
+ if (level) error("! I forgot to match the parentheses");
+}
+
+#ifdef KPATHSEA
+static void
+version(FILE *f)
+{
+ fputs ("afm2tfm(k) (dvips(k) 2021.1) 8.4\n", f);
+ fprintf (f, "%s\n", kpathsea_version_string);
+ fputs ("Copyright 2021 Radical Eye Software.\n\
+There is NO warranty. You may redistribute this software\n\
+under the terms of the GNU General Public License\n\
+and the Dvips copyright.\n\
+For more information about these matters, see the files\n\
+named COPYING and afm2tfm.c.\n\
+Original author of afm2tfm: T. Rokicki.\n", f);
+}
+
+#define USAGE "\
+ Convert an Adobe font metric file to TeX font metric format.\n\
+\n\
+-a omit heuristic adjustment of heights for accents\n\
+-c REAL use REAL for height of small caps made with -V [0.8]\n\
+-e REAL widen (extend) characters by a factor of REAL\n\
+-O use octal for all character codes in the vpl file\n\
+-p ENCFILE read/download ENCFILE for the PostScript encoding\n\
+-s REAL oblique (slant) characters by REAL, generally <<1\n\
+-t ENCFILE read ENCFILE for the encoding of the vpl file\n\
+-T ENCFILE equivalent to -p ENCFILE -t ENCFILE\n\
+-u output only characters from encodings, nothing extra\n\
+-v FILE[.vpl] make a VPL file for conversion to VF\n\
+-V SCFILE[.vpl] like -v, but synthesize smallcaps as lowercase\n\
+--help print this message and exit.\n\
+--version print version number and exit.\n\
+"
+
+static void
+usage(FILE *f)
+{
+ fputs ("Usage: afm2tfm FILE[.afm] [OPTION]... [FILE[.tfm]]\n", f);
+ fputs (USAGE, f);
+ putc ('\n', f);
+ fputs (kpse_bug_address, f);
+}
+#else /* ! KPATHSEA */
+static void
+usage(FILE *f)
+{
+ fprintf(f,
+ "afm2tfm 8.1, Copyright 1990-97 by Radical Eye Software\n");
+ fprintf(f,
+ "Usage: afm2tfm foo[.afm] [-O] [-u] [-v|-V bar[.vpl]]\n");
+ fprintf(f,
+ " [-e expansion] [-s slant] [-c capheight]\n");
+ fprintf(f,
+ " [-p|-t|-T encodingfile] [foo[.tfm]]\n");
+}
+#endif
+
+#define CHECKARG3 if (argc < 4) { usage(stderr); exit(1); }
+
+static void
+openfiles(int argc, char **argv)
+{
+#ifndef KPATHSEA
+ register int lastext;
+#else
+ const char *q;
+#endif
+ register int i;
+ const char *p;
+ int arginc;
+
+ tfmout = (FILE *)NULL;
+
+ if (argc == 1) {
+ usage(stdout);
+ exit(0);
+ }
+
+#if defined(MSDOS) || defined(OS2) || defined(ATARIST)
+ /* Make VPL file identical to that created under Unix */
+ snprintf(titlebuf, sizeof(titlebuf), "afm2tfm %s", argv[1]);
+#else
+#ifdef VMCMS
+ /* Make VPL file identical to that created under Unix */
+ snprintf(titlebuf, sizeof(titlebuf), "afm2tfm %s", argv[1]);
+#else
+ snprintf(titlebuf, sizeof(titlebuf), "%s %s", argv[0], argv[1]);
+#endif
+#endif
+ if(strlen(argv[1]) >= MAXNAME - 4)
+ error("! too long input file name");
+ strcpy(inname, argv[1]);
+#ifdef KPATHSEA
+ if (find_suffix(inname) == NULL)
+ strcat(inname, ".afm");
+#else
+ lastext = -1;
+ for (i=0; inname[i]; i++)
+ if (inname[i] == '.')
+ lastext = i;
+ else if (inname[i] == '/' || inname[i] == ':')
+ lastext = -1;
+ if (lastext == -1) strcat(inname, ".afm");
+#endif
+ while (argc>2 && *argv[2]=='-') {
+ arginc = 2;
+ i = argv[2][1];
+ if (i == '/')
+ i = argv[2][2] - 32; /* /a ==> A for VMS */
+ switch (i) {
+case 'V': makevpl++;
+case 'v': makevpl++;
+ CHECKARG3
+ if(strlen(argv[3]) >= MAXNAME - 4)
+ error("! too long output VPL file name");
+ strcpy(outname, argv[3]);
+#ifdef KPATHSEA
+ if (find_suffix(outname) == NULL)
+ strcat(outname, ".vpl");
+#else
+ lastext = -1;
+ for (i=0; outname[i]; i++)
+ if (outname[i] == '.')
+ lastext = i;
+ else if (outname[i] == '/' || outname[i] == ':')
+ lastext = -1;
+ if (lastext == -1) strcat(outname, ".vpl");
+#endif
+#ifndef VMCMS
+#ifndef ATARIST
+ if ((vplout=fopen(outname, WRITEBIN))==NULL)
+#else
+ if ((vplout=fopen(outname, "w"))==NULL)
+#endif
+#else
+ if ((vplout=fopen(outname, "w"))==NULL)
+#endif
+ error("! can't open vpl output file");
+ break;
+case 'a':
+ noaccentheightadjust = 1;
+ arginc = 1;
+ break;
+case 'c':
+ CHECKARG3
+ if (sscanf(argv[3], "%f", &capheight)==0 || capheight<0.01)
+ error("! Bad small caps height");
+ break;
+case 'e': CHECKARG3
+ if (sscanf(argv[3], "%f", &efactor)==0 || efactor<0.01)
+ error("! Bad extension factor");
+ efactorparam = argv[3];
+ break;
+case 'O':
+ forceoctal = 1;
+ arginc = 1;
+ break;
+case 'P':
+case 'p':
+ CHECKARG3
+ inenname = argv[3];
+ break;
+case 's':
+ CHECKARG3
+ if (sscanf(argv[3], "%f", &slant)==0)
+ error("! Bad slant parameter");
+ slantparam = argv[3];
+ break;
+case 'T':
+ CHECKARG3
+ inenname = outenname = argv[3];
+ break;
+case 't':
+ CHECKARG3
+ outenname = argv[3];
+ break;
+case 'u':
+ pedantic = 1;
+ arginc = 1;
+ break;
+default: fprintf(stderr, "Unknown option %s %s ignored.\n", argv[2], argv[3]);
+ }
+ for (i=0; i<arginc; i++) {
+ snprintf(titlebuf + strlen(titlebuf),
+ sizeof(titlebuf) - strlen(titlebuf), " %s", argv[2]);
+ argv++;
+ argc--;
+ }
+ }
+
+#ifdef KPATHSEA
+ afmin = kpse_open_file (inname, kpse_afm_format);
+#else /* ! KPATHSEA */
+ if ((afmin=fopen(inname, "r"))==NULL)
+ error("! can't open afm input file");
+#endif /* KPATHSEA */
+ SET_BINARY(fileno(afmin));
+
+ if (argc>3 || (argc==3 && *argv[2]=='-')) {
+ error("! need at most two non-option arguments");
+ usage(stderr);
+ }
+
+ if (argc == 2) strcpy(outname, inname);
+ else strcpy(outname, argv[2]);
+
+#ifdef KPATHSEA
+ if ((p = find_suffix(outname)) != NULL)
+ outname[p-outname-1] = 0;
+ strcat(outname, ".tfm");
+ if (tfmout == NULL && (tfmout=fopen(outname, WRITEBIN))==NULL)
+ error("! can't open tfm output file");
+/*
+ * Now we strip off any directory information, so we only use the
+ * base name in the vf file.
+ */
+ if (p == NULL)
+ p = find_suffix(outname);
+ outname[p-outname-1] = 0;
+
+ q = xbasename(outname);
+ strcpy(tmpstr, q); /* be careful, q and outname are overlapping */
+ strcpy(outname, tmpstr);
+#else
+ lastext = -1;
+ for (i=0; outname[i]; i++)
+ if (outname[i] == '.')
+ lastext = i;
+ else if (outname[i] == '/' || outname[i] == ':' || outname[i] == '\\')
+ lastext = -1;
+ if (argc == 2) {
+ outname[lastext] = 0;
+ lastext = -1;
+ }
+ if (lastext == -1) {
+ lastext = strlen(outname);
+ strcat(outname, ".tfm");
+ }
+ if (tfmout == NULL && (tfmout=fopen(outname, WRITEBIN))==NULL)
+ error("! can't open tfm output file");
+ outname[lastext] = 0;
+/*
+ * Now we strip off any directory information, so we only use the
+ * base name in the vf file. We accept any of /, :, or \ as directory
+ * delimiters, so none of these are available for use inside the
+ * base name; this shouldn't be a problem.
+ */
+ for (i=0, lastext=0; outname[i]; i++)
+ if (outname[i] == '/' || outname[i] == ':' || outname[i] == '\\')
+ lastext = i + 1;
+ if (lastext)
+ strcpy(outname, outname + lastext);
+#endif
+}
+/*
+ * Some routines to remove kerns that match certain patterns.
+ */
+static struct kern *
+rmkernmatch(struct kern *k, char *s)
+{
+ struct kern *nkern;
+
+ while (k && strcmp(k->succ, s)==0)
+ k = k->next;
+ if (k) {
+ for (nkern = k; nkern; nkern = nkern->next)
+ while (nkern->next && strcmp(nkern->next->succ, s)==0)
+ nkern->next = nkern->next->next;
+ }
+ return k;
+}
+/*
+ * Recursive to one level.
+ */
+static void
+rmkern(char *s1, char *s2, struct adobeinfo *ai)
+{
+ if (ai == 0) {
+ if (strcmp(s1, "*") == 0) {
+ for (ai=adobechars; ai; ai = ai->next)
+ rmkern(s1, s2, ai);
+ return;
+ } else {
+ ai = findadobe(s1);
+ if (ai == 0)
+ return;
+ }
+ }
+ if (strcmp(s2, "*")==0)
+ ai->kerns = 0; /* drop them on the floor */
+ else
+ ai->kerns = rmkernmatch(ai->kerns, s2);
+}
+
+/* Make the kerning for character S1 equivalent to that for S2.
+ If either S1 or S2 do not exist, do nothing.
+ If S1 already has kerning, do nothing. */
+static void
+addkern(char *s1, char *s2)
+{
+ struct adobeinfo *ai1 = findadobe (s1);
+ struct adobeinfo *ai2 = findadobe (s2);
+ if (ai1 && ai2 && !ai1->kerns) {
+ /* Put the new one at the head of the list, since order is immaterial. */
+ struct adobeptr *ap
+ = (struct adobeptr *) mymalloc((unsigned long)sizeof(struct adobeptr));
+ ap->next = ai2->kern_equivs;
+ ap->ch = ai1;
+ ai2->kern_equivs = ap;
+ }
+}
+int sawligkern;
+/*
+ * Reads a ligkern line, if this is one. Assumes the first character
+ * passed is `%'.
+ */
+static void
+checkligkern(char *s)
+{
+ char *oparam = param;
+ char *mlist[5];
+ int n;
+
+ s++;
+ while (*s && *s <= ' ')
+ s++;
+ if (strncmp(s, "LIGKERN", 7)==0) {
+ sawligkern = 1;
+ s += 7;
+ while (*s && *s <= ' ')
+ s++;
+ param = s;
+ while (*param) {
+ for (n=0; n<5;) {
+ if (*param == 0)
+ break;
+ mlist[n] = paramstring();
+ if (strcmp(mlist[n], ";") == 0)
+ break;
+ n++;
+ }
+ if (n > 4)
+ error("! too many parameters in lig kern data");
+ if (n < 3)
+ error("! too few parameters in lig kern data");
+ if (n == 3 && strcmp(mlist[1], "{}") == 0) { /* rmkern command */
+ rmkern(mlist[0], mlist[2], (struct adobeinfo *)0);
+ } else if (n == 3 && strcmp(mlist[1], "<>") == 0) { /* addkern */
+ addkern(mlist[0], mlist[2]);
+ } else if (n == 3 && strcmp(mlist[0], "||") == 0 &&
+ strcmp(mlist[1], "=") == 0) { /* bc command */
+ struct adobeinfo *ai = findadobe("||");
+
+ if (boundarychar != -1)
+ error("! multiple boundary character commands?");
+ if (sscanf(mlist[2], "%d", &n) != 1)
+ error("! expected number assignment for boundary char");
+ if (n < 0 || n > 255)
+ error("! boundary character number must be 0..255");
+ boundarychar = n;
+ if (ai == 0)
+ error("! internal error: boundary char");
+ ai->texnum = n; /* prime the pump, so to speak, for lig/kerns */
+ } else if (n == 4) {
+ int op = -1;
+ struct adobeinfo *ai;
+
+ for (n=0; encligops[n]; n++)
+ if (strcmp(mlist[2], encligops[n])==0) {
+ op = n;
+ break;
+ }
+ if (op < 0)
+ error("! bad ligature op specified");
+ if (0 != (ai = findadobe(mlist[0]))) {
+ struct lig *lig;
+
+ if (findadobe(mlist[2])) /* remove coincident kerns */
+ rmkern(mlist[0], mlist[1], ai);
+ if (strcmp(mlist[3], "||") == 0)
+ error("! you can't lig to the boundary character!");
+ if (! fixedpitch) { /* fixed pitch fonts get *0* ligs */
+ for (lig=ai->ligs; lig; lig = lig->next)
+ if (strcmp(lig->succ, mlist[1]) == 0)
+ break; /* we'll re-use this structure */
+ if (lig == 0) {
+ lig = newlig();
+ lig->succ = newstring(mlist[1]);
+ lig->next = ai->ligs;
+ ai->ligs = lig;
+ }
+ lig->sub = newstring(mlist[3]);
+ lig->op = op;
+ if (strcmp(mlist[1], "||")==0) {
+ lig->boundleft = 1;
+ if (strcmp(mlist[0], "||")==0)
+ error("! you can't lig boundarychar boundarychar!");
+ } else
+ lig->boundleft = 0;
+ }
+ }
+ } else
+ error("! bad form in LIGKERN command");
+ }
+ }
+ param = oparam;
+}
+/*
+ * Here we get a token from the AFM file. We parse just as much PostScript
+ * as we expect to find in an encoding file. We allow commented lines and
+ * names like 0, .notdef, _foo_. We do not allow //abc.
+ */
+char smbuffer[100]; /* for tokens */
+static char *
+gettoken(void) {
+ char *p, *q;
+
+ while (1) {
+ while (param == 0 || *param == 0) {
+ if (texlive_getline() == 0)
+ error("! premature end in encoding file");
+ for (p=buffer; *p; p++)
+ if (*p == '%') {
+ if (ignoreligkern == 0)
+ checkligkern(p);
+ *p = 0;
+ break;
+ }
+ }
+ while (*param && *param <= ' ')
+ param++;
+ if (*param) {
+ if (*param == '[' || *param == ']' ||
+ *param == '{' || *param == '}') {
+ smbuffer[0] = *param++;
+ smbuffer[1] = 0;
+ return smbuffer;
+ } else if (*param == '/' || *param == '-' || *param == '_' ||
+ *param == '.' ||
+ ('0' <= *param && *param <= '9') ||
+ ('a' <= *param && *param <= 'z') ||
+ ('A' <= *param && *param <= 'Z')) {
+ smbuffer[0] = *param;
+ for (p=param+1, q=smbuffer+1;
+ *p == '-' || *p == '_' || *p == '.' ||
+ ('0' <= *p && *p <= '9') ||
+ ('a' <= *p && *p <= 'z') ||
+ ('A' <= *p && *p <= 'Z'); p++, q++)
+ *q = *p;
+ *q = 0;
+ param = p;
+ return smbuffer;
+ }
+ }
+ }
+}
+static void
+getligkerndefaults(void) {
+ int i;
+
+ for (i=0; staticligkern[i]; i++) {
+ strcpy(buffer, staticligkern[i]);
+ strcpy(obuffer, staticligkern[i]);
+ param = buffer;
+ checkligkern(buffer);
+ }
+}
+/*
+ * This routine reads in an encoding file, given the name. It returns
+ * the final total structure. It performs a number of consistency checks.
+ */
+static struct encoding *
+readencoding(char *enc)
+{
+ char *p;
+ int i;
+ struct encoding *e =
+ (struct encoding *)mymalloc((unsigned long)sizeof(struct encoding));
+
+ sawligkern = 0;
+ if (afmin)
+ error("! oops; internal afmin error");
+ if (enc) {
+#ifdef KPATHSEA
+ afmin = kpse_open_file(enc, kpse_enc_format);
+#else
+ afmin = fopen(enc, "r");
+#endif
+ SET_BINARY(fileno(afmin));
+ param = 0;
+ if (afmin == 0)
+#ifdef KPATHSEA
+ FATAL1 ("couldn't open encoding file `%s'", enc);
+#else
+ error("! couldn't open that encoding file");
+#endif
+ p = gettoken();
+ if (*p != '/' || p[1] == 0)
+ error("! first token in encoding must be literal encoding name");
+ e->name = newstring(p+1);
+ p = gettoken();
+ if (strcmp(p, "["))
+ error("! second token in encoding must be mark ([) token");
+ for (i=0; i<256; i++) {
+ p = gettoken();
+ if (*p != '/' || p[1] == 0)
+ error("! tokens 3 to 257 in encoding must be literal names");
+ e->vec[i] = newstring(p+1);
+ }
+ p = gettoken();
+ if (strcmp(p, "]"))
+ error("! token 258 in encoding must be make-array (])");
+ while (texlive_getline()) {
+ for (p=buffer; *p; p++)
+ if (*p == '%') {
+ if (ignoreligkern == 0)
+ checkligkern(p);
+ *p = 0;
+ break;
+ }
+ }
+ fclose(afmin);
+ afmin = 0;
+ if (ignoreligkern == 0 && sawligkern == 0)
+ getligkerndefaults();
+ } else {
+ e = &staticencoding;
+ getligkerndefaults();
+ }
+ param = 0;
+ return e;
+}
+/*
+ * This routine prints out the line that needs to be added to psfonts.map.
+ */
+static void
+conspsfonts(void) {
+#ifndef VMCMS
+ printf("%s %s", outname,
+ fontname);
+#else /* VM/CMS: fontname is ascii, so we use ebfontname */
+ printf("%s %s", outname,
+ ebfontname);
+#endif
+ if (slantparam || efactorparam || inenname) {
+ printf(" \"");
+ if (slantparam)
+ printf(" %s SlantFont", slantparam);
+ if (efactorparam)
+ printf(" %s ExtendFont", efactorparam);
+ if (inenname)
+ printf(" %s ReEncodeFont", inencoding->name);
+ printf(" \"");
+ if (inenname)
+ printf(" <%s", inenname);
+ }
+ printf("\n");
+}
+#ifndef VMS
+int
+#endif
+main(int argc, char **argv)
+{
+ int i;
+
+#ifdef KPATHSEA
+ kpse_set_program_name (argv[0], "afm2tfm");
+
+ if (argc == 1) {
+ fputs ("afm2tfm: Need at least one file argument.\n", stderr);
+ fputs ("Try `afm2tfm --help' for more information.\n", stderr);
+ exit(1);
+ }
+ if (argc == 2) {
+ if (strcmp (argv[1], "--help") == 0) {
+ usage (stdout);
+ exit (0);
+ } else if (strcmp (argv[1], "--version") == 0) {
+ version (stdout);
+ exit (0);
+ }
+ }
+#endif /* KPATHSEA */
+ for (i=0; i<256; i++)
+ nexttex[i] = -1; /* encoding chains have length 0 */
+ tfmdata = (long *)mymalloc((unsigned long)40000L);
+ openfiles(argc, argv);
+ readadobe();
+ if (fontspace == 0) {
+ struct adobeinfo *ai;
+
+ if (0 != (ai = findadobe("space")))
+ fontspace = ai->width;
+ else if (adobeptrs[32])
+ fontspace = adobeptrs[32]->width;
+ else
+ fontspace = transform(500, 0);
+ }
+ handlereencoding();
+ buildtfm();
+ writetfm();
+ conspsfonts();
+ if (makevpl) {
+ assignchars();
+ if (makevpl>1) upmap();
+ writevpl();
+ }
+ return 0;
+ /*NOTREACHED*/
+}
+
diff --git a/Build/source/texk/dvipsk/atari/makefile.atari b/Build/source/texk/dvipsk/atari/makefile.atari
new file mode 100644
index 00000000000..c057b3d316b
--- /dev/null
+++ b/Build/source/texk/dvipsk/atari/makefile.atari
@@ -0,0 +1,78 @@
+#
+# Makefile for dvips. Edit this first part of the file.
+#
+# First, the things that absolutely must be edited for your system.
+# Please, don't forget to edit MakeTeXPK in the same way!
+
+CC = d:\tcc\tcc.ttp
+LD = d:\tcc\tlink.ttp
+
+# change -DDEFRES=300 or whatever is required
+# if the default resolution is not 300 dpi,
+# add -DDEBUG to turn on debugging capability
+# add -DTPIC for tpic support
+# add -DFONTLIB to search font libraries
+# add -DSEARCH_SUBDIRECTORIES to search the FONTSUBDIRPATH.
+# add -DHAVE_GETCWD if you have getcwd (relevant only for subdir searching)
+# add -DIBM6000 for compiling on IBM 6000 systems
+# add -DCREATIONDATE if your system has a working time() and you want dated files
+# (for VM/CMS, see the MKDVIPS.EXEC file in the vmcms subdirectory).
+#
+# If you define FONTLIB, make sure to also give definitions to
+# FLIPATH and FLINAME.
+#
+# If your compiler doesn't like void*, then add
+# -DVOID=char
+#
+DEFS = -DDEFRES=300 -DCREATIONDATE
+
+# either use
+# OPT = -O -funsigned-char
+# or
+OPT = -DATARIST -K -P -R -W-pro -Id:\tcc\h -Id:\tcc\h\x
+
+# If you are compiling dvips for suid or other privileges, you will
+# definitely want to define the following symbol; else don't.
+# SECURE = -DSECURE
+
+# If you want EMTEX specials, define the following.
+EMTEX = # -DEMTEX
+
+# for SYSV (and friends which use <string.h> instead of <strings.h>)
+# define the c-compiler flag
+# add -D_POSIX_SOURCE if you are POSIX (also define SYSV) (only relevant
+# for subdir searching)
+# SYS = -DSYSV
+
+CFLAGS = $(DEFS) $(OPT) $(SYS) $(SECURE) $(EMTEX) $(DEFPFMT)
+LDFLAGS =
+
+SRC = dospecial.c dviinput.c fontdef.c loadfont.c dvips.c tfmload.c \
+ download.c prescan.c scanpage.c skippage.c output.c scalewidth.c \
+ dosection.c dopage.c resident.c search.c unpack.c drawps.c \
+ header.c makefont.c repack.c virtualfont.c dpicheck.c finclude.c \
+ pprescan.c papersiz.c flib.c color.c bbox.c emspecial.c
+
+OBJ = dospecial.o dviinput.o fontdef.o loadfont.o dvips.o tfmload.o \
+ download.o prescan.o scanpage.o skippage.o output.o scalewidth.o \
+ dosection.o dopage.o resident.o search.o unpack.o drawps.o \
+ header.o makefont.o repack.o virtualfont.o dpicheck.o finclude.o \
+ pprescan.o papersiz.o flib.o color.o bbox.o emspecial.o
+
+all : afm2tfm.ttp dvips.ttp tex.pro texps.pro texc.pro special.pro \
+ finclude.pro color.pro crop.pro
+
+.c.o:
+ $(CC) $(CFLAGS) $<
+
+dvips.ttp : $(OBJ)
+ ${LD} -O=dvips.ttp -C=dvips.lnk
+
+afm2tfm.ttp : afm2tfm.o
+ $(LD) $(LDFLAGS) -O=afm2tfm.ttp $(LIBS) afm2tfm.o $(FLIBS)
+
+$(OBJ) : dvips.h debug.h
+flib.o resident.o dvips.o loadfont.o tfmload.o : paths.h
+
+squeeze.ttp : squeeze.o
+ $(LD) $(LDFLAGS) -O=squeeze.ttp $(LIBS) squeeze.o $(FLIBS)
diff --git a/Build/source/texk/dvipsk/bbox.c b/Build/source/texk/dvipsk/bbox.c
new file mode 100644
index 00000000000..b7f2f7e8728
--- /dev/null
+++ b/Build/source/texk/dvipsk/bbox.c
@@ -0,0 +1,502 @@
+/*
+ * Calculates the bounding box for a one-page .dvi file.
+ * Based on a lot of other dvips stuff. Requires a total re-scan
+ * of the page.
+ *
+ * If you request an EPSF file and specify -a, you may end up
+ * processing a single page four times!
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#include <math.h>
+/*
+ * The external declarations:
+ */
+#include "protos_add.h"
+
+typedef struct {
+ integer llx, lly, urx, ury;
+} bbchardesctype;
+typedef struct {
+ bbchardesctype *bbchardesc;
+} bbfontdesctype;
+typedef struct bbtft {
+ integer fontnum;
+ bbfontdesctype *desc;
+ struct bbtft *next;
+} bbfontmaptype;
+
+static bbfontmaptype *bbffont;
+
+static void
+bbtfmload(register fontdesctype *curfnt)
+{
+ register integer i, j;
+ register integer li, cd = 0;
+ integer scaledsize;
+ integer id, nt = 0;
+ integer nw, nh, nd, ns, hd;
+ integer bc, ec;
+ integer nco = 0, ncw = 0, npc = 0, no_repeats = 0;
+ halfword *index = NULL;
+ halfword *chartype = NULL;
+ integer *scaled;
+ integer *chardat;
+ int font_level;
+ integer pretend_no_chars;
+ integer slant = 0;
+ bbchardesctype *cc;
+ register bbfontdesctype *bbcurfnt =
+ (bbfontdesctype *)mymalloc(sizeof(bbfontdesctype));
+
+ bbffont->desc = bbcurfnt;
+ tfmopen(curfnt);
+/*
+ * Next, we read the font data from the tfm file, and store it in
+ * our own arrays.
+ */
+ curfnt->dir = 0;
+ id = tfm16();
+ if (id != 0) {
+ font_level = -1;
+ if (id == 9 || id == 11) {
+ if (noptex) badtfm("length");
+ if (id == 9) curfnt->dir = id;
+ nt = tfm16(); li = tfm16();
+ }
+ hd = tfm16();
+ bc = tfm16(); ec = tfm16();
+ nw = tfm16(); nh = tfm16(); nd = tfm16();
+ ns = tfm16();
+ ns += tfm16();
+ ns += tfm16();
+ ns += tfm16();
+ li = tfm16();
+ if ((hd<2 || bc>ec+1 || ec>255 || nw>256 || nh>16 || nd>16) &&
+ id != 9 && id != 11)
+ badtfm("header");
+ } else { /* In an .ofm file */
+ if (noomega) badtfm("length");
+ font_level = tfm16();
+ li = tfm32();
+ hd = tfm32();
+ bc = tfm32(); ec = tfm32();
+ nw = tfm32(); nh = tfm32(); nd = tfm32();
+ ns = tfm32();
+ ns += tfm32();
+ ns += tfm32();
+ ns += tfm32();
+ li = tfm32();
+ li = tfm32();
+ if (font_level>1 || hd<2 || bc<0 || ec<0 || nw<2 || nh<1 || nd<1 || ns<1
+ || bc>ec+1 || ec>65535 || nw>65536 || nh>256 || nd>256)
+ badtfm("header");
+ if (font_level==1) {
+ nco = tfm32();
+ ncw = tfm32();
+ npc = tfm32();
+ for (i=0; i<12; i++) li=tfm32();
+ }
+ }
+ li = tfm32();
+ check_checksum (li, curfnt->checksum, curfnt->name);
+
+ li = tfm32();
+ pretend_no_chars=ec+1;
+ if (id == 9 || id == 11) {
+ chardat = (integer *) xmalloc(256*sizeof(integer));
+ bbcurfnt->bbchardesc = (bbchardesctype *)
+ xmalloc((MAX_2BYTES_CODE+1)*sizeof(bbchardesctype));
+ for (i=2; i<hd; i++)
+ li = tfm32();
+ index = (halfword *)xmalloc(nt * sizeof(halfword));
+ chartype = (halfword *)xmalloc(nt * sizeof(halfword));
+ li = tfm16();
+ li = tfm16();
+ for (i=1; i<nt; i++) {
+ li = tfm16();
+ index[i] = li;
+ chartype[i] = tfm16();
+ }
+ for (i=0; i<256; i++)
+ chardat[i] = -1;
+ } else {
+ if (pretend_no_chars<256) pretend_no_chars=256;
+ bbcurfnt->bbchardesc = (bbchardesctype *)
+ xmalloc(pretend_no_chars*sizeof(bbchardesctype));
+ for (i=2; i<((font_level==1)?nco-29:hd); i++)
+ li = tfm32();
+ chardat = (integer *) xmalloc(pretend_no_chars*sizeof(integer));
+ for (i=0; i<pretend_no_chars; i++)
+ chardat[i] = -1;
+ }
+ for (i=bc; i<=ec; i++) {
+ if (id == 9 || id == 11) {
+ chardat[i] = tfm16();
+ li = tfm16();
+ } else {
+ if (no_repeats>0) {
+ no_repeats--;
+ } else if (font_level>=0) {
+ cd = tfm32();
+ li = tfm32();
+ if (font_level==1) {
+ no_repeats = tfm16();
+ for (j=0; j<(npc|1); j++) tfm16();
+ ncw -= 3 + npc/2;
+ }
+ } else {
+ cd = tfm16();
+ li = tfm16();
+ }
+ if (cd) chardat[i] = cd;
+ }
+ }
+ if (font_level==1&&ncw!=0) {
+ char *msg = concat ("Table size mismatch in ", curfnt->name);
+ error(msg);
+ free(msg);
+ }
+ scaledsize = curfnt->scaledsize;
+ if (id == 9 || id == 11) {
+ scaled = (integer *) xmalloc(300*sizeof(integer));
+ for (i=0; i<nw + nh + nd; i++)
+ scaled[i] = scalewidth(tfm32(), scaledsize);
+ } else {
+ scaled = (integer *) xmalloc((nh + nd)*sizeof(integer));
+ for (i=0; i<nw; i++)
+ tfm32();
+ for (i=0; i<nh + nd; i++)
+ scaled[i] = scalewidth(tfm32(), scaledsize);
+ }
+ for (i=0; i<ns; i++)
+ tfm32();
+ slant = tfm32();
+ fclose(tfmfile);
+
+ if (id == 9 || id == 11) {
+ for (i=0; i<MAX_2BYTES_CODE+1; i++) {
+ cc = &(bbcurfnt->bbchardesc[i]);
+ if (chardat[0] != -1) {
+ cc->ury = scaled[((chardat[0] >> 4) & 15) + nw];
+ cc->lly = - scaled[(chardat[0] & 15) + nw + nh];
+ cc->llx = 0;
+ cc->urx = curfnt->chardesc[0].TFMwidth;
+ } else {
+ cc->llx = cc->lly = cc->urx = cc->ury = 0;
+ }
+ }
+ for (i=1; i<nt; i++) {
+ cc = &(bbcurfnt->bbchardesc[index[i]]);
+ if (chardat[chartype[i]] != -1) {
+ cc->ury = scaled[((chardat[chartype[i]] >> 4) & 15) + nw];
+ cc->lly = - scaled[(chardat[chartype[i]] & 15) + nw + nh];
+ cc->llx = 0;
+ cc->urx = curfnt->chardesc[index[i]].TFMwidth;
+ } else {
+ cc->llx = cc->lly = cc->urx = cc->ury = 0;
+ }
+ }
+ free(index);
+ free(chartype);
+ } else {
+ for (i=0; i<pretend_no_chars; i++) {
+ cc = &(bbcurfnt->bbchardesc[i]);
+ if (chardat[i] != -1) {
+ halfword iw;
+ int ih, id;
+ if (font_level>=0) {
+ iw = chardat[i] >> 16;
+ ih = (chardat[i] >> 8) & 255;
+ id = chardat[i] & 255;
+ } else {
+ iw = chardat[i] >> 8;
+ ih = (chardat[i] >> 4) & 15;
+ id = chardat[i] & 15;
+ }
+ if (iw>=nw || ih>=nh || id>=nd) badtfm("char info");
+ cc->ury = scaled[ih];
+ cc->lly = - scaled[nh + id];
+ cc->llx = 0;
+ cc->urx = curfnt->chardesc[i].TFMwidth;
+ } else {
+ cc->llx = cc->lly = cc->urx = cc->ury = 0;
+ }
+ }
+ }
+ if (slant) {
+ if (id == 9 || id == 11) {
+ for (i=0; i<MAX_2BYTES_CODE+1; i++) {
+ cc = &(bbcurfnt->bbchardesc[i]);
+ li = scalewidth(cc->lly, slant);
+ if (slant > 0) cc->llx += li;
+ else cc->urx += li;
+ li = scalewidth(cc->ury, slant);
+ if (slant > 0) cc->urx += li;
+ else cc->llx += li;
+ }
+ } else {
+ for (i=0; i<pretend_no_chars; i++) {
+ cc = &(bbcurfnt->bbchardesc[i]);
+ li = scalewidth(cc->lly, slant);
+ if (slant > 0) cc->llx += li;
+ else cc->urx += li;
+ li = scalewidth(cc->ury, slant);
+ if (slant > 0) cc->urx += li;
+ else cc->llx += li;
+ }
+ }
+ }
+ free(chardat);
+ free(scaled);
+}
+static integer llx, lly, urx, ury;
+static void
+bbspecial(integer h, integer v, integer dir, int nbytes)
+{
+ float *r = bbdospecial(nbytes);
+ if (r) {
+ /* convert from magnified PostScript units back to scaled points */
+ real conv = 72.0 * (real)num / (real)den * (real)mag / 254000000.0;
+ if (!dir) {
+ if (llx > h + r[0] / conv)
+ llx = (integer) (h + r[0] / conv);
+ if (lly > v - r[3] / conv)
+ lly = (integer) (v - r[3] / conv);
+ if (urx < h + r[2] / conv)
+ urx = (integer) (h + r[2] / conv);
+ if (ury < v - r[1] / conv)
+ ury = (integer) (v - r[1] / conv);
+ } else {
+ if (llx > h + r[1] / conv)
+ llx = (integer)(h + r[1] / conv);
+ if (lly > v + r[2] / conv)
+ lly = (integer)(v + r[2] / conv);
+ if (urx < h + r[3] / conv)
+ urx = (integer)(h + r[3] / conv);
+ if (ury < v + r[0] / conv)
+ ury = (integer)(v + r[0] / conv);
+ }
+ }
+}
+static void
+bbdopage(void)
+{
+ register shalfword cmd;
+ register bbchardesctype *bcd;
+ register chardesctype *cd;
+ register integer h;
+ register fontmaptype *cfnt;
+ bbfontmaptype *bbcfnt;
+ integer fnt;
+ integer mychar;
+ int charmove;
+ struct dvistack *sp = stack;
+ integer v, w, x, y, z, dir;
+ register fontdesctype *curfnt = 0;
+ register bbfontdesctype *bbcurfnt = 0;
+
+ w = x = y = z = dir = 0;
+ h = 0; v = 0;
+ llx = lly = 1000000000;
+ urx = ury = -1000000000;
+ charmove = 0;
+ while (1) {
+ switch (cmd=dvibyte()) {
+case 138: break;
+case 135: /* put3 */
+ if (noptex) error("! synch");
+ mychar = dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ charmove = 0;
+ goto dochar;
+case 130: /* set3 */
+ if (noptex) error("! synch");
+ mychar = dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ charmove = 1;
+ goto dochar;
+case 134: /* put2 */
+ if (noomega && noptex) error("! synch");
+ mychar = dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ charmove = 0;
+ goto dochar;
+case 129: /* set2 */
+ if (noomega && noptex) error("! synch");
+ mychar = dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ charmove = 1;
+ goto dochar;
+case 133: /* put1 */
+ mychar = dvibyte();
+ charmove = 0;
+ goto dochar;
+case 128: cmd = dvibyte(); /* set1 command drops through to setchar */
+default: /* these are commands 0 (setchar0) thru 127 (setchar127) */
+ mychar = cmd;
+ charmove = 1;
+dochar:
+ cd = &(curfnt->chardesc[mychar]);
+ bcd = &(bbcurfnt->bbchardesc[CD_IDX(mychar)]);
+ if (!dir) {
+ if (h + bcd->llx < llx) llx = h + bcd->llx;
+ if (h + bcd->urx > urx) urx = h + bcd->urx;
+ if (v - bcd->ury < lly) lly = v - bcd->ury;
+ if (v - bcd->lly > ury) ury = v - bcd->lly;
+ } else {
+ if (h + bcd->ury > urx) urx = h + bcd->ury;
+ if (h + bcd->lly < llx) llx = h + bcd->lly;
+ if (v + bcd->llx < lly) lly = v + bcd->llx;
+ if (v + bcd->urx > ury) ury = v + bcd->urx;
+ }
+ if (charmove) {
+ if (!dir)
+ h += cd->TFMwidth;
+ else
+ v += cd->TFMwidth;
+ }
+ break;
+case 255: /* pTeX's dir or undefined */
+ if (!noptex) {
+ dir = dvibyte();
+ break;
+ }
+case 131: case 136: case 139: /* set4, put4, bop */
+case 247: case 248: case 249: /* pre, post, post_post */
+case 250: case 251: case 252: case 253: case 254: /* undefined */
+ error("! synch");
+case 132: case 137: /* rules */
+ { integer ry, rx;
+ ry = signedquad(); rx = signedquad();
+ if (rx>0 && ry>0) {
+ if (!dir) {
+ if (h < llx) llx = h;
+ if (v - ry < lly) lly = v - ry;
+ if (h + rx > urx) urx = h + rx;
+ if (v > ury) ury = v;
+ } else {
+ if (h < llx) llx = h;
+ if (v + rx < lly) lly = v + rx;
+ if (h + ry > urx) urx = h + ry;
+ if (v > ury) ury = v;
+ }
+ } else
+ rx = 0;
+ if (cmd != 137) {
+ if (!dir)
+ h += rx;
+ else
+ v += rx;
+ }
+ break;
+ }
+case 141: /* push */
+ sp->h = h; sp->v = v;
+ sp->w = w; sp->x = x; sp->y = y; sp->z = z; sp->dir = dir;
+ if (++sp >= &stack[STACKSIZE]) error("! Out of stack space");
+ break;
+case 140: /* eop or end of virtual character */
+ return;
+case 142: /* pop */
+ if (--sp < stack) error("! More pops than pushes");
+ h = sp->h; v = sp->v;
+ w = sp->w; x = sp->x; y = sp->y; z = sp->z; dir = sp->dir;
+ break;
+case 143: if (!dir) h += signedbyte(); else v += signedbyte(); break;
+case 144: if (!dir) h += signedpair(); else v += signedpair(); break;
+case 145: if (!dir) h += signedtrio(); else v += signedtrio(); break;
+case 146: if (!dir) h += signedquad(); else v += signedquad(); break;
+case 147: if (!dir) h += w; else v += w; break;
+case 148: if (!dir) h += (w = signedbyte()); else v += (w = signedbyte()); break;
+case 149: if (!dir) h += (w = signedpair()); else v += (w = signedpair()); break;
+case 150: if (!dir) h += (w = signedtrio()); else v += (w = signedtrio()); break;
+case 151: if (!dir) h += (w = signedquad()); else v += (w = signedquad()); break;
+case 152: if (!dir) h += x; else v += x; break;
+case 153: if (!dir) h += (x = signedbyte()); else v += (x = signedbyte()); break;
+case 154: if (!dir) h += (x = signedpair()); else v += (x = signedpair()); break;
+case 155: if (!dir) h += (x = signedtrio()); else v += (x = signedtrio()); break;
+case 156: if (!dir) h += (x = signedquad()); else v += (x = signedquad()); break;
+case 157: if (!dir) v += signedbyte(); else h -= signedbyte(); break;
+case 158: if (!dir) v += signedpair(); else h -= signedpair(); break;
+case 159: if (!dir) v += signedtrio(); else h -= signedtrio(); break;
+case 160: if (!dir) v += signedquad(); else h -= signedquad(); break;
+case 161: if (!dir) v += y; else h -= y; break;
+case 162: if (!dir) v += (y = signedbyte()); else h -= (y = signedbyte()); break;
+case 163: if (!dir) v += (y = signedpair()); else h -= (y = signedpair()); break;
+case 164: if (!dir) v += (y = signedtrio()); else h -= (y = signedtrio()); break;
+case 165: if (!dir) v += (y = signedquad()); else h -= (y = signedquad()); break;
+case 166: if (!dir) v += z; else h += z; break;
+case 167: if (!dir) v += (z = signedbyte()); else h -= (z = signedbyte()); break;
+case 168: if (!dir) v += (z = signedpair()); else h -= (z = signedpair()); break;
+case 169: if (!dir) v += (z = signedtrio()); else h -= (z = signedtrio()); break;
+case 170: if (!dir) v += (z = signedquad()); else h -= (z = signedquad()); break;
+case 171: case 172: case 173: case 174: case 175: case 176: case 177:
+case 178: case 179: case 180: case 181: case 182: case 183: case 184:
+case 185: case 186: case 187: case 188: case 189: case 190: case 191:
+case 192: case 193: case 194: case 195: case 196: case 197: case 198:
+case 199: case 200: case 201: case 202: case 203: case 204: case 205:
+case 206: case 207: case 208: case 209: case 210: case 211: case 212:
+case 213: case 214: case 215: case 216: case 217: case 218: case 219:
+case 220: case 221: case 222: case 223: case 224: case 225: case 226:
+case 227: case 228: case 229: case 230: case 231: case 232: case 233:
+case 234: case 235: case 236: case 237: case 238: /* font selection commands */
+ if (cmd < 235) fnt = cmd - 171; /* fntnum0 thru fntnum63 */
+ else {
+ fnt = dvibyte();
+ while (cmd-- > 235)
+ fnt = (fnt << 8) + dvibyte();
+ }
+ for (cfnt=ffont; cfnt; cfnt = cfnt->next)
+ if (cfnt->fontnum == fnt) break;
+ curfnt = cfnt->desc;
+ for (bbcfnt=bbffont; bbcfnt; bbcfnt = bbcfnt->next)
+ if (bbcfnt->fontnum == fnt) goto fontfound;
+ bbcfnt = (bbfontmaptype *)mymalloc(sizeof(bbfontmaptype));
+ bbcfnt->fontnum = fnt;
+ bbcfnt->next = bbffont;
+ bbffont = bbcfnt;
+ bbtfmload(curfnt);
+fontfound: bbcurfnt = bbcfnt->desc;
+ break;
+case 243: case 244: case 245: case 246: /*fntdef1 */
+ skipover(cmd - 230);
+ skipover(dvibyte() + dvibyte());
+ break;
+case 239: bbspecial(h, v, dir, (int)dvibyte()); break;
+case 240: bbspecial(h, v, dir, (int)twobytes()); break;
+case 241: bbspecial(h, v, dir, (int)threebytes()); break;
+case 242: bbspecial(h, v, dir, (int)signedquad()); break;
+ }
+ }
+}
+void
+findbb(integer bop)
+{
+ integer curpos = ftell(dvifile);
+ real conv = 72.0 * (real)num / (real)den * (real)mag / 254000000.0;
+ real off = 72.0 / conv;
+ real margin = 1.0 / conv;
+ real vsize = 792.0 / conv;
+ real hadj = -72.0 * hoff / 4736286.72;
+ real vadj = 72.0 * voff / 4736286.72;
+
+ fseek(dvifile, bop, 0);
+ bbdopage();
+ fseek(dvifile, curpos, 0);
+ lly = (int) (vsize - 2 * off - lly);
+ ury = (int) (vsize - 2 * off - ury);
+ llx = (int)floor((llx + off - margin) * conv - hadj + 0.5);
+ lly = (int)floor((lly + off + margin) * conv - vadj + 0.5);
+ urx = (int)floor((urx + off + margin) * conv - hadj + 0.5);
+ ury = (int)floor((ury + off - margin) * conv - vadj + 0.5);
+/* no marks on the page? */
+ if (llx >= urx || lly <= ury)
+ llx = lly = urx = ury = 72;
+#ifdef SHORTINT
+ sprintf(nextstring, "%ld %ld %ld %ld", llx, ury, urx, lly);
+#else
+ sprintf(nextstring, "%d %d %d %d", llx, ury, urx, lly);
+#endif
+}
diff --git a/Build/source/texk/dvipsk/beginfontk1.test b/Build/source/texk/dvipsk/beginfontk1.test
new file mode 100755
index 00000000000..8f9d92349d2
--- /dev/null
+++ b/Build/source/texk/dvipsk/beginfontk1.test
@@ -0,0 +1,11 @@
+#! /bin/sh -vx
+# $Id$
+# Public domain.
+# ensure -K1 does not remove newline after %%BeginFont line.
+# Report from T S, 1 Jan 2010 16:32:16.
+
+tst=beginfontk1
+./dvips -K1 $srcdir/testdata/$tst.dvi -o || exit 1
+grep '^%%BeginFont: /MC1_ArialBold$' $tst.ps || exit 1
+
+exit 0
diff --git a/Build/source/texk/dvipsk/bitmapenc.c b/Build/source/texk/dvipsk/bitmapenc.c
new file mode 100644
index 00000000000..ef2d868bc9c
--- /dev/null
+++ b/Build/source/texk/dvipsk/bitmapenc.c
@@ -0,0 +1,690 @@
+/*
+ * This file implements support for adding proper character encodings to
+ * bitmap fonts, so searching and copying text works better in PDFs
+ * generated by the dvips Postscript output that uses bitmap fonts.
+ *
+ * Written by Tomas Rokicki in June/July 2019. Public domain.
+ * The dvips-all.enc file used here is also public domain.
+ *
+ * It turns out we need to do more than just add encodings to the fonts
+ * for most PDF viewers, so this file also takes care of those issues.
+ */
+/*
+ * Our first concern is finding and reading encoding files for bitmap
+ * fonts, and, if such cannot be found, determining a reasonable
+ * alternative.
+ *
+ * We could use the code in writet1 to read an encoding file, but
+ * we would need to make some messy changes for that to work, and we
+ * really want this to be a minimal impact to existing code (especially
+ * code such as write_t1 that we don't have a good handle on).
+ *
+ * We want to deduplicate (combine identical) encodings to lower the
+ * memory and file size impact. But we have to be careful; if the
+ * document requires multiple sections, we need to redownload encodings
+ * just like we do fonts.
+ */
+#include <stdio.h>
+#include <string.h>
+#ifndef STANDALONE
+#include <kpathsea/config.h>
+#endif
+#include "dvips.h"
+#include "protos.h"
+/*
+ * Do we use this functionality? If 0, then no; if 1, then yes, but
+ * suppress warnings; if 2, then warn.
+ */
+int encodetype3 = 1 ;
+void bitmapencopt(int v) {
+ if (0 <= v && v <= 2)
+ encodetype3 = v ;
+ else
+ error("! Bad option to J") ;
+}
+/*
+ * TODO
+ *
+ * Initially we support standalone compilation for testing but
+ * this code will be ripped out before release.
+ */
+#ifdef STANDALONE
+#undef fopen
+#undef fclose
+#endif
+/*
+ * Reading the encodings.
+ *
+ * Encodings we read are returned as an array C strings. We do not
+ * attempt to parse the contents of the encodings, because they
+ * may contain additional dictionaries or other PostScript code
+ * that can possibly do more advanced things.
+ */
+#define MAX_LINE_LENGTH 256
+/*
+ * A structure for storing deduplicated encodings. These are deduplicated
+ * in dvips memory on load. We also store information on whether the
+ * encoding has been downloaded in a particular section. This is stored
+ * as a singly-linked list for all distinct encodings we have used so
+ * far.
+ */
+struct bmenc {
+ const char **enc ; // the encoding itself
+ int downloaded_seq ; // -1: not downloaded; else, sequence number
+ struct bmenc *next ; // next encoding in linear linked list
+ unsigned char existsbm[32] ; // a bitmap of characters with names
+} ;
+static struct bmenc *bmlist ;
+/*
+ * This structure maintains a relationship between a font name and a
+ * bitmap encoding. Again, linear search is used.
+ */
+struct bmfontenc {
+ const char *fontname ; // dvi font name
+ struct bmenc *enc ; // the encoding to use
+ struct bmfontenc *next ; // next encoding
+} ;
+static struct bmfontenc *bmfontenclist ;
+/*
+ * We load the default encodings for all fonts en masse from he
+ * dvips-all.enc file, and store them here. We use an array and
+ * sort the input for quicker search. We don't need to deduplicate
+ * because we assume whatever generated dvips-all.enc already did
+ * deduplication.
+ */
+static int numstatic ;
+static struct allfontenc {
+ const char *fontname ;
+ const char **enc ;
+} *bmfontarr ;
+/*
+ * While loading dvips-all.enc, we track the capacity of our allfontenc
+ * array, how many have names, the capacity in strings of our encoding
+ * that is being built up, and how many strings we still can store in
+ * the encoding built up.
+ */
+static int capstatic, namedstatic ;
+static int in_working_enc, working_enc_left ;
+const char **working_enc ;
+/*
+ * Add another fontname to the list (from the dvips-all.enc file).
+ * If needed expand the working arrays. If there is currently
+ * an encoding, that means that we need to first assign that
+ * encoding to the list of font names we have built up, so do
+ * that first. If the fontname passed is the null string, this is
+ * the last call done just to finish up the last encoding.
+ */
+static void add_fontname(const char *fontname) {
+ int i ;
+ if (in_working_enc) { // flush
+ const char **e = working_enc ;
+ while (numstatic < namedstatic)
+ bmfontarr[numstatic++].enc = e ;
+ working_enc += in_working_enc + 1 ;
+ working_enc_left -= in_working_enc + 1 ;
+ in_working_enc = 0 ;
+ }
+ if (fontname == 0)
+ return ;
+ if (namedstatic >= capstatic) {
+ int ncapstatic = capstatic * 2 + 20 ;
+ struct allfontenc *nbmfontarr =
+ (struct allfontenc *)mymalloc(sizeof(struct allfontenc) * ncapstatic) ;
+ if (capstatic) {
+ memcpy(nbmfontarr, bmfontarr, sizeof(struct allfontenc)*capstatic) ;
+ free(bmfontarr) ;
+ }
+ bmfontarr = nbmfontarr ;
+ for (i=capstatic; i<ncapstatic; i++) {
+ bmfontarr[i].fontname = 0 ;
+ bmfontarr[i].enc = 0 ;
+ }
+ capstatic = ncapstatic ;
+ }
+ bmfontarr[namedstatic].fontname = fontname ;
+ bmfontarr[namedstatic].enc = 0 ;
+ namedstatic++ ;
+}
+/*
+ * Add an encoding line to the working encoding; if needed, reallocate
+ * the working array.
+ */
+static void add_encline(const char *encline) {
+ if (in_working_enc + 1 >= working_enc_left) {
+ int i ;
+ int new_enc_size = 100 + 2 * in_working_enc ;
+ const char **new_working_enc =
+ (const char **)mymalloc(sizeof(const char **) * new_enc_size) ;
+ for (i=0; i<new_enc_size; i++)
+ new_working_enc[i] = 0 ;
+ for (i=0; i<in_working_enc; i++)
+ new_working_enc[i] = working_enc[i] ;
+ working_enc = new_working_enc ;
+ working_enc_left = new_enc_size - in_working_enc ;
+ }
+ working_enc[in_working_enc++] = encline ;
+}
+/*
+ * Parse the encoding file. If use_all flag is set then we are parsing
+ * the dvips_all file which can have multiple encodings, each preceded
+ * by a set of lines with font names followed by a colon character.
+ *
+ * If we are parsing them all, we build a sorted global list of entries
+ * for later lookup, and always return 0. Otherwise we just expect a
+ * single encoding and we store that away.
+ */
+static const char **parseencodingfile(FILE *f, int use_all) {
+ char encbuf[MAX_LINE_LENGTH+1] ;
+ size_t i ;
+ for (i=0; i<sizeof(encbuf); i++)
+ encbuf[i] = 0 ;
+ while (fgets(encbuf, MAX_LINE_LENGTH, f) != 0) {
+ char *p = encbuf ;
+ char *q = p + strlen(p) - 1 ;
+ while (q > p && *q < ' ') // kill line terminators
+ *q-- = 0 ;
+ q = p ;
+ while (*q && *q != ' ' && *q != ':')
+ q++ ;
+ if (use_all && *q == ':') { // looks like a font name
+ if (q[1] >= ' ' || !use_all)
+ error(
+ "! unexpected colon or extra stuff at end of line in encoding file?") ;
+ *q = 0 ;
+ add_fontname(strdup(p)) ;
+ } else {
+ add_encline(strdup(p)) ;
+ }
+ }
+ if (use_all)
+ add_fontname(0) ; // flushes last encoding
+ if (use_all) {
+ // sort the static fonts for quicker search; Shell sort
+ int h = 1 ;
+ while (h < numstatic)
+ h = 3 * h + 1 ;
+ while (h > 1) {
+ int i ;
+ h /= 3 ;
+ for (i=h; i<numstatic; i++) {
+ int j = i ;
+ while (j >= h &&
+ strcmp(bmfontarr[j-h].fontname, bmfontarr[j].fontname) > 0) {
+ const char *na = bmfontarr[j-h].fontname ;
+ const char **en = bmfontarr[j-h].enc ;
+ bmfontarr[j-h].fontname = bmfontarr[j].fontname ;
+ bmfontarr[j-h].enc = bmfontarr[j].enc ;
+ bmfontarr[j].fontname = na ;
+ bmfontarr[j].enc = en ;
+ j -= h ;
+ }
+ }
+ }
+ return 0 ;
+ } else {
+ const char **e = working_enc ;
+ if (e == 0)
+ error("! No lines in encoding?") ;
+ return e ;
+ }
+}
+/*
+ * Given a font name, find an encoding file. We prefix all encoding
+ * files with "dvips-" to distinguish these encodings from those used
+ * in the psfonts.map, since the syntax, requirements, and function
+ * is somewhat different.
+ */
+#define MAX_NAME_SIZE 256
+static FILE *bitmap_enc_search(const char *fontname) {
+ char namebuf[MAX_NAME_SIZE+1] ;
+ if (fontname == 0 || strlen(fontname) > 128)
+ error("! excessively long font name") ;
+ sprintf(namebuf, "dvips-%s.enc", fontname) ;
+#ifdef STANDALONE
+ return fopen(namebuf, FOPEN_RBIN_MODE) ;
+#else
+ return search(kpse_enc_format, namebuf, FOPEN_RBIN_MODE) ;
+#endif
+}
+/*
+ * Are two raw encodings identical? They must be exactly the same; there
+ * is no effort towards comparing semantics, just precise text.
+ */
+static int eqencoding(const char **a, const char **b) {
+ int i ;
+ if (a == b)
+ return 1 ;
+ for (i=0; a[i] != 0 && b[i] != 0; i++)
+ if (a[i] != b[i] && (a[i] == 0 || b[i] == 0 || strcmp(a[i], b[i]) != 0))
+ return 0 ;
+ return 1 ;
+}
+/*
+ * Try to parse an encoding to identify which names exist and which don't.
+ * If we can't trivially parse it we just mark all names as existing.
+ * We properly parse the following types of tokens:
+ * [ (at start) ] (at end) : ignored
+ * /name
+ * digits { /.notdef } repeat
+ *
+ * In all cases the spaces and linebreaks are arbitrary.
+ *
+ * The state machine works as follows:
+ *
+ * 'B': begin; expect [
+ * 'N': between entries; expect name or digits or ]
+ * 'E': finished (saw ]); expect nothing more
+ * '#': just saw digits; expect only {
+ * '{': just saw {; expect only name and should be /.notdef
+ * 'L': just saw a name inside {}; expect only }
+ * '}': just saw }; expect only repeat
+ */
+static int trytoparseenc(struct bmenc *bme) {
+ int i ;
+ const char **enc = bme->enc ;
+ const char *p ;
+ int seenchars = 0 ;
+ int num = 0 ;
+ char state = 'B' ;
+ for (i=0; i<32; i++)
+ bme->existsbm[i] = 255 ;
+ while (*enc != 0) {
+ p = *enc ;
+ enc++ ;
+ while (*p && *p <= ' ')
+ p++ ;
+ while (*p != 0) {
+ switch (state) {
+case 'B': if (*p != '[') return 0 ;
+ p++ ;
+ state = 'N' ;
+ break ;
+case 'N': if (*p == ']') {
+ p++ ;
+ state = 'E' ;
+ } else if (*p == '/') {
+ if (seenchars >= 256)
+ return 0 ;
+ if (strncmp(p, "/.notdef", 8) == 0 &&
+ (p[8] <= ' ' || strchr("{}[]<>()%/", p[8]) == 0)) {
+ bme->existsbm[seenchars>>3] &= ~(1<<(seenchars & 7)) ;
+ }
+ // see PostScript language reference manual syntax for this
+ p++ ;
+ while (*p > ' ' && strchr("{}[]<>()%/", *p) == 0)
+ p++ ;
+ seenchars++ ;
+ } else if ('0' <= *p && *p <= '9') {
+ num = 0 ;
+ while (num < 256 && '0' <= *p && *p <= '9')
+ num = 10 * num + *p++ - '0' ;
+ state = '#' ;
+ } else
+ return 0 ;
+ break ;
+case '#': if (*p != '{') return 0 ;
+ p++ ;
+ state = '{' ;
+ break ;
+case '{': if (strncmp(p, "/.notdef", 8) != 0)
+ return 0 ;
+ p += 8 ;
+ if (*p > ' ' && strchr("{}[]<>()%/", *p) == 0)
+ return 0 ;
+ while (num > 0) {
+ if (seenchars >= 256)
+ return 0 ;
+ bme->existsbm[seenchars>>3] &= ~(1<<(seenchars & 7)) ;
+ seenchars++ ;
+ num-- ;
+ }
+ state = 'L' ;
+ break ;
+case 'L': if (*p != '}')
+ return 0 ;
+ p++ ;
+ state = '}' ;
+ break ;
+case '}': if (strncmp(p, "repeat", 6) != 0)
+ return 0 ;
+ p += 6 ;
+ state = 'N' ;
+ break ;
+default:
+ error("! internal error in encoding vector parse") ;
+ }
+ while (*p && *p <= ' ')
+ p++ ;
+ }
+ }
+ if (seenchars != 256)
+ return 0 ;
+ return 1 ;
+}
+static void parseenc(struct bmenc *bme) {
+ int i ;
+ if (trytoparseenc(bme) == 0) {
+ printf("Failed to parse it.\n") ;
+ for (i=0; i<32; i++)
+ bme->existsbm[i] = 255 ;
+ }
+}
+/*
+ * Add an encoding to our list of deduplicated encodings.
+ */
+struct bmenc *addbmenc(const char **enc) {
+ struct bmenc *r = (struct bmenc *)mymalloc(sizeof(struct bmenc)) ;
+ r->downloaded_seq = -1 ;
+ r->enc = enc ;
+ r->next = bmlist ;
+ parseenc(r) ;
+ bmlist = r ;
+ return r ;
+}
+/*
+ * Given a particular encoding, walk through our encoding list and
+ * see if it already exists; if so, return the existing one.
+ * The set of distinct encodings in a particular document is
+ * expected to be small (a few dozen at most).
+ */
+static struct bmenc *deduplicateencoding(const char **enc) {
+ struct bmenc *p ;
+ for (p=bmlist; p!=0; p=p->next)
+ if (eqencoding(p->enc, enc))
+ return p ;
+ return addbmenc(enc) ;
+}
+/*
+ * Attempt to load an encoding; first, find the file, and then parse
+ * the file.
+ */
+static const char **bitmap_enc_load(const char *fontname, int use_all) {
+ FILE *f = bitmap_enc_search(use_all ? "all" : fontname) ;
+ if (f != 0) {
+ const char **r = parseencodingfile(f, use_all) ;
+ fclose(f) ;
+ return r ;
+ }
+ return 0 ;
+}
+/*
+ * Start a section: mark all encodings as not downloaded yet.
+ */
+static int curbmseq ;
+void bmenc_startsection() {
+ struct bmenc *p ;
+ for (p=bmlist; p!=0; p=p->next)
+ p->downloaded_seq = -1 ;
+ curbmseq = 0 ;
+}
+/*
+ * Try to find a font in the all encoding list. This list is sorted
+ * so we can use binary search.
+ */
+static const char **bitmap_all_find(const char *fontname) {
+ int ptr, bit;
+ if (numstatic == 0)
+ return 0 ;
+ ptr = 0 ;
+ bit = 1 ;
+ while ((bit << 1) < numstatic)
+ bit <<= 1 ;
+ while (bit > 0) {
+ int t = ptr + bit ;
+ if (t < numstatic && strcmp(fontname, bmfontarr[t].fontname) >= 0)
+ ptr = t ;
+ bit >>= 1 ;
+ }
+ if (strcmp(fontname, bmfontarr[ptr].fontname) == 0)
+ return bmfontarr[ptr].enc ;
+ else
+ return 0 ;
+}
+/*
+ * Download the encoding and set the sequence number.
+ */
+static void downloadenc(struct bmenc *enc) {
+ int fresh = 0 ;
+ char cmdbuf[16] ;
+ if (enc->downloaded_seq < 0) {
+ int i ;
+ newline() ;
+ for (i=0; enc->enc[i]; i++)
+ pslineout(enc->enc[i]) ;
+ enc->downloaded_seq = curbmseq++ ;
+ fresh = 1 ;
+ }
+ newline() ;
+ sprintf(cmdbuf, "/EN%d", enc->downloaded_seq) ;
+ if (fresh) {
+ cmdout("A") ;
+ psnameout(cmdbuf) ;
+ cmdout("X") ;
+ } else {
+ // we use load here specifically to defer execution until the
+ // new font dictionary is on the stack and being built.
+ psnameout(cmdbuf) ;
+ cmdout("load") ;
+ }
+}
+/*
+ * Send out the new encoding, font bounding box, and font matrix.
+ * If we cannot find an encoding file for this font, do what we
+ * used to do instead (don't give it an encoding or resize or
+ * rescale).
+ */
+static struct bmenc *getencoding_seq(const char *fontname) ;
+int downloadbmencoding(const char *name, double scale, fontdesctype *curfnt) {
+ int slop;
+ int i ;
+ int seq ;
+ int llx = curfnt->llx ;
+ int lly = curfnt->lly ;
+ int urx = curfnt->urx ;
+ int ury = curfnt->ury ;
+ struct bmenc *bme = getencoding_seq(name) ;
+ if (bme == 0)
+ return -1 ;
+ seq = bme->downloaded_seq ;
+/*
+ * Check that every character defined in the font has a name in the
+ * PostScript vector, and complain if this is not the case.
+ */
+ for (i=0; i<256 && i<curfnt->maxchars; i++) {
+ if ((curfnt->chardesc[i].flags2 & EXISTS) &&
+ !(bme->existsbm[i>>3] & (1 << (i & 7)))) {
+ fprintf_str(stderr,
+"Can't use PostScript encoding vector for font %s; character %d has no name.\n",
+ name, i) ;
+ return -1 ;
+ }
+ }
+ cmdout("IEn") ;
+ cmdout("S") ;
+ psnameout("/IEn") ;
+ cmdout("X") ;
+ cmdout("FBB") ;
+ cmdout("FMat") ;
+ psnameout("/FMat") ;
+ specialout('[') ;
+ doubleout(1.0/scale) ;
+ numout(0) ;
+ numout(0) ;
+ doubleout(-1.0/scale) ;
+ numout(0) ;
+ numout(0) ;
+ specialout(']') ;
+ cmdout("N") ;
+ psnameout("/FBB") ;
+ // we add a bit of slop here, because this is only used for
+ // highlighting, and in theory if the bounding box is too
+ // tight, on some RIPs, characters could be clipped.
+ slop = 1;
+ specialout('[') ;
+ numout(llx-slop) ;
+ numout(lly-slop) ;
+ numout(urx+slop) ;
+ numout(ury+slop) ;
+ specialout(']') ;
+ cmdout("N") ;
+ newline() ;
+ return seq ;
+}
+/*
+ * Finish up the downloaded encoding; scale the font, and restore the
+ * previous global definitions.
+ */
+void finishbitmapencoding(const char *name, double scale) {
+ psnameout(name) ;
+ cmdout("load") ;
+ numout(0) ;
+ cmdout(name+1) ;
+ cmdout("currentfont") ;
+ doubleout(scale) ;
+ cmdout("scalefont") ;
+ cmdout("put") ;
+ psnameout("/FMat") ;
+ cmdout("X") ;
+ psnameout("/FBB") ;
+ cmdout("X") ;
+ psnameout("/IEn") ;
+ cmdout("X") ;
+ newline();
+}
+/*
+ * We warn if we have to use a built-in encoding, and set this value to 1.
+ * We warn again if we cannot find a built-in encoding and have to
+ * default to previous behavior, and set this value to 2. In any case,
+ * we only issue warnings if the encodetype3 flag is set to a value greater
+ * than one; we don't want to bother folks about this new functionality.
+ */
+static int warned_about_missing_encoding = 0 ;
+/*
+ * Print a warning message.
+ */
+static void bmenc_warn(const char *fontname, const char *msg) {
+ if (encodetype3 > 1)
+ fprintf_str(stderr,
+ "dvips: Static bitmap font encoding for font %s (and others?): %s.\n",
+ fontname, msg) ;
+}
+/*
+ * About to download a font; find the encoding sequence number.
+ * If needed, download a new sequence. If we can't find one, use
+ * -1; this font may not work as well for copy/paste and text search.
+ */
+static int tried_all = 0 ; // have we tried to load dvips-all.enc
+static struct bmenc *getencoding_seq(const char *fontname) {
+ struct bmenc *enc = 0 ;
+ struct bmfontenc *p = bmfontenclist ;
+ for (; p!=0; p=p->next)
+ if (strcmp(fontname, p->fontname) == 0) {
+ enc = p->enc ;
+ if (enc == 0) // remember failures
+ return 0 ;
+ break ;
+ }
+ // not in list; try to load it from a file
+ if (enc == 0) {
+ const char **e = bitmap_enc_load(fontname, 0) ;
+ // did not find it; try to load it from the dvips-all list.
+ if (e == 0) {
+ if (!tried_all) {
+ bitmap_enc_load(fontname, 1) ;
+ tried_all = 1 ;
+ }
+ e = bitmap_all_find(fontname) ;
+ }
+ if (e)
+ enc = deduplicateencoding(e) ;
+ }
+ // did not find this in the list; add it to the list
+ if (p == 0) {
+ p = (struct bmfontenc *)mymalloc(sizeof(struct bmfontenc)) ;
+ p->fontname = strdup(fontname) ;
+ p->enc = enc ;
+ p->next = bmfontenclist ;
+// parseenc(enc) ;
+ bmfontenclist = p ;
+ }
+ if (enc == 0) {
+ if (warned_about_missing_encoding < 2) {
+ bmenc_warn(fontname, "no encoding found") ;
+ warned_about_missing_encoding = 2 ;
+ }
+ return 0 ; // don't download an encoding
+ }
+ downloadenc(enc) ;
+ return enc ;
+}
+#ifdef STANDALONE
+/*
+ * Standalone test code:
+ */
+void error(const char *s) {
+ fprintf(stderr, "Failed: %s\n", s) ;
+ if (*s == '!')
+ exit(0) ;
+}
+char *mymalloc(int sz) {
+ return (char *)malloc(sz) ;
+}
+int pos = 0 ;
+int idok = 1 ;
+const int MAXLINE = 75 ;
+void newline() {
+ printf("\n") ;
+ idok = 1 ;
+ pos = 0 ;
+}
+void doubleout(double f) {
+ printf("%g", f) ;
+ pos += 8 ;
+}
+void pslineout(const char *s) {
+ printf("%s\n", s) ;
+}
+void numout(int num) {
+ int len = 1 ;
+ int t = num / 10 ;
+ while (t>0) {
+ len++ ;
+ t /= 10 ;
+ }
+ if (pos + len >= MAXLINE)
+ newline() ;
+ if (!idok)
+ specialout(' ') ;
+ printf("%d", num) ;
+ pos += len ;
+ idok = 0 ;
+}
+void cmdout(const char *s) {
+ if (pos + strlen(s) >= MAXLINE)
+ newline() ;
+ if (*s != '/' && !idok)
+ specialout(' ') ;
+ printf("%s", s) ;
+ pos += strlen(s) ;
+ idok = 0 ;
+}
+void psnameout(const char *s) {
+ cmdout(s) ;
+}
+void specialout(char c) {
+ if (pos + 1 >= MAXLINE)
+ newline() ;
+ printf("%c", c) ;
+ pos++ ;
+ idok = 1 ;
+}
+int main(int argc, char *argv[]) {
+ bmenc_startsection() ;
+ for (int i=1; i<argc; i++) {
+ struct bmenc *r = getencoding_seq(argv[i]) ;
+ int seq = r ? r->downloaded_seq : -1 ;
+ printf("\n") ;
+ printf("Result for %s is %d\n", argv[i], seq) ;
+ }
+}
+#endif
diff --git a/Build/source/texk/dvipsk/c-auto.in b/Build/source/texk/dvipsk/c-auto.in
new file mode 100644
index 00000000000..406daba2328
--- /dev/null
+++ b/Build/source/texk/dvipsk/c-auto.in
@@ -0,0 +1,173 @@
+/* c-auto.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if the `closedir' function returns void instead of `int'. */
+#undef CLOSEDIR_VOID
+
+/* Define to 1 if you have the <assert.h> header file. */
+#undef HAVE_ASSERT_H
+
+/* Define to 1 if you have the declaration of `isascii', and to 0 if you
+ don't. */
+#undef HAVE_DECL_ISASCII
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_DIRENT_H
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <float.h> header file. */
+#undef HAVE_FLOAT_H
+
+/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
+#undef HAVE_FSEEKO
+
+/* Define to 1 if you have the `getcwd' function. */
+#undef HAVE_GETCWD
+
+/* Define to 1 if you have the `getwd' function. */
+#undef HAVE_GETWD
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
+/* Define to 1 if you have the `memcmp' function. */
+#undef HAVE_MEMCMP
+
+/* Define to 1 if you have the `memcpy' function. */
+#undef HAVE_MEMCPY
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `mkstemp' function. */
+#undef HAVE_MKSTEMP
+
+/* Define to 1 if you have the `mktemp' function. */
+#undef HAVE_MKTEMP
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#undef HAVE_NDIR_H
+
+/* Define to 1 if you have the `putenv' function. */
+#undef HAVE_PUTENV
+
+/* Define to 1 if you have the <pwd.h> header file. */
+#undef HAVE_PWD_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strchr' function. */
+#undef HAVE_STRCHR
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the `strrchr' function. */
+#undef HAVE_STRRCHR
+
+/* Define to 1 if `st_mtim' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_MTIM
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_DIR_H
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_NDIR_H
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#undef LT_OBJDIR
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* The size of `int', as computed by sizeof. */
+#undef SIZEOF_INT
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Version number of package */
+#undef VERSION
+
+/* Enable large inode numbers on Mac OS X 10.5. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
+#undef _LARGEFILE_SOURCE
+
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
+
+/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
+ <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
+ #define below would cause a syntax error. */
+#undef _UINT64_T
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+ calls it, or to nothing if 'inline' is not supported under any name. */
+#ifndef __cplusplus
+#undef inline
+#endif
+
+/* Define to the type of a signed integer type of width exactly 64 bits if
+ such a type exists and the standard includes do not define it. */
+#undef int64_t
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
+
+/* Define to the type of an unsigned integer type of width exactly 64 bits if
+ such a type exists and the standard includes do not define it. */
+#undef uint64_t
diff --git a/Build/source/texk/dvipsk/cmfonts.map b/Build/source/texk/dvipsk/cmfonts.map
new file mode 100644
index 00000000000..56eae90abd0
--- /dev/null
+++ b/Build/source/texk/dvipsk/cmfonts.map
@@ -0,0 +1,77 @@
+cmbxsl10 cmbxsl10 <cmbxsl10.pfb
+cmbxti10 cmbxti10 <cmbxti10.pfb
+cmbx10 cmbx10 <cmbx10.pfb
+cmbx12 cmbx12 <cmbx12.pfb
+cmbx5 cmbx5 <cmbx5.pfb
+cmbx6 cmbx6 <cmbx6.pfb
+cmbx7 cmbx7 <cmbx7.pfb
+cmbx8 cmbx8 <cmbx8.pfb
+cmbx9 cmbx9 <cmbx9.pfb
+cmb10 cmb10 <cmb10.pfb
+cmdunh10 cmdunh10 <cmdunh10.pfb
+cmff10 cmff10 <cmff10.pfb
+cmfib8 cmfib8 <cmfib8.pfb
+cmfi10 cmfi10 <cmfi10.pfb
+cmr10 cmr10 <cmr10.pfb
+cmr12 cmr12 <cmr12.pfb
+cmr17 cmr17 <cmr17.pfb
+cmr6 cmr6 <cmr6.pfb
+cmr7 cmr7 <cmr7.pfb
+cmr8 cmr8 <cmr8.pfb
+cmr9 cmr9 <cmr9.pfb
+cmsl10 cmsl10 <cmsl10.pfb
+cmsl12 cmsl12 <cmsl12.pfb
+cmsl8 cmsl8 <cmsl8.pfb
+cmsl9 cmsl9 <cmsl9.pfb
+cmssbx10 cmssbx10 <cmssbx10.pfb
+cmssdc10 cmssdc10 <cmssdc10.pfb
+cmssi10 cmssi10 <cmssi10.pfb
+cmssi12 cmssi12 <cmssi12.pfb
+cmssi17 cmssi17 <cmssi17.pfb
+cmssi8 cmssi8 <cmssi8.pfb
+cmssi9 cmssi9 <cmssi9.pfb
+cmssqi8 cmssqi8 <cmssqi8.pfb
+cmssq8 cmssq8 <cmssq8.pfb
+cmss10 cmss10 <cmss10.pfb
+cmss12 cmss12 <cmss12.pfb
+cmss17 cmss17 <cmss17.pfb
+cmss8 cmss8 <cmss8.pfb
+cmss9 cmss9 <cmss9.pfb
+cmti10 cmti10 <cmti10.pfb
+cmti12 cmti12 <cmti12.pfb
+cmti7 cmti7 <cmti7.pfb
+cmti8 cmti8 <cmti8.pfb
+cmti9 cmti9 <cmti9.pfb
+cmu10 cmu10 <cmu10.pfb
+cmvtt10 cmvtt10 <cmvtt10.pfb
+cmcsc10 cmcsc10 <cmcsc10.pfb
+cmcsc8 cmcsc8 <cmcsc8.pfb
+cmcsc9 cmcsc9 <cmcsc9.pfb
+cmr5 cmr5 <cmr5.pfb
+cmtex10 cmtex10 <cmtex10.pfb
+cmtex8 cmtex8 <cmtex8.pfb
+cmtex9 cmtex9 <cmtex9.pfb
+cmitt10 cmitt10 <cmitt10.pfb
+cmsltt10 cmsltt10 <cmsltt10.pfb
+cmtcsc10 cmtcsc10 <cmtcsc10.pfb
+cmtt10 cmtt10 <cmtt10.pfb
+cmtt12 cmtt12 <cmtt12.pfb
+cmtt8 cmtt8 <cmtt8.pfb
+cmtt9 cmtt9 <cmtt9.pfb
+cmex10 cmex10 <cmex10.pfb
+cmbsy10 cmbsy10 <cmbsy10.pfb
+cmsy10 cmsy10 <cmsy10.pfb
+cmsy5 cmsy5 <cmsy5.pfb
+cmsy6 cmsy6 <cmsy6.pfb
+cmsy7 cmsy7 <cmsy7.pfb
+cmsy8 cmsy8 <cmsy8.pfb
+cmsy9 cmsy9 <cmsy9.pfb
+cmmib10 cmmib10 <cmmib10.pfb
+cmmi10 cmmi10 <cmmi10.pfb
+cmmi12 cmmi12 <cmmi12.pfb
+cmmi5 cmmi5 <cmmi5.pfb
+cmmi6 cmmi6 <cmmi6.pfb
+cmmi7 cmmi7 <cmmi7.pfb
+cmmi8 cmmi8 <cmmi8.pfb
+cmmi9 cmmi9 <cmmi9.pfb
+cminch cminch <cminch.pfb
diff --git a/Build/source/texk/dvipsk/color.c b/Build/source/texk/dvipsk/color.c
new file mode 100644
index 00000000000..3366f00b390
--- /dev/null
+++ b/Build/source/texk/dvipsk/color.c
@@ -0,0 +1,254 @@
+/* $Id$
+ * This is a set of routines for dvips that are used to process color
+ * commands in the TeX file (passed by \special commands). This was
+ * orignally written by J. Hafner, E. Blanz and M. Flickner of IBM
+ * Research, Almaden Research Center. Contact hafner@almaden.ibm.com.
+ * And then it was completely rewritten by Tomas Rokicki to:
+ *
+ * - Be easier on the memory allocator (malloc/free)
+ * - Use less memory overall (by a great deal) and be faster
+ * - Work with the -C, -a, and other options
+ * - Be more adaptable to other drivers and previewers.
+ *
+ * The motivating idea: we want to be able to process 5,000 page
+ * documents using lots of colors on each page on a 640K IBM PC
+ * relatively quickly.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#include <stdio.h>
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+/*
+ * Here we set some limits on some color stuff.
+ */
+#define COLORHASH (89)
+#define MAXCOLORLEN (120) /* maximum color length for background */
+#define INITCOLORLEN (10000) /* initial stack size in chars */
+#define OUTBUFSIZ (100) /* base limit on special length */
+/*
+ * This is where we store the color information for a particular page.
+ * If we free all of these, we free all of the allocated color
+ * stuff; we do no allocations (but one) other than when we allocate
+ * these.
+ */
+static struct colorpage {
+ struct colorpage *next;
+ integer boploc; /* we use the bop loc as a page indicator */
+ char *bg;
+ char *colordat;
+} *colorhash[COLORHASH];
+static char *cstack, *csp, *cend, *bg;
+/*
+ * This routine sends a color command out. If the command is a
+ * single `word' or starts with a double quote, we send it out
+ * exactly as is (except for any double quote.) If the command
+ * is a word followed by arguments, we send out the arguments and
+ * then the word prefixed by "TeXcolor".
+ */
+static void
+colorcmdout(char *s)
+{
+ char *p;
+ char tempword[OUTBUFSIZ];
+ integer templen;
+
+ while (*s && *s <= ' ')
+ s++;
+ if (*s == '"') {
+ cmdout(s+1);
+ return;
+ }
+ for (p=s; *p && *p > ' '; p++);
+ for (; *p && *p <= ' '; p++);
+ if (*p == 0) {
+ cmdout(s);
+ return;
+ }
+ cmdout(p);
+
+ strcpy(tempword, "TeXcolor");
+ templen = strlen("TeXcolor") + strlen(s) + 2; /* 2 is slop, just in case */
+ if (templen >= OUTBUFSIZ) {
+ /* PostScript names get truncated to around 128 characters anyway,
+ so there's no reason to allow longer here. */
+ sprintf(errbuf, "! TeXcolor special name longer than %d characters",
+ OUTBUFSIZ);
+ error (errbuf);
+ }
+
+ for (p=tempword + strlen(tempword); *s && *s > ' '; p++, s++)
+ *p = *s;
+ *p = 0;
+ cmdout(tempword);
+ return;
+}
+/*
+ * For a new dvi file, call this. Frees all allocated memory.
+ */
+#define DEFAULTCOLOR "Black"
+void initcolor(void) {
+ int i;
+ struct colorpage *p, *q;
+
+ for (i=0; i<COLORHASH; i++) {
+ for (p=colorhash[i]; p; p = q) {
+ q = p->next;
+ free(p->colordat);
+ free(p);
+ }
+ colorhash[i] = 0;
+ }
+ cstack = (char *)mymalloc(INITCOLORLEN);
+ strcpy(cstack, "\n");
+ strcat(cstack, DEFAULTCOLOR);
+ csp = cstack + strlen(cstack);
+ cend = cstack + INITCOLORLEN - 3; /* for conservativeness */
+ bg = 0;
+}
+/*
+ * This takes a call from predospecial to set the background color for
+ * the current page. It is saved in stackdepth and backed down the
+ * stack during popcolors.
+ */
+void
+background(char *bkgrnd)
+{
+ if (bkgrnd && *bkgrnd) {
+ if (strlen(bkgrnd) > MAXCOLORLEN)
+ error(" color name too long; ignored");
+ else
+ strcpy(bg, bkgrnd);
+ }
+}
+/*
+ * This routine puts a call from \special for color on the colorstack
+ * and sets the color in the PostScript.
+ */
+void
+pushcolor(char *p, Boolean outtops)
+{
+ while (strlen(p) + csp > cend) {
+ int newlen = 3 * (cend - cstack);
+ char *newcs = (char *)mymalloc(newlen);
+ strcpy(newcs, cstack);
+ csp = newcs + (csp - cstack);
+ cend = newcs + newlen - 3;
+ cstack = newcs;
+ }
+ *csp++ = '\n';
+ strcpy(csp, p);
+ csp += strlen(p);
+ if (outtops) {
+ colorcmdout(p);
+ }
+}
+/*
+ * This routine removes a color from the colorstack and resets the color
+ * in the PostScript to the previous color.
+ */
+void
+popcolor(Boolean outtops)
+{
+ char *p = csp - 1;
+
+ while (p >= cstack && *p != '\n')
+ p--;
+ if (p == cstack)
+ return; /* We don't pop the last color as that is global */
+ *p = 0;
+ csp = p;
+ for (p--; p >= cstack && *p != '\n'; p--);
+ p++;
+ if ( outtops ) {
+ colorcmdout(p);
+ }
+}
+/*
+ * This routine clears the colorstack, pushes a new color onto the stack
+ * (this is now the root or global color).
+ */
+void
+resetcolorstack(char * p, int outtops)
+{
+ char *q = csp - 1;
+
+ while (q > cstack && *q != '\n')
+ q--;
+ if (q > cstack && outtops == 0) {
+#ifdef SHORTINT
+ fprintf(stderr, "You've mistakenly made a global color change ");
+ fprintf_str(stderr, "to %s within nested colors\n", p);
+ fprintf(stderr, "on page %ld. Will try to recover.\n", pagenum);
+#else /* ~SHORTINT */
+ fprintf(stderr, "You've mistakenly made a global color change ");
+ fprintf_str(stderr, "to %s within nested colors\n", p);
+ fprintf(stderr, "on page %d. Will try to recover.\n", pagenum);
+#endif /* ~SHORTINT */
+ }
+ csp = cstack;
+ *csp = 0;
+ pushcolor(p, outtops);
+}
+/*
+ * This routine is a bit magic. It looks up the page in the current
+ * hash table. If the page is already entered in the hash table, then
+ * it restores the color to what that page had, and sets the last
+ * color. This will occur if this is not the first time that this
+ * page has been encountered.
+ *
+ * If, on the other hand, this is the first time that the page has
+ * been encountered, then it will create a new hash entry and copy the
+ * current color information into it. Since we can only encounter a
+ * new page after having just finished scanning the previous page,
+ * this is safe.
+ */
+void
+bopcolor(int outtops)
+{
+ integer pageloc = ftell(dvifile);
+ int h = pageloc % COLORHASH;
+ struct colorpage *p = colorhash[h];
+
+ while (p) {
+ if (p->boploc == pageloc)
+ break;
+ else
+ p = p->next;
+ }
+ if (p) {
+ strcpy(cstack, p->colordat);
+ csp = cstack + strlen(cstack);
+ bg = p->bg;
+ if (outtops && strcmp(bg, "White")!=0 && bg[0]) {
+ cmdout("gsave");
+ colorcmdout(bg);
+ cmdout("clippath fill grestore");
+ }
+ } else {
+ p = (struct colorpage *)mymalloc((integer)
+ (sizeof(struct colorpage)));
+ p->colordat = mymalloc(strlen(cstack) + MAXCOLORLEN + 2);
+ p->next = colorhash[h];
+ p->boploc = pageloc;
+ strcpy(p->colordat, cstack);
+ p->bg = p->colordat + strlen(cstack) + 1;
+ if (bg)
+ strcpy(p->bg, bg);
+ else
+ *(p->bg) = 0;
+ bg = p->bg;
+ colorhash[h] = p;
+ }
+ if (outtops) {
+ char *pp = csp - 1;
+ while (pp >= cstack && *pp != '\n')
+ pp--;
+ pp++;
+ if (strcmp(pp, DEFAULTCOLOR)!=0) {
+ colorcmdout(pp);
+ }
+ }
+}
diff --git a/Build/source/texk/dvipsk/color.lpro b/Build/source/texk/dvipsk/color.lpro
new file mode 100644
index 00000000000..39854de88b3
--- /dev/null
+++ b/Build/source/texk/dvipsk/color.lpro
@@ -0,0 +1,195 @@
+%!
+%% color.lpro: this sets up color macros used by dvips and defines some
+%% default color parameters (if these are not already user
+%% defined by another header file).
+%%
+%% This was written by J. Hafner (hafner@almaden.ibm.com) and was last
+%% modified on 2/14/92. It was then rewritten by Tomas Rokicki to be
+%% smaller. Same license as dvips.
+%%
+%% The color names used here mostly come from the Crayola Crayon box of
+%% 64 colors, with some small additions and deletions. The names match
+%% those used in the color.[sty,tex] and black.[sty,tex] files.
+%% The actual color parameters were set using a Tektronix Phaser
+%% printer. Approximate PANTONE numbers are given for most colors.
+%%
+%% If any of these colors don't match the reditions given by your
+%% color device, then you can redefine them by adding another header file
+%% to predefine the colors in userdict. In this way you can easily
+%% customize these colors to every device by adding a header entry in the
+%% corresponding config.PRINTER file.
+%%
+%% This header file assumes that tex.pro is already loaded (e.g., B is
+%% defined in that header).
+%%
+TeXDict begin
+%%
+%% This defines the currentcmykcolor and setcmykcolor in terms of rbg
+%% if they are not defined in the current interpreter.
+%%
+/setcmykcolor where {pop}
+ { /setcmykcolor
+ { dup 10 eq {pop setrgbcolor}
+ {1 sub 4 1 roll 3
+ { 3 index add neg dup 0 lt {pop 0} if 3 1 roll
+ } repeat
+ setrgbcolor pop
+ } ifelse
+ } B
+ } ifelse
+/TeXcolorcmyk { setcmykcolor } def
+/TeXcolorrgb { setrgbcolor } def
+/TeXcolorgrey { setgray } def
+/TeXcolorgray { setgray } def
+/TeXcolorhsb { sethsbcolor } def
+/currentcmykcolor where {pop}
+ { /currentcmykcolor
+ { currentrgbcolor 10 % The 10 signals colors in rbg on stack
+ } B
+ } ifelse
+%%
+%% This is intended to set the color states by these defaults, only if
+%% they are not defined elsewhere, particularly in another header file.
+%% If defined in another header file, they must be defined in userdict to
+%% take effect.
+%%
+/DC { % define a color
+ exch dup userdict exch known { pop pop } { X } ifelse
+} B
+%% GreenYellow Approximate PANTONE 388
+/GreenYellow { 0.15 0 0.69 0 setcmykcolor } DC
+%% Yellow Approximate PANTONE YELLOW
+/Yellow { 0 0 1 0 setcmykcolor } DC
+%% Goldenrod Approximate PANTONE 109
+/Goldenrod { 0 0.10 0.84 0 setcmykcolor } DC
+%% Dandelion Approximate PANTONE 123
+/Dandelion { 0 0.29 0.84 0 setcmykcolor } DC
+%% Apricot Approximate PANTONE 1565
+/Apricot { 0 0.32 0.52 0 setcmykcolor } DC
+%% Peach Approximate PANTONE 164
+/Peach { 0 0.50 0.70 0 setcmykcolor } DC
+%% Melon Approximate PANTONE 177
+/Melon { 0 0.46 0.50 0 setcmykcolor } DC
+%% YellowOrange Approximate PANTONE 130
+/YellowOrange { 0 0.42 1 0 setcmykcolor } DC
+%% Orange Approximate PANTONE ORANGE-021
+/Orange { 0 0.61 0.87 0 setcmykcolor } DC
+%% BurntOrange Approximate PANTONE 388
+/BurntOrange { 0 0.51 1 0 setcmykcolor } DC
+%% Bittersweet Approximate PANTONE 167
+/Bittersweet { 0 0.75 1 0.24 setcmykcolor } DC
+%% RedOrange Approximate PANTONE 179
+/RedOrange { 0 0.77 0.87 0 setcmykcolor } DC
+%% Mahogany Approximate PANTONE 484
+/Mahogany { 0 0.85 0.87 0.35 setcmykcolor } DC
+%% Maroon Approximate PANTONE 201
+/Maroon { 0 0.87 0.68 0.32 setcmykcolor } DC
+%% BrickRed Approximate PANTONE 1805
+/BrickRed { 0 0.89 0.94 0.28 setcmykcolor } DC
+%% Red VERY-Approx PANTONE RED
+/Red { 0 1 1 0 setcmykcolor } DC
+%% OrangeRed No PANTONE match
+/OrangeRed { 0 1 0.50 0 setcmykcolor } DC
+%% RubineRed Approximate PANTONE RUBINE-RED
+/RubineRed { 0 1 0.13 0 setcmykcolor } DC
+%% WildStrawberry Approximate PANTONE 206
+/WildStrawberry { 0 0.96 0.39 0 setcmykcolor } DC
+%% Salmon Approximate PANTONE 183
+/Salmon { 0 0.53 0.38 0 setcmykcolor } DC
+%% CarnationPink Approximate PANTONE 218
+/CarnationPink { 0 0.63 0 0 setcmykcolor } DC
+%% Magenta Approximate PANTONE PROCESS-MAGENTA
+/Magenta { 0 1 0 0 setcmykcolor } DC
+%% VioletRed Approximate PANTONE 219
+/VioletRed { 0 0.81 0 0 setcmykcolor } DC
+%% Rhodamine Approximate PANTONE RHODAMINE-RED
+/Rhodamine { 0 0.82 0 0 setcmykcolor } DC
+%% Mulberry Approximate PANTONE 241
+/Mulberry { 0.34 0.90 0 0.02 setcmykcolor } DC
+%% RedViolet Approximate PANTONE 234
+/RedViolet { 0.07 0.90 0 0.34 setcmykcolor } DC
+%% Fuchsia Approximate PANTONE 248
+/Fuchsia { 0.47 0.91 0 0.08 setcmykcolor } DC
+%% Lavender Approximate PANTONE 223
+/Lavender { 0 0.48 0 0 setcmykcolor } DC
+%% Thistle Approximate PANTONE 245
+/Thistle { 0.12 0.59 0 0 setcmykcolor } DC
+%% Orchid Approximate PANTONE 252
+/Orchid { 0.32 0.64 0 0 setcmykcolor } DC
+%% DarkOrchid No PANTONE match
+/DarkOrchid { 0.40 0.80 0.20 0 setcmykcolor } DC
+%% Purple Approximate PANTONE PURPLE
+/Purple { 0.45 0.86 0 0 setcmykcolor } DC
+%% Plum VERY-Approx PANTONE 518
+/Plum { 0.50 1 0 0 setcmykcolor } DC
+%% Violet Approximate PANTONE VIOLET
+/Violet { 0.79 0.88 0 0 setcmykcolor } DC
+%% RoyalPurple Approximate PANTONE 267
+/RoyalPurple { 0.75 0.90 0 0 setcmykcolor } DC
+%% BlueViolet Approximate PANTONE 2755
+/BlueViolet { 0.86 0.91 0 0.04 setcmykcolor } DC
+%% Periwinkle Approximate PANTONE 2715
+/Periwinkle { 0.57 0.55 0 0 setcmykcolor } DC
+%% CadetBlue Approximate PANTONE (534+535)/2
+/CadetBlue { 0.62 0.57 0.23 0 setcmykcolor } DC
+%% CornflowerBlue Approximate PANTONE 292
+/CornflowerBlue { 0.65 0.13 0 0 setcmykcolor } DC
+%% MidnightBlue Approximate PANTONE 302
+/MidnightBlue { 0.98 0.13 0 0.43 setcmykcolor } DC
+%% NavyBlue Approximate PANTONE 293
+/NavyBlue { 0.94 0.54 0 0 setcmykcolor } DC
+%% RoyalBlue No PANTONE match
+/RoyalBlue { 1 0.50 0 0 setcmykcolor } DC
+%% Blue Approximate PANTONE BLUE-072
+/Blue { 1 1 0 0 setcmykcolor } DC
+%% Cerulean Approximate PANTONE 3005
+/Cerulean { 0.94 0.11 0 0 setcmykcolor } DC
+%% Cyan Approximate PANTONE PROCESS-CYAN
+/Cyan { 1 0 0 0 setcmykcolor } DC
+%% ProcessBlue Approximate PANTONE PROCESS-BLUE
+/ProcessBlue { 0.96 0 0 0 setcmykcolor } DC
+%% SkyBlue Approximate PANTONE 2985
+/SkyBlue { 0.62 0 0.12 0 setcmykcolor } DC
+%% Turquoise Approximate PANTONE (312+313)/2
+/Turquoise { 0.85 0 0.20 0 setcmykcolor } DC
+%% TealBlue Approximate PANTONE 3145
+/TealBlue { 0.86 0 0.34 0.02 setcmykcolor } DC
+%% Aquamarine Approximate PANTONE 3135
+/Aquamarine { 0.82 0 0.30 0 setcmykcolor } DC
+%% BlueGreen Approximate PANTONE 320
+/BlueGreen { 0.85 0 0.33 0 setcmykcolor } DC
+%% Emerald No PANTONE match
+/Emerald { 1 0 0.50 0 setcmykcolor } DC
+%% JungleGreen Approximate PANTONE 328
+/JungleGreen { 0.99 0 0.52 0 setcmykcolor } DC
+%% SeaGreen Approximate PANTONE 3268
+/SeaGreen { 0.69 0 0.50 0 setcmykcolor } DC
+%% Green VERY-Approx PANTONE GREEN
+/Green { 1 0 1 0 setcmykcolor } DC
+%% ForestGreen Approximate PANTONE 349
+/ForestGreen { 0.91 0 0.88 0.12 setcmykcolor } DC
+%% PineGreen Approximate PANTONE 323
+/PineGreen { 0.92 0 0.59 0.25 setcmykcolor } DC
+%% LimeGreen No PANTONE match
+/LimeGreen { 0.50 0 1 0 setcmykcolor } DC
+%% YellowGreen Approximate PANTONE 375
+/YellowGreen { 0.44 0 0.74 0 setcmykcolor } DC
+%% SpringGreen Approximate PANTONE 381
+/SpringGreen { 0.26 0 0.76 0 setcmykcolor } DC
+%% OliveGreen Approximate PANTONE 582
+/OliveGreen { 0.64 0 0.95 0.40 setcmykcolor } DC
+%% RawSienna Approximate PANTONE 154
+/RawSienna { 0 0.72 1 0.45 setcmykcolor } DC
+%% Sepia Approximate PANTONE 161
+/Sepia { 0 0.83 1 0.70 setcmykcolor } DC
+%% Brown Approximate PANTONE 1615
+/Brown { 0 0.81 1 0.60 setcmykcolor } DC
+%% Tan No PANTONE match
+/Tan { 0.14 0.42 0.56 0 setcmykcolor } DC
+%% Gray Approximate PANTONE COOL-GRAY-8
+/Gray { 0 0 0 0.50 setcmykcolor } DC
+%% Black Approximate PANTONE PROCESS-BLACK
+/Black { 0 0 0 1 setcmykcolor } DC
+%% White No PANTONE match
+/White { 0 0 0 0 setcmykcolor } DC
+end
diff --git a/Build/source/texk/dvipsk/config.h b/Build/source/texk/dvipsk/config.h
new file mode 100644
index 00000000000..f4889b1fef4
--- /dev/null
+++ b/Build/source/texk/dvipsk/config.h
@@ -0,0 +1,81 @@
+/* config.h: master configuration file, included first by all compilable
+ source files (not headers). This file is public domain. */
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+/* The stuff from the path searching library. */
+#include <kpathsea/config.h>
+
+/* How to open files with fopen. */
+#include <kpathsea/c-fopen.h>
+
+/* How the filenames' parts are separated. */
+#include <kpathsea/c-pathch.h>
+
+/* Have to get the enum constants below, sigh. Still better than
+ repeating the definitions everywhere we need them. */
+#include <kpathsea/tex-file.h>
+
+#include <c-auto.h>
+
+/* For kpathsea, we don't have paths, we have formats. This is so
+ we can do lazy evaluation of only the formats we need, instead of
+ having to initialize everything in the world. */
+#define figpath kpse_pict_format
+#define pictpath kpse_pict_format
+#define pkpath kpse_pk_format
+#define tfmpath kpse_tfm_format
+#define ovfpath kpse_ovf_format
+#define ofmpath kpse_ofm_format
+#define vfpath kpse_vf_format
+#define configpath kpse_dvips_config_format
+#define headerpath kpse_tex_ps_header_format
+#define type1path kpse_type1_format
+#define mappath kpse_fontmap_format
+#define encpath kpse_enc_format
+
+#if (defined (DOS) || defined (MSDOS)) && !defined (__DJGPP__)
+#undef DOS
+#undef MSDOS
+#define DOS
+#define MSDOS
+#endif
+
+/* dvips has a different name for this. */
+#if SIZEOF_INT < 4
+#define SHORTINT
+#endif
+
+#define READ FOPEN_R_MODE
+#define READBIN FOPEN_RBIN_MODE
+#define WRITEBIN FOPEN_WBIN_MODE
+
+/* Include various things by default. */
+#ifndef NO_HPS
+#define HPS
+#endif
+#ifndef NO_TPIC
+#define TPIC
+#endif
+#ifndef NO_EMTEX
+#define EMTEX
+#endif
+
+/* Include debugging by default, too. */
+#ifndef NO_DEBUG
+#undef DEBUG
+#define DEBUG
+
+/* To pass along to kpathsea. (Avoid changing debug.h.) */
+#define D_STAT (1<<9)
+#define D_HASH (1<<10)
+#define D_EXPAND (1<<11)
+#define D_SEARCH (1<<12)
+#endif
+
+/* These are defined under NT, but we have variable names. */
+#undef ERROR
+#undef NO_ERROR
+
+#endif /* not CONFIG_H */
diff --git a/Build/source/texk/dvipsk/config.ps b/Build/source/texk/dvipsk/config.ps
new file mode 100644
index 00000000000..0816b31fec3
--- /dev/null
+++ b/Build/source/texk/dvipsk/config.ps
@@ -0,0 +1,613 @@
+% $Id: config.ps 24459 2011-11-02 15:13:04Z preining $
+% config.ps - configuration file for dvips.
+% Tomas Rokicki, Thomas Esser, Karl Berry, et al., 1986ff, public domain.
+
+% Memory available. Download the three-line PostScript file:
+% %! Hey, we're PostScript
+% /Times-Roman findfont 30 scalefont setfont 144 432 moveto
+% vmstatus exch sub 40 string cvs show pop showpage
+% to determine this number. (It will be the only thing printed.)
+m 3500000
+
+% Run securely. z2 disables both shell command execution in
+% `\special' and config files (via the `E' option) and opening of any
+% absolute filenames. z1, the default, forbids shell escapes but
+% allows absolute filenames. z0 allows both. The corresponding
+% command line options are -R0|-R1|-R2
+z1
+
+% How to print, maybe with lp instead lpr, etc. If commented-out, output
+% will go into a file by default.
+%o |lpr
+
+% Default resolution of this device, in dots per inch.
+D 600
+X 600
+Y 600
+
+% Metafont mode. (This is completely different from the -M
+% command-line option, which controls whether mktexpk is invoked.)
+% See ../../metafont/misc/modes.mf for a list of mode names. This mode
+% and the D number above must agree, or mktexpk will get confused.
+M ljfour
+
+% Last resort bitmap sizes.
+R 300 600
+
+% Correct printer offset. You can use testpage.tex from the LaTeX
+% distribution to find these numbers.
+O 0pt,0pt
+
+% Bitmap font compression. Results in more compact output files, but
+% sometimes causes trouble. So the default is disabled. Set Z1 to enable
+% this feature.
+Z0
+
+% Partially download Type 1 fonts by default. Only reason not to do
+% this is if you encounter bugs. (Please report them to
+% @email{tex-k@tug.org} if you do.)
+j
+
+% This shows how to add your own map file.
+% Remove the comment and adjust the name:
+% p +myfonts.map
+
+% In the past, the a4size and letterSize definitions did not set the
+% paper size, but we want to set it if we can so that ps2pdf can work
+% properly. So, a4 and a4size, and letter and letterSize, are made
+% identical here, and we prefer the a4/letter names -- texconfig uses them.
+%
+% In the definitions below, if we have setpagedevice, use that.
+% Else if we have the a4 resp. letter operator, use that.
+% Else do nothing to set the page size.
+%
+% If you need to have no paper size stuff in the output at all, e.g., if
+% you are producing a multi-page document for further processing, use
+% -tnopaper (defined at end). (With a single-page document, you can use -E.)
+%
+% emacs-page
+
+@ a4 210mm 297mm
+@+ ! %%DocumentPaperSizes: a4
+@+ %%BeginPaperSize: a4
+@+ /setpagedevice where
+@+ { pop << /PageSize [595 842] >> setpagedevice }
+@+ { /a4 where { pop a4 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ letter 8.5in 11in
+@+ ! %%DocumentPaperSizes: Letter
+@+ %%BeginPaperSize: Letter
+@+ /setpagedevice where
+@+ { pop << /PageSize [612 792] >> setpagedevice }
+@+ { /letter where { pop letter } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ a4size 210mm 297mm
+@+ ! %%DocumentPaperSizes: a4
+@+ %%BeginPaperSize: a4
+@+ /setpagedevice where
+@+ { pop << /PageSize [595 842] >> setpagedevice }
+@+ { /a4 where { pop a4 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ letterSize 8.5in 11in
+@+ ! %%DocumentPaperSizes: Letter
+@+ %%BeginPaperSize: Letter
+@+ /setpagedevice where
+@+ { pop << /PageSize [612 792] >> setpagedevice }
+@+ { /letter where { pop letter } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+% The jacow paper size is the smaller of letter and a4 in both
+% dimensions, and can therefore hopefully be printed on either paper
+% size. As far as we know, Volker Schaa first used it for the JACOW
+% conference proceedings that he produced.
+@ jacow 210mm 11in
+@+ ! %%DocumentPaperSizes: jacow
+@+ %%BeginPaperSize: jacow
+@+ /setpagedevice where
+@+ { pop << /PageSize [595 792] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+% The smallbook paper size has been used by the Free Software Foundation
+% to print manuals for many years, and is part of Texinfo.
+@ smallbook 7in 9.25in
+@+ ! %%DocumentPaperSizes: smallbook
+@+ %%BeginPaperSize: smallbook
+@+ /setpagedevice where
+@+ { pop << /PageSize [504 666] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+% Special paper size for IEEE Computer Society Journals
+@ ieeecs 7.875in 10.75in
+@+ ! %%DocumentPaperSizes: ieeecs
+@+ %%BeginPaperSize: ieeecs
+@+ /setpagedevice where
+@+ { pop << /PageSize [567 774] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ halfexecutive 133mm 184mm
+@+ ! %%DocumentPaperSizes: halfexecutive
+@+ %%BeginPaperSize: halfexecutive
+@+ /setpagedevice where
+@+ { pop << /PageSize [378 522] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ halfletter 140mm 216mm
+@+ ! %%DocumentPaperSizes: halfletter
+@+ %%BeginPaperSize: halfletter
+@+ /setpagedevice where
+@+ { pop << /PageSize [396 612] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ statement 140mm 216mm
+@+ ! %%DocumentPaperSizes: statement
+@+ %%BeginPaperSize: statement
+@+ /setpagedevice where
+@+ { pop << /PageSize [396 612] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ executive 184mm 267mm
+@+ ! %%DocumentPaperSizes: executive
+@+ %%BeginPaperSize: executive
+@+ /setpagedevice where
+@+ { pop << /PageSize [522 756] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+% for powerdot
+@ screen 8.25in 11in
+@+ ! %%DocumentPaperSizes: Screen
+@+ %%BeginPaperSize: Screen
+@+ /setpagedevice where
+@+ { pop << /PageSize [594 792] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+% a common size for printers (in north america).
+@ sixbynine 6in 9in
+@+ ! %%DocumentPaperSizes: SixByNine
+@+ %%BeginPaperSize: SixByNine
+@+ /setpagedevice where
+@+ { pop << /PageSize [432 648] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ quarto 215mm 275mm
+@+ ! %%DocumentPaperSizes: quarto
+@+ %%BeginPaperSize: quarto
+@+ /setpagedevice where
+@+ { pop << /PageSize [610 780] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ note 216mm 279mm
+@+ ! %%DocumentPaperSizes: note
+@+ %%BeginPaperSize: note
+@+ /setpagedevice where
+@+ { pop << /PageSize [612 792] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ folio 216mm 330mm
+@+ ! %%DocumentPaperSizes: folio
+@+ %%BeginPaperSize: folio
+@+ /setpagedevice where
+@+ { pop << /PageSize [612 936] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ legal 8.5in 14in
+@+ ! %%DocumentPaperSizes: Legal
+@+ %%BeginPaperSize: Legal
+@+ /setpagedevice where
+@+ { pop << /PageSize [612 1008] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ 10x14 10in 14in
+@+ ! %%DocumentPaperSizes: 10x14
+@+ %%BeginPaperSize: 10x14
+@+ /setpagedevice where
+@+ { pop << /PageSize [720 1008] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ ledger 17in 11in
+@+ ! %%DocumentPaperSizes: Ledger
+@+ %%BeginPaperSize: Ledger
+@+ /setpagedevice where
+@+ { pop << /PageSize [1224 792] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ tabloid 11in 17in
+@+ ! %%DocumentPaperSizes: Tabloid
+@+ %%BeginPaperSize: Tabloid
+@+ /setpagedevice where
+@+ { pop << /PageSize [792 1224] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ 11x17 11in 17in
+@+ ! %%DocumentPaperSizes: 11x17
+@+ %%BeginPaperSize: 11x17
+@+ /setpagedevice where
+@+ { pop << /PageSize [792 1224] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ a0 841mm 1189mm
+@+ ! %%DocumentPaperSizes: a0
+@+ %%BeginPaperSize: a0
+@+ /setpagedevice where
+@+ { pop << /PageSize [2384 3370] >> setpagedevice }
+@+ { /a0 where { pop a0 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ a1 594mm 841mm
+@+ ! %%DocumentPaperSizes: a1
+@+ %%BeginPaperSize: a1
+@+ /setpagedevice where
+@+ { pop << /PageSize [1684 2384] >> setpagedevice }
+@+ { /a1 where { pop a1 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ a2 420mm 594mm
+@+ ! %%DocumentPaperSizes: a2
+@+ %%BeginPaperSize: a2
+@+ /setpagedevice where
+@+ { pop << /PageSize [1191 1684] >> setpagedevice }
+@+ { /a2 where { pop a2 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ a3 297mm 420mm
+@+ ! %%DocumentPaperSizes: a3
+@+ %%BeginPaperSize: a3
+@+ /setpagedevice where
+@+ { pop << /PageSize [842 1191] >> setpagedevice }
+@+ { /a3 where { pop a3 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ a5 148mm 210mm
+@+ ! %%DocumentPaperSizes: a5
+@+ %%BeginPaperSize: a5
+@+ /setpagedevice where
+@+ { pop << /PageSize [420 595] >> setpagedevice }
+@+ { /a5 where { pop a5 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ a6 105mm 148mm
+@+ ! %%DocumentPaperSizes: a6
+@+ %%BeginPaperSize: a6
+@+ /setpagedevice where
+@+ { pop << /PageSize [298 420] >> setpagedevice }
+@+ { /a6 where { pop a6 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ a7 74mm 105mm
+@+ ! %%DocumentPaperSizes: a7
+@+ %%BeginPaperSize: a7
+@+ /setpagedevice where
+@+ { pop << /PageSize [210 298] >> setpagedevice }
+@+ { /a7 where { pop a7 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ a8 52mm 74mm
+@+ ! %%DocumentPaperSizes: a8
+@+ %%BeginPaperSize: a8
+@+ /setpagedevice where
+@+ { pop << /PageSize [147 210] >> setpagedevice }
+@+ { /a8 where { pop a8 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ a9 37mm 52mm
+@+ ! %%DocumentPaperSizes: a9
+@+ %%BeginPaperSize: a9
+@+ /setpagedevice where
+@+ { pop << /PageSize [105 147] >> setpagedevice }
+@+ { /a9 where { pop a9 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ a10 26mm 37mm
+@+ ! %%DocumentPaperSizes: a10
+@+ %%BeginPaperSize: a10
+@+ /setpagedevice where
+@+ { pop << /PageSize [74 105] >> setpagedevice }
+@+ { /a10 where { pop a10 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ jisb0 1030mm 1456mm
+@+ ! %%DocumentPaperSizes: jisb0
+@+ %%BeginPaperSize: jisb0
+@+ /setpagedevice where
+@+ { pop << /PageSize [2920 4127] >> setpagedevice }
+@+ { /jisb0 where { pop jisb0 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ jisb1 728mm 1030mm
+@+ ! %%DocumentPaperSizes: jisb1
+@+ %%BeginPaperSize: jisb1
+@+ /setpagedevice where
+@+ { pop << /PageSize [2064 2920] >> setpagedevice }
+@+ { /jisb1 where { pop jisb1 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ jisb2 515mm 728mm
+@+ ! %%DocumentPaperSizes: jisb2
+@+ %%BeginPaperSize: jisb2
+@+ /setpagedevice where
+@+ { pop << /PageSize [1460 2064] >> setpagedevice }
+@+ { /jisb2 where { pop jisb2 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ jisb3 364mm 515mm
+@+ ! %%DocumentPaperSizes: jisb3
+@+ %%BeginPaperSize: jisb3
+@+ /setpagedevice where
+@+ { pop << /PageSize [1032 1460] >> setpagedevice }
+@+ { /jisb3 where { pop jisb3 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ jisb4 257mm 364mm
+@+ ! %%DocumentPaperSizes: jisb4
+@+ %%BeginPaperSize: jisb4
+@+ /setpagedevice where
+@+ { pop << /PageSize [729 1032] >> setpagedevice }
+@+ { /jisb4 where { pop jisb4 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ jisb5 182mm 257mm
+@+ ! %%DocumentPaperSizes: jisb5
+@+ %%BeginPaperSize: jisb5
+@+ /setpagedevice where
+@+ { pop << /PageSize [516 729] >> setpagedevice }
+@+ { /jisb5 where { pop jisb5 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ jisb6 128mm 182mm
+@+ ! %%DocumentPaperSizes: jisb6
+@+ %%BeginPaperSize: jisb6
+@+ /setpagedevice where
+@+ { pop << /PageSize [363 516] >> setpagedevice }
+@+ { /jisb6 where { pop jisb6 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ jisb7 91mm 128mm
+@+ ! %%DocumentPaperSizes: jisb7
+@+ %%BeginPaperSize: jisb7
+@+ /setpagedevice where
+@+ { pop << /PageSize [258 363] >> setpagedevice }
+@+ { /jisb7 where { pop jisb7 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ jisb8 64mm 91mm
+@+ ! %%DocumentPaperSizes: jisb8
+@+ %%BeginPaperSize: jisb8
+@+ /setpagedevice where
+@+ { pop << /PageSize [181 258] >> setpagedevice }
+@+ { /jisb8 where { pop jisb8 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ b0 1000mm 1414mm
+@+ ! %%DocumentPaperSizes: b0
+@+ %%BeginPaperSize: b0
+@+ /setpagedevice where
+@+ { pop << /PageSize [2835 4008] >> setpagedevice }
+@+ { /b0 where { pop b0 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ b1 707mm 1000mm
+@+ ! %%DocumentPaperSizes: b1
+@+ %%BeginPaperSize: b1
+@+ /setpagedevice where
+@+ { pop << /PageSize [2004 2835] >> setpagedevice }
+@+ { /b1 where { pop b1 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ b2 500mm 707mm
+@+ ! %%DocumentPaperSizes: b2
+@+ %%BeginPaperSize: b2
+@+ /setpagedevice where
+@+ { pop << /PageSize [1417 2004] >> setpagedevice }
+@+ { /b2 where { pop b2 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ b3 353mm 500mm
+@+ ! %%DocumentPaperSizes: b3
+@+ %%BeginPaperSize: b3
+@+ /setpagedevice where
+@+ { pop << /PageSize [1001 1417] >> setpagedevice }
+@+ { /b3 where { pop b3 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ b4 250mm 353mm
+@+ ! %%DocumentPaperSizes: b4
+@+ %%BeginPaperSize: b4
+@+ /setpagedevice where
+@+ { pop << /PageSize [709 1001] >> setpagedevice }
+@+ { /b4 where { pop b4 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ b5 176mm 250mm
+@+ ! %%DocumentPaperSizes: b5
+@+ %%BeginPaperSize: b5
+@+ /setpagedevice where
+@+ { pop << /PageSize [499 709] >> setpagedevice }
+@+ { /b5 where { pop b5 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ b6 125mm 176mm
+@+ ! %%DocumentPaperSizes: b6
+@+ %%BeginPaperSize: b6
+@+ /setpagedevice where
+@+ { pop << /PageSize [354 499] >> setpagedevice }
+@+ { /b6 where { pop b6 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ c5 162mm 229mm
+@+ ! %%DocumentPaperSizes: c5
+@+ %%BeginPaperSize: c5
+@+ /setpagedevice where
+@+ { pop << /PageSize [459 649] >> setpagedevice }
+@+ { /c5 where { pop c5 } if }
+@+ ifelse
+@+ %%EndPaperSize
+
+@ DL 110mm 220mm
+@+ ! %%DocumentPaperSizes: DL
+@+ %%BeginPaperSize: DL
+@+ /setpagedevice where
+@+ { pop << /PageSize [312 624] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ Comm10 105mm 241mm
+@+ ! %%DocumentPaperSizes: Comm10
+@+ %%BeginPaperSize: Comm10
+@+ /setpagedevice where
+@+ { pop << /PageSize [297 684] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ Monarch 98.4mm 190.5mm
+@+ ! %%DocumentPaperSizes: Monarch
+@+ %%BeginPaperSize: Monarch
+@+ /setpagedevice where
+@+ { pop << /PageSize [279 540] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ archE 36in 48in
+@+ ! %%DocumentPaperSizes: archE
+@+ %%BeginPaperSize: archE
+@+ /setpagedevice where
+@+ { pop << /PageSize [2592 3456] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ archD 24in 36in
+@+ ! %%DocumentPaperSizes: archD
+@+ %%BeginPaperSize: archD
+@+ /setpagedevice where
+@+ { pop << /PageSize [1728 2592] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ archC 18in 24in
+@+ ! %%DocumentPaperSizes: archC
+@+ %%BeginPaperSize: archC
+@+ /setpagedevice where
+@+ { pop << /PageSize [1296 1728] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ archB 12in 18in
+@+ ! %%DocumentPaperSizes: archB
+@+ %%BeginPaperSize: archB
+@+ /setpagedevice where
+@+ { pop << /PageSize [864 1296] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ archA 9in 12in
+@+ ! %%DocumentPaperSizes: archA
+@+ %%BeginPaperSize: archA
+@+ /setpagedevice where
+@+ { pop << /PageSize [648 864] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ flsa 216mm 330.2mm
+@+ ! %%DocumentPaperSizes: flsa
+@+ %%BeginPaperSize: flsa
+@+ /setpagedevice where
+@+ { pop << /PageSize [612 936] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ flse 216mm 330.2mm
+@+ ! %%DocumentPaperSizes: flse
+@+ %%BeginPaperSize: flse
+@+ /setpagedevice where
+@+ { pop << /PageSize [612 936] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ csheet 431.8mm 558.8mm
+@+ ! %%DocumentPaperSizes: csheet
+@+ %%BeginPaperSize: csheet
+@+ /setpagedevice where
+@+ { pop << /PageSize [1224 1584] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ dsheet 558.8mm 863.6mm
+@+ ! %%DocumentPaperSizes: dsheet
+@+ %%BeginPaperSize: dsheet
+@+ /setpagedevice where
+@+ { pop << /PageSize [1584 2448] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+@ esheet 863.6mm 1117.6mm
+@+ ! %%DocumentPaperSizes: esheet
+@+ %%BeginPaperSize: esheet
+@+ /setpagedevice where
+@+ { pop << /PageSize [2448 3168] >> setpagedevice }
+@+ if
+@+ %%EndPaperSize
+
+% use -t unknown with a \special{papersize=...} for a nonstandard page size.
+@ unknown 0in 0in
+@+ % dvips-unknown
+@+ statusdict /setpageparams known { hsize vsize 0 1 statusdict begin {
+@+ setpageparams } stopped end } { true } ifelse { statusdict /setpage known
+@+ { hsize vsize 1 statusdict begin { setpage } stopped pop end } if } if
+
+% use -t nopaper to get no paper size stuff in the output at all.
+% This should remain as the last thing in the file, because the first
+% 0in 0in entry is chosen when there is nothing better; ordinarily, we
+% want to that to be "unknown", so that the correct nonstandard paper
+% size is output, instead of just being omitted.
+% http://groups.google.com/group/fr.comp.text.tex/browse_thread/thread/1b08961cf9b8a5ab/6b1d0b32443905e3
+% and mactex mailing list thread from 24 Sep 2009 11:36:26.
+@ nopaper 0in 0in
+@+ % dvips-nopaper
diff --git a/Build/source/texk/dvipsk/configure b/Build/source/texk/dvipsk/configure
new file mode 100755
index 00000000000..4b719ff3ed1
--- /dev/null
+++ b/Build/source/texk/dvipsk/configure
@@ -0,0 +1,17671 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for dvipsk (TeX Live) 2021.1.
+#
+# Report bugs to <tex-k@tug.org>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+
+ test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org and tex-k@tug.org
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='dvipsk (TeX Live)'
+PACKAGE_TARNAME='dvipsk--tex-live-'
+PACKAGE_VERSION='2021.1'
+PACKAGE_STRING='dvipsk (TeX Live) 2021.1'
+PACKAGE_BUGREPORT='tex-k@tug.org'
+PACKAGE_URL=''
+
+ac_unique_file="dvips.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+enable_option_checking=no
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+subdirs
+encdir
+KPATHSEA_RULE
+KPATHSEA_DEPEND
+KPATHSEA_LIBS
+KPATHSEA_INCLUDES
+PKG_CONFIG
+CPP
+LT_SYS_LIBRARY_PATH
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+MANIFEST_TOOL
+RANLIB
+ac_ct_AR
+AR
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+EGREP
+GREP
+SED
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+LIBTOOL
+OBJDUMP
+DLLTOOL
+AS
+WARNING_CFLAGS
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL
+am__quote'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_silent_rules
+enable_maintainer_mode
+enable_dependency_tracking
+enable_compiler_warnings
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_aix_soname
+with_gnu_ld
+with_sysroot
+enable_libtool_lock
+enable_largefile
+with_system_kpathsea
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+LT_SYS_LIBRARY_PATH
+CPP'
+ac_subdirs_all='squeeze'
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures dvipsk (TeX Live) 2021.1 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root
+ [DATAROOTDIR/doc/dvipsk--tex-live-]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of dvipsk (TeX Live) 2021.1:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
+ --enable-maintainer-mode
+ enable make rules and dependencies not useful (and
+ sometimes confusing) to the casual installer
+ --enable-dependency-tracking
+ do not reject slow dependency extractors
+ --disable-dependency-tracking
+ speeds up one-time build
+ --enable-compiler-warnings=[no|min|yes|max|all]
+ Turn on compiler warnings [default: yes if
+ maintainer-mode, min otherwise]
+ --enable-shared[=PKGS] build shared libraries [default=yes]
+ --enable-static[=PKGS] build static libraries [default=yes]
+ --enable-fast-install[=PKGS]
+ optimize for fast installation [default=yes]
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --disable-largefile omit support for large files
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-aix-soname=aix|svr4|both
+ shared library versioning (aka "SONAME") variant to
+ provide on AIX, [default=aix].
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
+ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the
+ compiler's sysroot if not specified).
+ --with-system-kpathsea use installed kpathsea headers and library (requires
+ pkg-config)
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ LT_SYS_LIBRARY_PATH
+ User-defined run-time library search path.
+ CPP C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <tex-k@tug.org>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+dvipsk (TeX Live) configure 2021.1
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ---------------------------- ##
+## Report this to tex-k@tug.org ##
+## ---------------------------- ##"
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_type
+
+# ac_fn_c_find_intX_t LINENO BITS VAR
+# -----------------------------------
+# Finds a signed integer type with width BITS, setting cache variable VAR
+# accordingly.
+ac_fn_c_find_intX_t ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5
+$as_echo_n "checking for int$2_t... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ # Order is important - never check a type that is potentially smaller
+ # than half of the expected target width.
+ for ac_type in int$2_t 'int' 'long int' \
+ 'long long int' 'short int' 'signed char'; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ enum { N = $2 / 2 - 1 };
+int
+main ()
+{
+static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ enum { N = $2 / 2 - 1 };
+int
+main ()
+{
+static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1)
+ < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ case $ac_type in #(
+ int$2_t) :
+ eval "$3=yes" ;; #(
+ *) :
+ eval "$3=\$ac_type" ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if eval test \"x\$"$3"\" = x"no"; then :
+
+else
+ break
+fi
+ done
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_find_intX_t
+
+# ac_fn_c_find_uintX_t LINENO BITS VAR
+# ------------------------------------
+# Finds an unsigned integer type with width BITS, setting cache variable VAR
+# accordingly.
+ac_fn_c_find_uintX_t ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
+$as_echo_n "checking for uint$2_t... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ # Order is important - never check a type that is potentially smaller
+ # than half of the expected target width.
+ for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
+ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ case $ac_type in #(
+ uint$2_t) :
+ eval "$3=yes" ;; #(
+ *) :
+ eval "$3=\$ac_type" ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if eval test \"x\$"$3"\" = x"no"; then :
+
+else
+ break
+fi
+ done
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_find_uintX_t
+
+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
+# ---------------------------------------------
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+# accordingly.
+ac_fn_c_check_decl ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+ (void) $as_decl_use;
+#else
+ (void) $as_decl_name;
+#endif
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_decl
+
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if eval \${$4+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ eval "$4=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$4
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_member
+
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid; break
+else
+ as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+ if test $ac_lo -le $ac_mid; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=$ac_mid; break
+else
+ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+ if test $ac_mid -le $ac_hi; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+ as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid
+else
+ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+ FILE *f = fopen ("conftest.val", "w");
+ if (! f)
+ return 1;
+ if (($2) < 0)
+ {
+ long int i = longval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%ld", i);
+ }
+ else
+ {
+ unsigned long int i = ulongval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%lu", i);
+ }
+ /* Do not output a trailing newline, as this causes \r\n confusion
+ on some platforms. */
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+ ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+ fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_compute_int
+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 dvipsk (TeX Live) $as_me 2021.1, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+ac_aux_dir=
+for ac_dir in ../../build-aux "$srcdir"/../../build-aux; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../build-aux \"$srcdir\"/../../build-aux" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+
+
+# Common code for all programs using libkpathsea.
+am__api_version='1.16'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# 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_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+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 (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ 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`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+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`
+
+if test x"${MISSING+set}" != xset; then
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != 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:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$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:${as_lineno-$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
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
+ (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ case $?:`cat confinc.out 2>/dev/null` in #(
+ '0:this is the am__doit target') :
+ case $s in #(
+ BSD) :
+ am__include='.include' am__quote='"' ;; #(
+ *) :
+ am__include='include' am__quote='' ;;
+esac ;; #(
+ *) :
+ ;;
+esac
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+$as_echo "${_am_result}" >&6; }
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ 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
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ 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.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | 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
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $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 $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
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+# Check whether --enable-compiler-warnings was given.
+if test "${enable_compiler_warnings+set}" = set; then :
+ enableval=$enable_compiler_warnings;
+fi
+case $enable_compiler_warnings in #(
+ no | min | yes | max | all) :
+ ;; #(
+ *) :
+ if test "x$enable_maintainer_mode" = xyes; then :
+ enable_compiler_warnings=yes
+else
+ enable_compiler_warnings=min
+fi ;;
+esac
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.4.6'
+macro_revision='2.4.6'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO ""
+}
+
+case $ECHO in
+ printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+ print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi
+fi
+
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in dumpbin "link -dump"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in dumpbin "link -dump"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test yes != "$GCC"; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test yes = "$GCC"; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd* | bitrig*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+os2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+ fi
+ ;;
+ esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ DLLTOOL=$ac_ct_DLLTOOL
+ fi
+else
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh;
+ # decide which one to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd=$ECHO
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in ar
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AR" && break
+ done
+fi
+if test -z "$AR"; then
+ ac_ct_AR=$AR
+ for ac_prog in ar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_AR" && break
+done
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ AR=$ac_ct_AR
+ fi
+fi
+
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ar_at_file=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -eq "$ac_status"; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -ne "$ac_status"; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test no = "$lt_cv_ar_at_file"; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$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
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test ia64 = "$host_cpu"; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Gets list of data symbols to import.
+ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+ # Adjust the below global symbol transforms to fixup imported variables.
+ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
+ lt_c_name_lib_hook="\
+ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
+ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
+else
+ # Disable hooks by default.
+ lt_cv_sys_global_symbol_to_import=
+ lt_cdecl_hook=
+ lt_c_name_hook=
+ lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function,
+ # D for any global variable and I for any imported variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS=conftstm.$ac_objext
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test yes = "$pipe_works"; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+ withval=$with_sysroot;
+else
+ with_sysroot=no
+fi
+
+
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+$as_echo "$with_sysroot" >&6; }
+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+ ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+$as_echo_n "checking for a working dd... " >&6; }
+if ${ac_cv_path_lt_DD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+if test -z "$lt_DD"; then
+ ac_path_lt_DD_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in dd; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_lt_DD" || continue
+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi
+ $ac_path_lt_DD_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_lt_DD"; then
+ :
+ fi
+else
+ ac_cv_path_lt_DD=$lt_DD
+fi
+
+rm -f conftest.i conftest2.i conftest.out
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+$as_echo "$ac_cv_path_lt_DD" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+$as_echo_n "checking how to truncate binary pipes... " >&6; }
+if ${lt_cv_truncate_bin+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+$as_echo "$lt_cv_truncate_bin" >&6; }
+
+
+
+
+
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in $*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out what ABI is being produced by ac_compile, and set mode
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE=32
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE=64
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+mips64*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ emul=elf
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ emul="${emul}32"
+ ;;
+ *64-bit*)
+ emul="${emul}64"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *MSB*)
+ emul="${emul}btsmip"
+ ;;
+ *LSB*)
+ emul="${emul}ltsmip"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *N32*)
+ emul="${emul}n32"
+ ;;
+ esac
+ LD="${LD-ld} -m $emul"
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly. Note that the listed cases only cover the
+ # situations where additional linker options are needed (such as when
+ # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+ # vice versa); the common cases where no linker options are needed do
+ # not appear in the list.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test yes != "$lt_cv_cc_needs_belf"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS=$SAVE_CFLAGS
+ fi
+ ;;
+*-*solaris*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*)
+ case $host in
+ i?86-*-solaris*|x86_64-*-solaris*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ sparc*-*-solaris*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
+ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+ LD=${LD-ld}_sol2
+ fi
+ ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks=$enable_libtool_lock
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$MANIFEST_TOOL"; then
+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+ # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_MANIFEST_TOOL"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_MANIFEST_TOOL" = x; then
+ MANIFEST_TOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+ fi
+else
+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&5
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test yes != "$lt_cv_path_mainfest_tool"; then
+ MANIFEST_TOOL=:
+fi
+
+
+
+
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "$LT_MULTI_MODULE"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ # If there is a non-empty error log, and "single_module"
+ # appears in it, assume the flag caused a linker warning
+ if test -s conftest.err && $GREP single_module conftest.err; then
+ cat conftest.err >&5
+ # Otherwise, if the output was created with a 0 exit code from
+ # the compiler, it worked.
+ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
+ echo "$RANLIB libconftest.a" >&5
+ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -s conftest.err && $GREP force_load conftest.err; then
+ cat conftest.err >&5
+ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ 10.[012][,.]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test yes = "$lt_cv_apple_cc_single_mod"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test yes = "$lt_cv_ld_exported_symbols_list"; then
+ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+ fi
+ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x$2 in
+ x)
+ ;;
+ *:)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+ ;;
+ x:*)
+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+ ;;
+ *)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+##tldbg KPSE_COMMON: dvipsk ().
+##tldbg KPSE_BASIC: Remember dvipsk () as Kpse_Package (for future messages).
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='dvipsk--tex-live-'
+ VERSION='2021.1'
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$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.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts prototypes" >&5
+$as_echo_n "checking whether the compiler accepts prototypes... " >&6; }
+if ${kb_cv_c_prototypes+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+int
+main ()
+{
+extern void foo(int i,...);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ kb_cv_c_prototypes=yes
+else
+ kb_cv_c_prototypes=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kb_cv_c_prototypes" >&5
+$as_echo "$kb_cv_c_prototypes" >&6; }
+if test "x$kb_cv_c_prototypes" = xno; then
+ as_fn_error $? "Sorry, your compiler does not understand prototypes." "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5
+$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; }
+if ${kpse_cv_warning_cflags+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$GCC" = xyes; then
+ kpse_cv_warning_cflags=
+if test "x$enable_compiler_warnings" != xno; then
+ kpse_cv_warning_cflags="-Wimplicit -Wreturn-type"
+ case `$CC -dumpversion` in #(
+ 3.4.* | 4.* | 5.*) :
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wdeclaration-after-statement" ;; #(
+ *) :
+ ;;
+esac
+ case `$CC -dumpversion` in #(
+ 3.[234].* | 4.* | 5.*) :
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wno-unknown-pragmas" ;; #(
+ *) :
+ ;;
+esac
+ if test "x$enable_compiler_warnings" != xmin; then
+ kpse_cv_warning_cflags="-Wall -Wunused $kpse_cv_warning_cflags"
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wmissing-prototypes -Wmissing-declarations"
+ if test "x$enable_compiler_warnings" != xyes; then
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wparentheses -Wswitch -Wtrigraphs -Wpointer-arith"
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wcast-qual -Wcast-align -Wwrite-strings"
+ case `$CC -dumpversion` in #(
+ 3.4.* | 4.* | 5.*) :
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wold-style-definition" ;; #(
+ *) :
+ ;;
+esac
+ if test "x$enable_compiler_warnings" != xmax; then
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wshadow"
+ fi
+ fi
+ fi
+fi
+elif test "x$enable_compiler_warnings" = xno; then
+ kpse_cv_warning_cflags=
+else
+ kpse_cv_warning_cflags= # FIXME: warning flags for non-GNU C compilers
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_warning_cflags" >&5
+$as_echo "$kpse_cv_warning_cflags" >&6; }
+WARNING_CFLAGS=$kpse_cv_warning_cflags
+
+
+
+
+
+
+
+
+
+
+
+
+# Set options
+enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
+set dummy ${ac_tool_prefix}as; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AS"; then
+ ac_cv_prog_AS="$AS" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AS="${ac_tool_prefix}as"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AS=$ac_cv_prog_AS
+if test -n "$AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+$as_echo "$AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AS"; then
+ ac_ct_AS=$AS
+ # Extract the first word of "as", so it can be a program name with args.
+set dummy as; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AS"; then
+ ac_cv_prog_ac_ct_AS="$ac_ct_AS" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AS="as"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AS=$ac_cv_prog_ac_ct_AS
+if test -n "$ac_ct_AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
+$as_echo "$ac_ct_AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AS" = x; then
+ AS="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ AS=$ac_ct_AS
+ fi
+else
+ AS="$ac_cv_prog_AS"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ DLLTOOL=$ac_ct_DLLTOOL
+ fi
+else
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+ ;;
+esac
+
+test -z "$AS" && AS=as
+
+
+
+
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+ enable_dlopen=no
+
+
+
+ # Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+ # Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; lt_p=${PACKAGE-default}
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ pic_mode=default
+fi
+
+
+
+
+
+
+
+
+ # Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+ shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[5-9]*,yes)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+
+# Check whether --with-aix-soname was given.
+if test "${with_aix_soname+set}" = set; then :
+ withval=$with_aix_soname; case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname
+else
+ if ${lt_cv_with_aix_soname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_with_aix_soname=aix
+fi
+
+ with_aix_soname=$lt_cv_with_aix_soname
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+$as_echo "$with_aix_soname" >&6; }
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/${ac_tool_prefix}file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC=$CC
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test yes = "$GCC"; then
+ case $cc_basename in
+ nvcc*)
+ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+ *)
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $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.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+
+ if test yes = "$GCC"; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ lt_prog_compiler_static=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ lt_prog_compiler_wl='-Xlinker '
+ if test -n "$lt_prog_compiler_pic"; then
+ lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+ fi
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ case $cc_basename in
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='$wl-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ # old Intel for x86_64, which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ *Sun\ F* | *Sun*Fortran*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Qoption ld '
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Intel*\ [CF]*Compiler*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ *Portland\ Group*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms that do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $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.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_pic_works"; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_static_works"; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test no = "$hard_links"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ' (' and ')$', so one must not match beginning or
+ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+ # as well as any symbol that contains 'd'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test yes != "$GCC"; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test yes = "$with_gnu_ld"; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+ *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test yes = "$lt_use_gnu_ld_interface"; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='$wl'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ export_dynamic_flag_spec='$wl--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test ia64 != "$host_cpu"; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ export_dynamic_flag_spec='$wl--export-all-symbols'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ haiku*)
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ link_all_deplibs=yes
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test linux-dietlibc = "$host_os"; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test no = "$tmp_diet"
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ tcc*)
+ export_dynamic_flag_spec='-rdynamic'
+ ;;
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test no = "$ld_shlibs"; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # traditional, no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ ;;
+ esac
+
+ if test yes = "$GCC"; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag="$shared_flag "'$wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ export_dynamic_flag_spec='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' $wl-bernotok'
+ allow_undefined_flag=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ fi
+ archive_cmds_need_lc=yes
+ archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl*)
+ # Native MSVC
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ file_list_spec='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+ enable_shared_with_static_runtimes=yes
+ exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ old_postinstall_cmds='chmod 644 $oldlib'
+ postlink_cmds='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC wrapper
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ enable_shared_with_static_runtimes=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ if test yes = "$lt_cv_ld_force_load"; then
+ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+ else
+ whole_archive_flag_spec=''
+ fi
+ link_all_deplibs=yes
+ allow_undefined_flag=$_lt_dar_allow_undefined
+ case $cc_basename in
+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test yes = "$_lt_dar_can_shared"; then
+ output_verbose_link_cmd=func_echo_all
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+ archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test yes = "$GCC"; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='$wl-E'
+ ;;
+
+ hpux10*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler__b=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -b"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler__b=yes
+ fi
+ else
+ lt_cv_prog_compiler__b=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test yes = "$lt_cv_prog_compiler__b"; then
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+ ;;
+ esac
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo (void) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_irix_exported_symbol=yes
+else
+ lt_cv_irix_exported_symbol=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+ if test yes = "$lt_cv_irix_exported_symbol"; then
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ linux*)
+ case $cc_basename in
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ ld_shlibs=yes
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ else
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ osf3*)
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test yes = "$GCC"; then
+ wlarc='$wl'
+ archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='$wl'
+ archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'. GCC discards it without '$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test yes = "$GCC"; then
+ whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test sequent = "$host_vendor"; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='$wl-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='$wl-z,text'
+ allow_undefined_flag='$wl-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test sni = "$host_vendor"; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='$wl-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test no = "$ld_shlibs" && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test yes,yes = "$GCC,$enable_shared"; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test yes = "$GCC"; then
+ case $host_os in
+ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+ *) lt_awk_arg='/^libraries:/' ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+ *) lt_sed_strip_eq='s|=/|/|g' ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary...
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ # ...but if some path component already ends with the multilib dir we assume
+ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+ case "$lt_multi_os_dir; $lt_search_path_spec " in
+ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+ lt_multi_os_dir=
+ ;;
+ esac
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+ elif test -n "$lt_multi_os_dir"; then
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+ lt_foo = "";
+ lt_count = 0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo = "/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+
+
+case $host_os in
+aix3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 supports IA64
+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line '#! .'. This would cause the generated library to
+ # depend on '.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # Using Import Files as archive members, it is possible to support
+ # filename-based versioning of shared library archives on AIX. While
+ # this would work for both with and without runtime linking, it will
+ # prevent static linking of such archives. So we do filename-based
+ # shared library versioning with .so extension only, which is used
+ # when both runtime linking and shared linking is enabled.
+ # Unfortunately, runtime linking may impact performance, so we do
+ # not want this to be the default eventually. Also, we use the
+ # versioned .so libs for executables only if there is the -brtl
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+ # To allow for filename-based versioning support, we need to create
+ # libNAME.so.V as an archive file, containing:
+ # *) an Import File, referring to the versioned filename of the
+ # archive as well as the shared archive member, telling the
+ # bitwidth (32 or 64) of that shared object, and providing the
+ # list of exported symbols of that shared object, eventually
+ # decorated with the 'weak' keyword
+ # *) the shared object with the F_LOADONLY flag set, to really avoid
+ # it being seen by the linker.
+ # At run time we better use the real file rather than another symlink,
+ # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+ case $with_aix_soname,$aix_use_runtimelinking in
+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ aix,yes) # traditional libtool
+ dynamic_linker='AIX unversionable lib.so'
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ aix,no) # traditional AIX only
+ dynamic_linker='AIX lib.a(lib.so.V)'
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ svr4,*) # full svr4 only
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,yes) # both, prefer svr4
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # unpreferred sharedlib libNAME.a needs extra handling
+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,no) # both, prefer aix
+ dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+ ;;
+ esac
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='$libname$shared_ext'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl*)
+ # Native MSVC
+ libname_spec='$name'
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ library_names_spec='$libname.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec=$LIB
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC wrapper
+ library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[23].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+haiku*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ if test 32 = "$HPUX_IA64_MODE"; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+ fi
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[3-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+linux*android*)
+ version_type=none # Android doesn't support versioned libraries.
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext'
+ soname_spec='$libname$release$shared_ext'
+ finish_cmds=
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ dynamic_linker='Android linker'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Ideally, we could use ldconfig to report *all* directores which are
+ # searched for libraries, however this is still not possible. Aside from not
+ # being certain /sbin/ldconfig is available, command
+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+ # even though it is searched at run-time. Try to do the best guess by
+ # appending ld.so.conf contents (and includes) to the search path.
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd* | bitrig*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec=/usr/lib
+ need_lib_prefix=no
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ need_version=no
+ else
+ need_version=yes
+ fi
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+os2*)
+ libname_spec='$name'
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+ # OS/2 can only load a DLL with a base name of 8 characters or less.
+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+ v=$($ECHO $release$versuffix | tr -d .-);
+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+ $ECHO $n$v`$shared_ext'
+ library_names_spec='${libname}_dll.$libext'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=BEGINLIBPATH
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test yes = "$with_gnu_ld"; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+ soname_spec='$libname$shared_ext.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=sco
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test yes = "$with_gnu_ld"; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test yes = "$hardcode_automatic"; then
+
+ # We can hardcode non-existent directories.
+ if test no != "$hardcode_direct" &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
+ test no != "$hardcode_minus_L"; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test relink = "$hardcode_action" ||
+ test yes = "$inherit_rpath"; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+ test no = "$enable_shared"; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+ lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP"; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report what library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+ enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if ${ac_cv_sys_file_offset_bits+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+if ${ac_cv_sys_large_files+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+$as_echo "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_source+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h> /* for off_t */
+ #include <stdio.h>
+int
+main ()
+{
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_sys_largefile_source=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _LARGEFILE_SOURCE 1
+#include <sys/types.h> /* for off_t */
+ #include <stdio.h>
+int
+main ()
+{
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_sys_largefile_source=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_cv_sys_largefile_source=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
+$as_echo "$ac_cv_sys_largefile_source" >&6; }
+case $ac_cv_sys_largefile_source in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
+_ACEOF
+;;
+esac
+rm -rf conftest*
+
+# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+# in glibc 2.1.3, but that breaks too many other things.
+# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+if test $ac_cv_sys_largefile_source != unknown; then
+
+$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
+
+fi
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
+if eval \${$as_ac_Header+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_ac_Header=yes"
+else
+ eval "$as_ac_Header=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dir; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' x; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether closedir returns void" >&5
+$as_echo_n "checking whether closedir returns void... " >&6; }
+if ${ac_cv_func_closedir_void+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_closedir_void=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header_dirent>
+#ifndef __cplusplus
+int closedir ();
+#endif
+
+int
+main ()
+{
+return closedir (opendir (".")) != 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_closedir_void=no
+else
+ ac_cv_func_closedir_void=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_closedir_void" >&5
+$as_echo "$ac_cv_func_closedir_void" >&6; }
+if test $ac_cv_func_closedir_void = yes; then
+
+$as_echo "#define CLOSEDIR_VOID 1" >>confdefs.h
+
+fi
+
+for ac_header in assert.h float.h limits.h pwd.h stdlib.h sys/param.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_func in putenv
+do :
+ ac_fn_c_check_func "$LINENO" "putenv" "ac_cv_func_putenv"
+if test "x$ac_cv_func_putenv" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_PUTENV 1
+_ACEOF
+
+fi
+done
+
+for ac_func in getcwd getwd memcmp memcpy mkstemp mktemp strchr strrchr
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+if ${ac_cv_c_const+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this sort of thing. */
+ typedef int charset[2];
+ const charset cs = { 0, 0 };
+ /* SunOS 4.1.1 cc rejects this. */
+ char const *const *pcpcc;
+ char **ppc;
+ /* NEC SVR4.0.2 mips cc rejects this. */
+ struct point {int x, y;};
+ static struct point const zero = {0,0};
+ /* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in
+ an arm of an if-expression whose if-part is not a constant
+ expression */
+ const char *g = "string";
+ pcpcc = &g + (g ? g-g : 0);
+ /* HPUX 7.0 cc rejects these. */
+ ++pcpcc;
+ ppc = (char**) pcpcc;
+ pcpcc = (char const *const *) ppc;
+ { /* SCO 3.2v4 cc rejects this sort of thing. */
+ char tx;
+ char *t = &tx;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+ if (s) return 0;
+ }
+ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+ }
+ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+ }
+ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; } bx;
+ struct s *b = &bx; b->j = 5;
+ }
+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+ if (!foo) return 0;
+ }
+ return !cs[0] && !zero.x;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_const=yes
+else
+ ac_cv_c_const=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+$as_echo "$ac_cv_c_const" >&6; }
+if test $ac_cv_c_const = no; then
+
+$as_echo "#define const /**/" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+$as_echo_n "checking for inline... " >&6; }
+if ${ac_cv_c_inline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_inline=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_inline" != no && break
+done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+$as_echo "$ac_cv_c_inline" >&6; }
+
+case $ac_cv_c_inline in
+ inline | yes) ;;
+ *)
+ case $ac_cv_c_inline in
+ no) ac_val=;;
+ *) ac_val=$ac_cv_c_inline;;
+ esac
+ cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+ ;;
+esac
+
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
+_ACEOF
+
+fi
+
+ac_fn_c_find_intX_t "$LINENO" "64" "ac_cv_c_int64_t"
+case $ac_cv_c_int64_t in #(
+ no|yes) ;; #(
+ *)
+
+cat >>confdefs.h <<_ACEOF
+#define int64_t $ac_cv_c_int64_t
+_ACEOF
+;;
+esac
+
+ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t"
+case $ac_cv_c_uint64_t in #(
+ no|yes) ;; #(
+ *)
+
+$as_echo "#define _UINT64_T 1" >>confdefs.h
+
+
+cat >>confdefs.h <<_ACEOF
+#define uint64_t $ac_cv_c_uint64_t
+_ACEOF
+;;
+ esac
+
+case :$ac_cv_c_int64_t:$ac_cv_c_int64_t: in #(
+ *':no:'*) :
+ as_fn_error $? "Sorry, your compiler does not support 64-bit integer types." "$LINENO" 5 ;; #(
+ *) :
+ ;;
+esac
+ac_fn_c_check_decl "$LINENO" "isascii" "ac_cv_have_decl_isascii" "#include <ctype.h>
+"
+if test "x$ac_cv_have_decl_isascii" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISASCII $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_member "$LINENO" "struct stat" "st_mtim" "ac_cv_member_struct_stat_st_mtim" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_mtim" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_MTIM 1
+_ACEOF
+
+
+fi
+
+
+if test "x$host_alias" != x && test "x$build_alias" = x; then :
+ as_fn_error $? "when cross-compiling you must specify both --host and --build." "$LINENO" 5
+fi
+eval kpse_build_alias=\${build_alias-$build}
+
+
+ac_config_headers="$ac_config_headers c-auto.h:c-auto.in"
+
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
+$as_echo_n "checking size of int... " >&6; }
+if ${ac_cv_sizeof_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_int" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (int)
+See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_sizeof_int=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
+$as_echo "$ac_cv_sizeof_int" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pow" >&5
+$as_echo_n "checking for library containing pow... " >&6; }
+if ${ac_cv_search_pow+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pow ();
+int
+main ()
+{
+return pow ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' m; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_pow=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_pow+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_pow+:} false; then :
+
+else
+ ac_cv_search_pow=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pow" >&5
+$as_echo "$ac_cv_search_pow" >&6; }
+ac_res=$ac_cv_search_pow
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
+kpse_save_CPPFLAGS=$CPPFLAGS
+kpse_save_LIBS=$LIBS
+
+##tldbg _KPSE_INIT: Initialize TL infrastructure.
+kpse_BLD=`(cd "./../../." && pwd)`
+kpse_SRC=`(cd "$srcdir/../../." && pwd)`
+
+##tldbg _KPSE_USE_LIBTOOL: Generate a libtool script for use in configure tests.
+: ${CONFIG_LT=./config.lt}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_LT" >&5
+$as_echo "$as_me: creating $CONFIG_LT" >&6;}
+as_write_fail=0
+cat >"$CONFIG_LT" <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate a libtool stub with the current configuration.
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>"$CONFIG_LT" <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## --------------------------------- ##
+## Main body of "$CONFIG_LT" script. ##
+## --------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x "$CONFIG_LT"
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+lt_cl_silent=false
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+
+lt_cl_help="\
+'$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $0 [OPTIONS]
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+dvipsk (TeX Live) config.lt 2021.1
+configured by $0, generated by GNU Autoconf 2.69.
+
+Copyright (C) 2011 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test 0 != $#
+do
+ case $1 in
+ --version | --v* | -V )
+ echo "$lt_cl_version"; exit 0 ;;
+ --help | --h* | -h )
+ echo "$lt_cl_help"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --quiet | --q* | --silent | --s* | -q )
+ lt_cl_silent=: ;;
+
+ -*) as_fn_error $? "unrecognized option: $1
+Try '$0 --help' for more information." "$LINENO" 5 ;;
+
+ *) as_fn_error $? "unrecognized argument: $1
+Try '$0 --help' for more information." "$LINENO" 5 ;;
+ esac
+ shift
+done
+
+if $lt_cl_silent; then
+ exec 6>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in AS \
+DLLTOOL \
+OBJDUMP \
+SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+deplibs_check_method \
+file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+sharedlib_from_linklib_cmd \
+AR \
+AR_FLAGS \
+archiver_list_spec \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
+nm_file_list_spec \
+lt_cv_truncate_bin \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_pic \
+lt_prog_compiler_wl \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+MANIFEST_TOOL \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_separator \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postlink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $ofile" >&5
+$as_echo "$as_me: creating $ofile" >&6;}
+
+
+ # See if we are running on zsh, and set the options that allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile=${ofile}T
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool 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 of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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, see <http://www.gnu.org/licenses/>.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=''
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Assembler program.
+AS=$lt_AS
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Object dumper program.
+OBJDUMP=$lt_OBJDUMP
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
+# The archiver.
+AR=$lt_AR
+
+# Flags to create an archive.
+AR_FLAGS=$lt_AR_FLAGS
+
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and where our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x$2 in
+ x)
+ ;;
+ *:)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+ ;;
+ x:*)
+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+ ;;
+ *)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in $*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+
+as_fn_exit 0
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure. Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+lt_cl_success=:
+test yes = "$silent" &&
+ lt_config_lt_args="$lt_config_lt_args --quiet"
+exec 5>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec 5>>config.log
+$lt_cl_success || as_fn_exit 1
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ac_link="./libtool --mode=link --tag=CC $ac_link"
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$PKG_CONFIG"; then
+ ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+PKG_CONFIG=$ac_cv_prog_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_PKG_CONFIG"; then
+ ac_ct_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_PKG_CONFIG"; then
+ ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG
+if test -n "$ac_ct_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_PKG_CONFIG" >&5
+$as_echo "$ac_ct_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_PKG_CONFIG" = x; then
+ PKG_CONFIG="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ PKG_CONFIG=$ac_ct_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_prog_PKG_CONFIG"
+fi
+
+##tldbg _KPSE_LIB_FLAGS: Setup kpathsea (-lkpathsea) flags.
+echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=kpathsea, libname=kpathsea, options=lt, tlincl=-IBLD/texk -ISRC/texk, tllib=BLD/texk/kpathsea/libkpathsea.la, tlextra=, rebuildsrcdeps=${top_srcdir}/../kpathsea/*.[ch], rebuildblddeps=${top_builddir}/../kpathsea/paths.h.' >&5
+##tldbg _KPSE_LIB_FLAGS_TL: kpathsea (kpathsea) lt.
+
+# Check whether --with-system-kpathsea was given.
+if test "${with_system_kpathsea+set}" = set; then :
+ withval=$with_system_kpathsea;
+fi
+if test "x$with_system_kpathsea" = xyes; then
+ if $PKG_CONFIG kpathsea; then
+ KPATHSEA_INCLUDES=`$PKG_CONFIG kpathsea --cflags`
+ KPATHSEA_LIBS=`$PKG_CONFIG kpathsea --libs`
+elif test "x$need_kpathsea:$with_system_kpathsea" = xyes:yes; then
+ as_fn_error $? "did not find kpathsea" "$LINENO" 5
+fi
+else
+ KPATHSEA_INCLUDES="-I$kpse_BLD/texk -I$kpse_SRC/texk"
+ KPATHSEA_LIBS="$kpse_BLD/texk/kpathsea/libkpathsea.la"
+ KPATHSEA_DEPEND='${top_builddir}/../kpathsea/libkpathsea.la'
+ KPATHSEA_RULE='# Rebuild libkpathsea
+$(KPATHSEA_DEPEND): ${top_srcdir}/../kpathsea/*.[ch] ${top_builddir}/../kpathsea/paths.h
+ cd ${top_builddir}/../kpathsea && $(MAKE) $(AM_MAKEFLAGS) rebuild
+${top_builddir}/../kpathsea/paths.h:
+ cd ${top_builddir}/../kpathsea && $(MAKE) $(AM_MAKEFLAGS) rebuild'
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if libkpathsea supports debugging" >&5
+$as_echo_n "checking if libkpathsea supports debugging... " >&6; }
+if ${kpse_cv_kpse_debug+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval CPPFLAGS=\"$KPATHSEA_INCLUDES \$CPPFLAGS\"
+eval LIBS=\"$KPATHSEA_LIBS \$LIBS\"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <kpathsea/kpathsea.h>
+int
+main ()
+{
+FILE *f = fopen("f", "r")
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ kpse_cv_kpse_debug=yes
+else
+ kpse_cv_kpse_debug=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CPPFLAGS=$kpse_save_CPPFLAGS
+LIBS=$kpse_save_LIBS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_kpse_debug" >&5
+$as_echo "$kpse_cv_kpse_debug" >&6; }
+if test "x$kpse_cv_kpse_debug" != xyes; then :
+ KPATHSEA_INCLUDES="$KPATHSEA_INCLUDES -DNO_DEBUG"
+fi
+
+
+# For dvips-all.enc.
+encdir='${datarootdir}/texmf-dist/fonts/enc/dvips/base'
+
+
+ac_config_files="$ac_config_files Makefile"
+
+
+# The subdirectory squeeze must be configured for the build system.
+
+
+subdirs="$subdirs squeeze"
+
+
+
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ 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_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by dvipsk (TeX Live) $as_me 2021.1, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <tex-k@tug.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+dvipsk (TeX Live) config.status 2021.1
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in AS \
+DLLTOOL \
+OBJDUMP \
+SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+deplibs_check_method \
+file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+sharedlib_from_linklib_cmd \
+AR \
+AR_FLAGS \
+archiver_list_spec \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
+nm_file_list_spec \
+lt_cv_truncate_bin \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_pic \
+lt_prog_compiler_wl \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+MANIFEST_TOOL \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_separator \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postlink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ RM='$RM'
+ ofile='$ofile'
+
+ac_aux_dir='$ac_aux_dir'
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "c-auto.h") CONFIG_HEADERS="$CONFIG_HEADERS c-auto.h:c-auto.in" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Older Autoconf 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.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ case $CONFIG_FILES in #(
+ *\'*) :
+ eval set x "$CONFIG_FILES" ;; #(
+ *) :
+ set x $CONFIG_FILES ;; #(
+ *) :
+ ;;
+esac
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`$as_dirname -- "$am_mf" ||
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$am_mf" : 'X\(//\)[^/]' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$am_mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ am_filepart=`$as_basename -- "$am_mf" ||
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$am_mf" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { echo "$as_me:$LINENO: cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles" >&5
+ (cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE=\"gmake\" (or whatever is
+ necessary). You can also try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ { am_dirpart=; unset am_dirpart;}
+ { am_filepart=; unset am_filepart;}
+ { am_mf=; unset am_mf;}
+ { am_rc=; unset am_rc;}
+ rm -f conftest-deps.mk
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options that allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile=${ofile}T
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool 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 of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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, see <http://www.gnu.org/licenses/>.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=''
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Assembler program.
+AS=$lt_AS
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Object dumper program.
+OBJDUMP=$lt_OBJDUMP
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
+# The archiver.
+AR=$lt_AR
+
+# Flags to create an archive.
+AR_FLAGS=$lt_AR_FLAGS
+
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and where our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x$2 in
+ x)
+ ;;
+ *:)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+ ;;
+ x:*)
+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+ ;;
+ *)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in $*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+if test "x$cross_compiling" = xyes; then :
+ if test "x$cache_file" != x/dev/null; then :
+ cache_file=config.cache
+fi
+ac_configure_args="$ac_configure_args --host='$kpse_build_alias' \
+CC='$BUILDCC' CFLAGS='$BUILDCFLAGS' \
+CPPFLAGS='$BUILDCPPFLAGS' LDFLAGS='$BUILDLDFLAGS'"
+fi
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+
+#
+# CONFIG_SUBDIRS section.
+#
+if test "$no_recursion" != yes; then
+
+ # Remove --cache-file, --srcdir, and --disable-option-checking arguments
+ # so they do not pile up.
+ ac_sub_configure_args=
+ ac_prev=
+ eval "set x $ac_configure_args"
+ shift
+ for ac_arg
+ do
+ if test -n "$ac_prev"; then
+ ac_prev=
+ continue
+ fi
+ case $ac_arg in
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
+ | --c=*)
+ ;;
+ --config-cache | -C)
+ ;;
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ ;;
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ ;;
+ --disable-option-checking)
+ ;;
+ *)
+ case $ac_arg in
+ *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append ac_sub_configure_args " '$ac_arg'" ;;
+ esac
+ done
+
+ # Always prepend --prefix to ensure using the same prefix
+ # in subdir configurations.
+ ac_arg="--prefix=$prefix"
+ case $ac_arg in
+ *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
+
+ # Pass --silent
+ if test "$silent" = yes; then
+ ac_sub_configure_args="--silent $ac_sub_configure_args"
+ fi
+
+ # Always prepend --disable-option-checking to silence warnings, since
+ # different subdirs can have different --enable and --with options.
+ ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args"
+
+ ac_popdir=`pwd`
+ for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue
+
+ # Do not complain, so a configure script can configure whichever
+ # parts of a large source tree are present.
+ test -d "$srcdir/$ac_dir" || continue
+
+ ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
+ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5
+ $as_echo "$ac_msg" >&6
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ cd "$ac_dir"
+
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ ac_sub_configure=$ac_srcdir/configure.gnu
+ elif test -f "$ac_srcdir/configure"; then
+ ac_sub_configure=$ac_srcdir/configure
+ elif test -f "$ac_srcdir/configure.in"; then
+ # This should be Cygnus configure.
+ ac_sub_configure=$ac_aux_dir/configure
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5
+$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
+ ac_sub_configure=
+ fi
+
+ # The recursion is here.
+ if test -n "$ac_sub_configure"; then
+ # Make the cache file name correct relative to the subdirectory.
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;;
+ *) # Relative name.
+ ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
+$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
+ # The eval makes quoting arguments work.
+ eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
+ --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
+ as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
+ fi
+
+ cd "$ac_popdir"
+ done
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/Build/source/texk/dvipsk/configure.ac b/Build/source/texk/dvipsk/configure.ac
new file mode 100644
index 00000000000..a45b9c4eedf
--- /dev/null
+++ b/Build/source/texk/dvipsk/configure.ac
@@ -0,0 +1,38 @@
+dnl $Id$
+dnl Process this file with autoconf to produce a configure script.
+dnl
+dnl Copyright 2016-2021 Karl Berry <tex-live@tug.org>
+dnl Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org>
+dnl
+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([dvipsk (TeX Live)], [2021.1], [tex-k@tug.org])
+AC_PREREQ([2.65])
+AC_CONFIG_SRCDIR([dvips.c])
+AC_CONFIG_AUX_DIR([../../build-aux])
+AC_CONFIG_MACRO_DIR([../../m4])
+
+# Common code for all programs using libkpathsea.
+KPSE_COMMON([dvipsk])
+KPSE_CANONICAL_HOST
+
+AC_CONFIG_HEADERS([c-auto.h:c-auto.in])
+
+AC_CHECK_SIZEOF([int])
+
+AC_SEARCH_LIBS([pow], [m])
+
+KPSE_KPATHSEA_FLAGS
+
+# For dvips-all.enc.
+encdir='${datarootdir}/texmf-dist/fonts/enc/dvips/base'
+AC_SUBST([encdir])
+
+AC_CONFIG_FILES([Makefile])
+
+# The subdirectory squeeze must be configured for the build system.
+KPSE_NATIVE_SUBDIRS([squeeze])
+
+AC_OUTPUT
diff --git a/Build/source/texk/dvipsk/contrib/afm-extra/ptmr.ed b/Build/source/texk/dvipsk/contrib/afm-extra/ptmr.ed
new file mode 100644
index 00000000000..78dc82138de
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/afm-extra/ptmr.ed
@@ -0,0 +1,118 @@
+1s/)/, then edited for Greek)/
+/(LIGTABLE/i
+(MAPFONT D 1
+ (FONTNAME rpsyr)
+ (FONTCHECKSUM O 12741765024)
+ )
+.
+/(CHARACTER/i
+(CHARACTER O 0 (comment Gamma)
+ (CHARWD R 603)
+ (CHARHT R 689)
+ (CHARIC R 6)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C G)
+ )
+ )
+(CHARACTER O 1 (comment Delta)
+ (CHARWD R 612)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C D)
+ )
+ )
+(CHARACTER O 2 (comment Theta)
+ (CHARWD R 741)
+ (CHARHT R 689)
+ (CHARDP R 7)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C Q)
+ )
+ )
+(CHARACTER O 3 (comment Lambda)
+ (CHARWD R 686)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C L)
+ )
+ )
+(CHARACTER O 4 (comment Xi)
+ (CHARWD R 645)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C X)
+ )
+ )
+(CHARACTER O 5 (comment Pi)
+ (CHARWD R 768)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C P)
+ )
+ )
+(CHARACTER O 6 (comment Sigma)
+ (CHARWD R 592)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C S)
+ )
+ )
+(CHARACTER O 7 (comment Upsilon1)
+ (CHARWD R 620)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR O 241)
+ )
+ )
+(CHARACTER O 10 (comment Phi)
+ (CHARWD R 763)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C F)
+ )
+ )
+(CHARACTER O 11 (comment Psi)
+ (CHARWD R 795)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C Y)
+ )
+ )
+(CHARACTER O 12 (comment Omega)
+ (CHARWD R 768)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C W)
+ )
+ )
+(CHARACTER O 13 (comment arrowup)
+ (CHARWD R 603)
+ (CHARHT R 907)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR O 255)
+ )
+ )
+(CHARACTER O 14 (comment arrowdown)
+ (CHARWD R 603)
+ (CHARHT R 907)
+ (CHARDP R 7)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR O 257)
+ )
+ )
+.
+w ptmr.vpl
+q
diff --git a/Build/source/texk/dvipsk/contrib/afm-extra/ptmro.ed b/Build/source/texk/dvipsk/contrib/afm-extra/ptmro.ed
new file mode 100644
index 00000000000..26885af1622
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/afm-extra/ptmro.ed
@@ -0,0 +1,130 @@
+1s/)/, edited for Greek)/
+/(LIGTABLE/i
+(MAPFONT D 1
+ (FONTNAME psyro)
+ (FONTCHECKSUM O 12741765024)
+ )
+.
+/(CHARACTER/i
+(CHARACTER O 0 (comment Gamma)
+ (CHARWD R 603)
+ (CHARHT R 689)
+ (CHARIC R 118)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C G)
+ )
+ )
+(CHARACTER O 1 (comment Delta)
+ (CHARWD R 612)
+ (CHARHT R 689)
+ (CHARIC R 111)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C D)
+ )
+ )
+(CHARACTER O 2 (comment Theta)
+ (CHARWD R 741)
+ (CHARHT R 689)
+ (CHARDP R 7)
+ (CHARIC R 87)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C Q)
+ )
+ )
+(CHARACTER O 3 (comment Lambda)
+ (CHARWD R 686)
+ (CHARHT R 689)
+ (CHARIC R 109)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C L)
+ )
+ )
+(CHARACTER O 4 (comment Xi)
+ (CHARWD R 645)
+ (CHARHT R 689)
+ (CHARIC R 66)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C X)
+ )
+ )
+(CHARACTER O 5 (comment Pi)
+ (CHARWD R 768)
+ (CHARHT R 689)
+ (CHARIC R 89)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C P)
+ )
+ )
+(CHARACTER O 6 (comment Sigma)
+ (CHARWD R 592)
+ (CHARHT R 689)
+ (CHARIC R 109)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C S)
+ )
+ )
+(CHARACTER O 7 (comment Upsilon1)
+ (CHARWD R 620)
+ (CHARHT R 689)
+ (CHARIC R 104)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR O 241)
+ )
+ )
+(CHARACTER O 10 (comment Phi)
+ (CHARWD R 763)
+ (CHARHT R 689)
+ (CHARIC R 89)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C F)
+ )
+ )
+(CHARACTER O 11 (comment Psi)
+ (CHARWD R 795)
+ (CHARHT R 689)
+ (CHARIC R 100)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C Y)
+ )
+ )
+(CHARACTER O 12 (comment Omega)
+ (CHARWD R 768)
+ (CHARHT R 689)
+ (CHARIC R 83)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C W)
+ )
+ )
+(CHARACTER O 13 (comment arrowup)
+ (CHARWD R 603)
+ (CHARHT R 907)
+ (CHARIC R 120)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR O 255)
+ )
+ )
+(CHARACTER O 14 (comment arrowdown)
+ (CHARWD R 603)
+ (CHARHT R 907)
+ (CHARDP R 7)
+ (CHARIC R 116)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR O 257)
+ )
+ )
+.
+w ptmro.vpl
+q
diff --git a/Build/source/texk/dvipsk/contrib/colorsep.lpro b/Build/source/texk/dvipsk/contrib/colorsep.lpro
new file mode 100644
index 00000000000..89e4bedf8b6
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/colorsep.lpro
@@ -0,0 +1,184 @@
+%!
+% Colour separation.
+% Ask dvips to do 4 pages. In bop-hook, cycle
+% round CMYK color spaces.
+%
+% Sebastian Rahtz 30.9.93
+% checked 7.1.94
+% from Green Book, and Kunkel Graphic Design with PostScript
+% (Green Book Listing 9-5, on page 153.)
+%
+/seppages 0 def
+userdict begin
+/Min {% 3 items on stack
+2 copy lt { pop }{ exch pop } ifelse
+2 copy lt { pop }{ exch pop } ifelse
+} def
+/SetGray {
+ 1 exch sub systemdict begin adjustdot setgray end
+} def
+/sethsbcolor {systemdict begin
+ sethsbcolor currentrgbcolor end
+ userdict begin setrgbcolor end}def
+
+/ToCMYK
+% Red book p 305
+ {
+% subtract each colour from 1
+ 3 { 1 exch sub 3 1 roll } repeat
+% define percent of black undercolor
+% find minimum (k)
+ 3 copy Min
+% remove undercolor
+ blackUCR sub
+ dup 0 lt {pop 0} if
+ /percent_UCR exch def
+%
+% subtract that from each colour
+%
+ 3 { percent_UCR sub 3 1 roll } repeat
+% work out black itself
+ percent_UCR 1.25 mul % 1 exch sub
+% stack should now have C M Y K
+} def
+%
+% crop marks
+%
+/cX 18 def
+/CM{gsave TR 0 cX neg moveto 0 cX lineto stroke
+cX neg 0 moveto cX 0 lineto stroke grestore}def
+%
+/bop-hook{cX dup TR
+%
+% which page are we producing
+%
+ seppages 1 add
+ /seppages exch def
+ seppages 5 eq { /seppages 1 def } if
+ seppages 1 eq {
+ /ColourName (CYAN) def
+ CYAN setupcolor
+ /WhichColour 3 def } if
+ seppages 2 eq {
+ /ColourName (MAGENTA) def
+ MAGENTA setupcolor
+ /WhichColour 2 def } if
+ seppages 3 eq {
+ /ColourName (YELLOW) def
+ YELLOW setupcolor
+ /WhichColour 1 def } if
+ seppages 4 eq {
+ /ColourName (BLACK) def
+ BLACK setupcolor
+ /WhichColour 0 def } if
+%
+% crop marks
+%
+gsave .3 setlinewidth
+3 -7 moveto
+/Helvetica findfont 6 scalefont setfont
+ColourName show
+0 0 CM
+vsize cX 2 mul sub dup hsize cX 2 mul sub dup isls{4 2 roll}if 0 CM
+exch CM 0
+exch CM
+grestore 0 cX -2 mul TR isls
+{cX -2 mul 0 TR}if
+ } def end
+%
+/separations 48 dict def
+separations begin
+ /cmykprocs [ %def
+ % cyan
+ { pop pop pop SetGray }
+ % magenta
+ { pop pop exch pop SetGray }
+ % yellow
+ { pop 3 1 roll pop pop SetGray }
+ % black
+ { 4 1 roll pop pop pop SetGray }
+ ] def
+ /rgbprocs [ %def
+ % cyan
+ { ToCMYK pop pop pop SetGray }
+ % magenta
+ { ToCMYK pop pop exch pop SetGray }
+ % yellow
+ { ToCMYK pop 3 1 roll pop pop SetGray }
+ % black
+ { ToCMYK 4 1 roll pop pop pop SetGray }
+ ] def
+ /testprocs [ %def
+ % cyan
+ { ToCMYK pop pop pop }
+ % magenta
+ { ToCMYK pop pop exch pop }
+ % yellow
+ { ToCMYK pop 3 1 roll pop pop }
+ % black
+ { ToCMYK 4 1 roll pop pop pop }
+ ] def
+ /screenangles [ %def
+ 105 % cyan
+ 75 % magenta
+ 0 % yellow
+ 45 % black
+ ] def
+end % separations
+
+% setupcolortakes 0, 1, 2, or 3 as its argument,
+% for cyan, magenta, yellow, and black.
+/CYAN 0 def /MAGENTA 1 def
+/YELLOW 2 def /BLACK 3 def
+/setupcolor{ %def
+ userdict begin
+ dup separations /cmykprocs get exch get
+ /setcmykcolor exch def
+ dup separations /rgbprocs get exch get
+ /setrgbcolor exch def
+ dup separations /testprocs get exch get
+ /testrgbcolor exch def
+ separations /screenangles get exch get
+ currentscreen
+ exch pop 3 -1 roll exch
+ setscreen
+ /setscreen { pop pop pop } def
+%
+% redefine setgray so that it only shows on the black separation
+%
+ /setgray {
+ WhichColour 0 eq
+ {systemdict begin adjustdot setgray end}
+ {pop systemdict begin 1 setgray end}
+ ifelse}def
+ end
+} bind def
+
+%
+% from Kunkel
+%
+/adjustdot { dup 0 eq { } { dup 1 exch sub .1 mul add} ifelse } def
+%
+% redefine existing operators
+%
+% Percent of undercolor removal
+/magentaUCR .3 def
+/yellowUCR .07 def
+/blackUCR .4 def
+%
+% Correct yellow and magenta
+/correctMY {rgb2cym
+ 1 index yellowUCR mul sub 3 1 roll
+ 1 index magentaUCR mul sub 3 1 roll
+ 3 1 roll rgb2cym}def
+%
+%(bluely green ) =
+%CYAN setupcolor
+%.1 .4 .5 testrgbcolor =
+%MAGENTA setupcolor
+%.1 .4 .5 testrgbcolor =
+%YELLOW setupcolor
+%.1 .4 .5 testrgbcolor =
+%BLACK setupcolor
+%.1 .4 .5 testrgbcolor =
+%quit
diff --git a/Build/source/texk/dvipsk/contrib/config.proto b/Build/source/texk/dvipsk/contrib/config.proto
new file mode 100644
index 00000000000..648f60c16fd
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/config.proto
@@ -0,0 +1,49 @@
+% Prototype Dvips configuration file. (Public domain.)
+
+% How to print, maybe with lp instead lpr, etc.
+o |lpr
+
+% Default resolution of this device, in dots per inch.
+D 600
+
+% Metafont mode. (This is completely different from the -M command-line
+% option, which controls whether MakeTeXPK is invoked.) Get
+% @url{ftp://ftp.tug.org/tex/modes.mf} for a list of mode names. This mode
+% and the D number above must agree, or MakeTeXPK will get confused.
+M ljfour
+
+% Memory available. Download the three-line PostScript file:
+% %! Hey, we're PostScript
+% /Times-Roman findfont 30 scalefont setfont 144 432 moveto
+% vmstatus exch sub 40 string cvs show pop showpage
+% to determine this number. (It will be the only thing printed.)
+m 3500000
+
+% Correct printer offset. You can use testpage.tex from the LaTeX
+% distribution to find these numbers. Print testpage.dvi more than once.
+O 0pt,0pt
+
+% Partially download Type 1 fonts by default. Only reason not to do
+% this is if you encounter bugs. (Please report them to
+% @email{tex-k@@tug.org} if you do.)
+j
+
+% Also look for fonts at these resolutions.
+R 300 600
+
+% With a high resolution and a RISC cpu, better to compress the bitmaps.
+Z
+
+% Uncomment these if you have and want to use PostScript versions of the
+% fonts.
+%p +cmfonts.map
+%p +lafonts.map
+%p +cyrfonts.map
+%p +eufonts.map
+
+% To include another configuration file here.
+%c FILENAME
+
+% You will also want definitions for alternative paper sizes -- A4,
+% legal, and such. Examples in @file{contrib/papersize.level2} and
+% @file{contrib/papersize.simple}.
diff --git a/Build/source/texk/dvipsk/contrib/configs/2a4.ps b/Build/source/texk/dvipsk/contrib/configs/2a4.ps
new file mode 100644
index 00000000000..cf2d4f479eb
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/2a4.ps
@@ -0,0 +1,49 @@
+% @(#)2a4.ps 1.0 95/10/30 pete
+%
+% The following code defines PostScript procedures to work dvips.
+% they must be downloaded or sent as a header file together with
+% the PostScript version of your (La)TeX file.
+%
+% Originated probably by Piet van Oostrum, Department of Computer Science,
+% Utrecht University, Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht
+% Phone +31 30 531806
+% Fax +31 30 513791
+% <piet@cs.ruu.nl> uunet!mcsun!ruuinf!piet
+%
+% it is now re-written to work with dvips(k)-5.58f by Peter Dyballa
+% Johann Wolfgang Goethe-Universit\"at Robert-Mayer-Str. 11-15
+% Fachbereich 20 - Theoretische Informatik D 60325 Frankfurt am Main
+% (Department for Computer Science) (Federal Republic of Germany)
+%
+%
+% To use 2a4.ps include this on invocation of dvips:
+% -h 2a4.ps -t landscape
+%
+% do not include this in your (La)TeX source:
+% \special{landscape}\special{header=2a4.ps}
+%
+/isoddpage true def
+/orig-showpage /showpage load def
+/factor 0.707106781187 def
+/showpage {
+ isoddpage not { orig-showpage } if
+ /isoddpage isoddpage not store
+ } def
+
+/bop-hook {
+ /vsize 1 factor add neg def
+ isoddpage {factor factor scale
+ 842 412 translate }
+ { 0 -595 translate } ifelse
+ } def
+
+/end-hook {
+ isoddpage not { orig-showpage } if
+ } def
+%
+% Theses measures are for those paper formats:
+%
+% DIN A4 letter legal
+% 148mm = 412 PS pt 5.5in = 396 PS pt 7in = 504 PS pt
+% 210mm = 595 PS pt 8.5in = 612 PS pt 8.5in = 612 PS pt
+% 297mm = 842 PS pt 11in = 792 PS pt 14in = 1008 PS pt
diff --git a/Build/source/texk/dvipsk/contrib/configs/config.fax b/Build/source/texk/dvipsk/contrib/configs/config.fax
new file mode 100644
index 00000000000..963ebffaf33
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/config.fax
@@ -0,0 +1,5 @@
+*
+* For FAX output, we set 200 dpi, FAX mode.
+*
+D 200
+M FAX
diff --git a/Build/source/texk/dvipsk/contrib/configs/config.lino b/Build/source/texk/dvipsk/contrib/configs/config.lino
new file mode 100644
index 00000000000..4e3285f5089
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/config.lino
@@ -0,0 +1,93 @@
+*
+* This configuration file is a sample one for a typesetter. See the
+* end of the file especially, where we use setpageparams. With a
+* configuration file like this, you can use
+*
+* -t film0 -k -T 11in,17in
+*
+* for instance to print an 11x17 inch document in orientation 0 with
+* crop marks.
+*
+* Assume we have a nice modern lino with lots of memory.
+*
+m 1000000
+*
+* And send output by default to a PostScript file.
+*
+o
+*
+* Default resolution. We must get this right!
+*
+D 1270
+*
+* Compress the fonts.
+*
+Z
+*
+* Paper size information. First definition is the default.
+*
+* If your default is a4 uncomment the following definition
+* and comment out the letterSize definition.
+*
+*@ a4size 210mm 297mm
+*@+ %%PaperSize: a4
+
+@ letterSize 8.5in 11in
+@+ %%PaperSize: Letter
+
+@ letter 8.5in 11in
+@+ %%BeginPaperSize: Letter
+@+ letter
+@+ %%EndPaperSize
+
+@ legal 8.5in 14in
+@+ ! %%DocumentPaperSizes: Legal
+@+ %%BeginPaperSize: Legal
+@+ legal
+@+ %%EndPaperSize
+
+@ ledger 17in 11in
+@+ ! %%DocumentPaperSizes: Ledger
+@+ %%BeginPaperSize: Ledger
+@+ ledger
+@+ %%EndPaperSize
+
+@ tabloid 11in 17in
+@+ ! %%DocumentPaperSizes: Tabloid
+@+ %%BeginPaperSize: Tabloid
+@+ 11x17
+@+ %%EndPaperSize
+
+@ a4 210mm 297mm
+@+ ! %%DocumentPaperSizes: a4
+@+ %%BeginPaperSize: a4
+@+ a4
+@+ %%EndPaperSize
+
+@ a3 297mm 420mm
+@+ ! %%DocumentPaperSizes: a3
+@+ %%BeginPaperSize: a3
+@+ a3
+@+ %%EndPaperSize
+*
+* These last two are only for typesetters that can set the page size;
+* uncomment and put them in a `config.lino', for instance.
+*
+* Use this for pages where you want the text to run in the same direction
+* as the film feeds (slow scan direction; down the length of the film.)
+* Best for everything *but* pages higher than the film is wide or pages
+* wider than they are tall; needed for pages wider than the film is wide.
+*
+@ film0 0in 0in
+@+ statusdict /setpageparams known { vsize hsize 0 0 statusdict begin {
+@+ setpageparams } stopped end } { true } ifelse { statusdict /setpage known
+@+ { vsize hsize 0 statusdict begin { setpage } stopped pop end } if } if
+*
+* Use this for pages where you want the text to run across the width of
+* the film (fast scan direction.) Needed for pages taller than the film
+* is wide; preferred for pages wider than they are tall.
+*
+@ film1 0in 0in
+@+ statusdict /setpageparams known { hsize vsize 0 1 statusdict begin {
+@+ setpageparams } stopped end } { true } ifelse { statusdict /setpage known
+@+ { hsize vsize 1 statusdict begin { setpage } stopped pop end } if } if
diff --git a/Build/source/texk/dvipsk/contrib/configs/config.lj2p b/Build/source/texk/dvipsk/contrib/configs/config.lj2p
new file mode 100644
index 00000000000..aaf2a25f3f2
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/config.lj2p
@@ -0,0 +1,95 @@
+* original config.ps -- default definitions for dvips output.
+*
+* (If you change or delete `original' on the previous line, dvips won't
+* install its config.ps over this file.)
+*
+* Configuration file for Karl & Kathy's LaserJet IIP.
+
+* We have 2 2MB expansion cards.
+*
+m 2750000
+
+
+* Send output by default to our printer.
+*
+o |lpr
+
+
+* Default resolution.
+*
+D 300
+
+
+* Reverse the pages, since we usually print on the face-up tray.
+*
+r
+
+
+* Mode is for Canon engine.
+*
+M CanonCX
+
+
+* Also look for this list of resolutions.
+*
+R 300
+
+
+* The printer offsets the output by this much.
+*
+O 0pt,-6pt
+
+
+* Paper size information. First definition is the default.
+*
+* If your default is a4 uncomment the following definition
+* and comment out the letterSize definition.
+*
+* There is some redundancy in the following comments; that is to
+* get things to work both on the NeXT and on other printers.
+*
+*@ a4size 210mm 297mm
+*@+ %%PaperSize: a4
+
+@ letterSize 8.5in 11in
+
+@ letter 8.5in 11in
+@+ %%PaperSize: Letter
+@+ %%BeginPaperSize: Letter
+@+ letter
+@+ %%EndPaperSize
+
+@ legal 8.5in 14in
+@+ ! %%DocumentPaperSizes: Legal
+@+ %%PaperSize: Legal
+@+ %%BeginPaperSize: Legal
+@+ legal
+@+ %%EndPaperSize
+
+@ ledger 17in 11in
+@+ ! %%DocumentPaperSizes: Ledger
+@+ %%PaperSize: Ledger
+@+ %%BeginPaperSize: Ledger
+@+ ledger
+@+ %%EndPaperSize
+
+@ tabloid 11in 17in
+@+ ! %%DocumentPaperSizes: Tabloid
+@+ %%PaperSize: Tabloid
+@+ %%BeginPaperSize: Tabloid
+@+ 11x17
+@+ %%EndPaperSize
+
+@ a4 210mm 297mm
+@+ ! %%DocumentPaperSizes: a4
+@+ %%PaperSize: a4
+@+ %%BeginPaperSize: a4
+@+ a4
+@+ %%EndPaperSize
+
+@ a3 297mm 420mm
+@+ ! %%DocumentPaperSizes: a3
+@+ %%PaperSize: a3
+@+ %%BeginPaperSize: a3
+@+ a3
+@+ %%EndPaperSize
diff --git a/Build/source/texk/dvipsk/contrib/configs/config.post3x3 b/Build/source/texk/dvipsk/contrib/configs/config.post3x3
new file mode 100644
index 00000000000..f43b3071b4c
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/config.post3x3
@@ -0,0 +1,28 @@
+ %
+ % This file is an example of a header file for dvips. It prints a page
+ % (or a whole document) as a 3x3 poster. This file is built so it can
+ % be used both as the header file for PostScript and as the configuration
+ % file for dvips. First comes the PostScript part. (Note that dvips
+ % ignores any lines beginning with a space.) Change the number here.
+ % Use it with -P post3x3. We try to overlap pages a bit.
+ %
+ /xpost 3 def /ypost 3 def
+ userdict begin /bop-hook {
+ 36 36 translate
+ dup xpost ypost mul mod
+ dup xpost mod hsize 36 xpost 1 sub mul sub mul neg exch
+ xpost idiv vsize 36 ypost 1 sub mul sub mul neg translate % translate!
+ xpost ypost scale % scale!
+ -36 -36 translate
+ } def end
+ { % we start a procedure so PostScript `ignores' the dvips options.
+ %
+ % Now the dvips options. Change the number here too, to be
+ % xpost * ypost.
+ %
+b 9
+h config.post3x3
+ %
+ % Now PostScript cleanup.
+ %
+ } pop
diff --git a/Build/source/texk/dvipsk/contrib/configs/config.rokicki b/Build/source/texk/dvipsk/contrib/configs/config.rokicki
new file mode 100644
index 00000000000..62828369a74
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/config.rokicki
@@ -0,0 +1,62 @@
+*
+* See config.lino for more info.
+* With a virtual machine, we can claim 1M of memory.
+*
+m 1000000
+*
+* And send output by default to the printer.
+*
+o !lpr
+*
+* Default resolution.
+*
+D 400
+*
+* Last resort sizes.
+*
+R 100 120 144 300 360 400 432 480
+*
+* Paper size information. First definition is the default.
+*
+* If your default is a4 uncomment the following definition
+* and comment out the letterSize definition.
+*
+*@ A4size 210mm 297mm
+*@+ %%PaperSize: A4
+
+@ letterSize 8.5in 11in
+
+@ letter 8.5in 11in
+@+ %%BeginPaperSize: Letter
+@+ letter
+@+ %%EndPaperSize
+
+@ legal 8.5in 14in
+@+ ! %%DocumentPaperSizes: Legal
+@+ %%BeginPaperSize: Legal
+@+ legal
+@+ %%EndPaperSize
+
+@ ledger 17in 11in
+@+ ! %%DocumentPaperSizes: Ledger
+@+ %%BeginPaperSize: Ledger
+@+ ledger
+@+ %%EndPaperSize
+
+@ tabloid 11in 17in
+@+ ! %%DocumentPaperSizes: Tabloid
+@+ %%BeginPaperSize: Tabloid
+@+ 11x17
+@+ %%EndPaperSize
+
+@ A4 210mm 297mm
+@+ ! %%DocumentPaperSizes: A4
+@+ %%BeginPaperSize: A4
+@+ a4
+@+ %%EndPaperSize
+
+@ A3 297mm 420mm
+@+ ! %%DocumentPaperSizes: A3
+@+ %%BeginPaperSize: A3
+@+ a3
+@+ %%EndPaperSize
diff --git a/Build/source/texk/dvipsk/contrib/configs/loop.ps b/Build/source/texk/dvipsk/contrib/configs/loop.ps
new file mode 100644
index 00000000000..a38c4a19863
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/loop.ps
@@ -0,0 +1,2 @@
+%(%stdin) (r) file 1 string readstring
+{ } loop
diff --git a/Build/source/texk/dvipsk/contrib/configs/mkdvipspapers b/Build/source/texk/dvipsk/contrib/configs/mkdvipspapers
new file mode 100644
index 00000000000..b1adffcaa7a
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/mkdvipspapers
@@ -0,0 +1,429 @@
+#!/usr/local/bin/perl
+
+#
+# mkdvipspapers: a simple Perl script that generates a bunch of paper sizes
+# definitions for dvips.
+#
+# Copyright (C) 1995, Yves Arrouye <Yves.Arrouye@imag.fr> [06/15/95]
+#
+# THIS CODE IS PROVIDED AS IS, WITHOUT ANY WARRANTIES, EITHER EXPRESSED OR
+# IMPLIED, OF ITS FITNESS TO ANY PURPOSE. IT'S AUTHOR CANNOT BE HELD LIABLE
+# FOR ANY DAMAGES OCCURING DUE TO THE USE OF THIS CODE. USE AT YOUR OWN RISKS!
+
+# Known bugs: this script is written in Perl 5. (If you ever rewrite it in
+# Perl 4, I'm interested to get your version; I can provide a Perl-4 options
+# parser that is Getopt modified for it).
+
+# Last change: added the -p (--paper) option for specifying default size
+# (the first that will be generated). Arranged for the letter and a4 defs
+# be the first ones if nothing is specified (i.e. in the dvips default).
+# Note: the default paper size need not be in the chose ones, it is taken from
+# all the known papers sizes.
+
+# Read what follows for simple documentation and explanations.
+
+#
+# Options accepted by the script:
+#
+# --help print a small help message
+# --version print version
+#
+# -s, --standard generate standard definitions (Adobe ones)
+# -n, --non-standard generate dvips non-standard definitions
+# -d, --dvips generate dvips (i.e. standard + some) definitions
+# -g, --gs generate non-standard gs definitions
+# -e, --extra generate non-standard extra definitions
+# -l, --local generate local definitions
+# -a, --all generate all definitions
+#
+# -p, --paper default paper size
+#
+# default behaviour is the same as --dvips.
+#
+
+use Getopt::Long;
+
+#
+# The paper sizes definitions are stored in arrays with the following entries
+# for each paper size:
+#
+# - the name of the paper for dvips, e.g. letter;
+# - the name of the paper for the DSC PaperSize comment, e.g. Letter;
+# - the name of an accessible PostScript operator that may select the
+# correct paper size, e.g. letter;
+# - the name of a PostScript operator in statusdict that may select the
+# correct paper tray. e.g. lettertray (this is preferred);
+# - the physical width and height of the paper, either in points (no units
+# or bp, as in 4000bp), in inches (e.g 8.5in), centimeters (e.g. 21cm)
+# or in millimeters (e.g. 297mm);
+# - a flag indicating the orientation of the sheet, 0 meaning portrait and
+# 1 meaning landscape (this actually used only for gs' setpage operator).
+#
+# The PostScript code generated in the Setup section does the following.
+# First, we look in statusdict in order to look for a tray selection operator.
+# If there is none, but the specified PostScript operator is accessible with
+# the current dictionaries stacking order, we use it. If setpagedevice is
+# implemented and the other methods did fail, we use it. Otherwise, if the
+# setpage operator is present in statusdict, use this one. The setpage op. is
+# assumed to be
+#
+# <width> <height> <orient> setpage --
+#
+# where <orient> is 0 for portrait and 1 for landscape (in which case <width>
+# and <height> are swapped!).
+#
+
+#
+# This code has been tested with an Apple LaserWriter II, an Hewlett Packard
+# 4L laser printer, Ghostscript 3.33 and Ghostview 1.5 with success.
+#
+
+#
+# Enter your local definitions here in the same format as the examples
+# below.
+#
+# Papers defined here: (none).
+#
+
+@localpapersdefs = (
+);
+
+#
+# Standard (Adobe) names. Missing names are a4small and lettersmall, because
+# I don't have their definition handy.
+#
+# Papers defined here: 11x17, a3, a4, b5, ledger, legal, letter, note.
+#
+
+@stdpapersdefs = (
+ [
+ 'letter',
+ 'Letter', 'letter', 'lettertray',
+ '8.5in', '11in', 0
+ ],
+ [
+ 'a4',
+ 'A4', 'a4', 'a4tray',
+ '210mm', '297mm', 0
+ ],
+ [
+ '11x17',
+ '11x17', '11x17', '11x17tray',
+ '11in', '17in', 0
+ ],
+ [
+ 'a3',
+ 'A3', 'a3', 'a3tray',
+ '297mm', '420mm', 0
+ ],
+ [
+ 'b5',
+ 'B5', 'ab5', 'b5tray',
+ '177mm', '250mm', 0
+ ],
+ [
+ 'ledger',
+ 'Ledger', 'ledger', 'ledgertray',
+ '11in', '17in', 1
+ ],
+ [
+ 'legal',
+ 'Legal', 'legal', 'legaltray',
+ '8.5in', '14in', 0
+ ],
+ [
+ 'note',
+ 'Note', 'note', 'notetray',
+ '7.5in', '10in', 0
+ ]
+);
+
+#
+# Names that are present in the standard dvips distribution.
+#
+# Papers defined here: tabloid (aka 11x17).
+#
+
+@dvipspapersdefs = (
+ [
+ 'tabloid',
+ 'Tabloid', '11x17', '11x17tray',
+ '11in', '17in', 0
+ ],
+);
+
+#
+# Names that are present in the standard gs distribution. (Some names are
+# currently missing...)
+#
+# Papers defined here: a0, a1, a2, a5, a6, a7, a8, a9, a10,
+# b0, b1, b2, b3, b4.
+#
+
+@gspapersdefs = (
+ [
+ 'a0',
+ 'A0', 'a0', 'a0tray',
+ '840mm', '1188mm', 0
+ ],
+ [
+ 'a1',
+ 'A1', 'a1', 'a1tray',
+ '594mm', '840mm', 0
+ ],
+ [
+ 'a2',
+ 'A2', 'a2', 'a2tray',
+ '420mm', '594mm', 0
+ ],
+ [
+ 'a5',
+ 'A5', 'a5', 'a5tray',
+ '148mm', '210mm', 0
+ ],
+ [
+ 'a6',
+ 'A6', 'a6', 'a6tray',
+ '105mm', '148mm', 0
+ ],
+ [
+ 'a7',
+ 'A7', 'a7', 'a7tray',
+ '74mm', '105mm', 0
+ ],
+ [
+ 'a8',
+ 'A8', 'a8', 'a8tray',
+ '52.5mm', '74mm', 0
+ ],
+ [
+ 'a9',
+ 'A9', 'a9', 'a9tray',
+ '37mm', '52.5mm', 0
+ ],
+ [
+ 'a10',
+ 'A10', 'a10', 'a10tray',
+ '26.25mm', '37mm', 0
+ ],
+ [
+ 'b0',
+ 'B0', 'b0', 'b0tray',
+ '2836bp', '4008bp', 0
+ ],
+ [
+ 'b1',
+ 'B1', 'b1', 'b1tray',
+ '2004bp', '2836bp', 0
+ ],
+ [
+ 'b2',
+ 'B2', 'b2', 'b2tray',
+ '1418bp', '2004bp', 0
+ ],
+ [
+ 'b3',
+ 'B3', 'b3', 'b3tray',
+ '1002bp', '1418bp', 0
+ ],
+ [
+ 'b4',
+ 'B4', 'b4', 'b4tray',
+ '709bp', '1002bp', 0
+ ],
+);
+
+@extrapapersdefs = (
+ [
+ 'executive',
+ 'Executive', 'executivepage', 'executivepagetray',
+ '7.25in', '10.5in', 0
+ ],
+ [
+ 'halfexecutive',
+ 'HalfExecutive', 'halfexecutivepage', 'halfexecutivepagetray',
+ '5.25in', '7.25in', 0
+ ]
+);
+
+sub basename {
+ local($fullname, $ext) = @_;
+ local($basename) = $fullname;
+
+ $basename =~ s,(.*/)?([^/]+),$2,;
+ $ext && $basename =~ s,$ext$,,;
+
+ $basename;
+}
+
+sub dumpsizes {
+ local($legend, @sizes) = @_;
+
+ print "$legend";
+
+ for $spec (@sizes) {
+ local(@array) = @$spec;
+ local($name) = @array;
+
+ print $name, " ";
+ }
+ print "\n";
+}
+
+sub usage {
+ local($exitcode) = @_;
+ local($myname) = &basename($0);
+
+ if ($exitcode) {
+ select STDERR;
+ }
+
+ print "usage: $myname [ --version ] [ -h, --help ] [ -s, --standard ] [ -n, --non-standard ] [ -d, --dvips ] [ -g, --gs ] [ -e, --extra ] [ -l, --local ] [ -a, --all ] [ -p, --paper papername ]\n";
+
+ if ($exitcode == 0) {
+ print "\n";
+ print "options: --version\t\tprint version information\n";
+ print " -h, --help\t\tprint this help message\n";
+ print " -s, --standard\t\tdefine standard paper sizes\n";
+ print " -n, --non-standard\tdefine dvips' non-standard paper sizes\n";
+ print " -d, --dvips\t\tdefine all dvips paper sizes\n";
+ print " -g, --gs\t\tdefine gs' non-standard paper sizes\n";
+ print " -e, --extra\t\tdefine extra paper sizes\n";
+ print " -l, --local\t\tdefine local paper sizes\n";
+ print " -a, --all\t\tdefine all previous paper sizes\n";
+ print " -p, --paper papername\tspecify default paper size\n";
+ print "\npapers: "; &dumpsizes("--standard\t\t", @stdpapersdefs);
+ print " "; &dumpsizes("--non-standard\t\t", @dvipspapersdefs);
+ print " "; &dumpsizes("--gs\t\t\t", @gspapersdefs);
+ print " "; &dumpsizes("--extra\t\t", @extrapapersdefs);
+ print " "; &dumpsizes("--local\t\t", @localpapersdefs);
+ }
+
+ exit $exitcode;
+}
+
+sub pssize {
+ local ($size) = @_;
+ local $number = $size;
+
+ $number =~ s/\D+$//;
+
+ if ($size =~ /in$/) {
+ $number *= 72;
+ } elsif ($size =~ /cm$/) {
+ $number *= 72 / 2.54;
+ } elsif ($size =~ /mm$/) {
+ $number *= 72 / 25.4;
+ }
+
+ return int($number + .4);
+}
+
+sub genpaperdefs {
+ local ($papername, $dscname, $psname, $trayname,
+ $width, $height, $orient) = @$_;
+ local ($pswidth, $psheight) = (&pssize($width), &pssize($height));
+
+ local ($exch) = ($orient == 1 ? " exch" : "");
+
+ if ($width =~ /^\d$/) { $width = "${width}bp"; }
+ if ($height =~ /^\d$/) { $height = "${height}bp"; }
+
+ print <<EPD
+@ $papername $width $height
+@+ ! %%DocumentPaperSizes: $dscname
+@+ %%PaperSize: $dscname
+@+ %%BeginPaperSize: $dscname
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ $pswidth $psheight$exch ] put setpagedevice
+@+ } {
+@+ statusdict /$trayname known {
+@+ statusdict begin $trayname end
+@+ /$psname where { pop $psname } if
+@+ } {
+@+ /$psname where {
+@+ pop $psname
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ $pswidth $psheight $orient setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+EPD
+}
+
+if (!&GetOptions("standard|s", "non-standard|n", "dvips|d", "gs|g", "extra|e",
+ "local|l", "all|a", "paper|p=s", "help|h", "version")) {
+ &usage(1);
+} elsif ($#ARGV != -1) {
+ &usage(1);
+} elsif ($opt_help) {
+ &usage(0);
+} elsif ($opt_version) {
+ print &basename($0),
+ " version 1.2, by Yves Arrouye <Yves.Arrouye\@imag.fr>\n";
+ exit(0);
+} else {
+ @allpapersdefs = (@stdpapersdefs, @dvipspapersdefs, @gspapersdefs,
+ @extrapapersdefs, @localpapersdefs);
+ if ($opt_all) {
+ @paperdefs = @allpapersdefs;
+ } else {
+ @papersdefs = ();
+
+ if ($opt_dvips) {
+ $opt_standard = 1;
+ $opt_non_standard = 1;
+ }
+
+ if ($opt_standard && !$opt_dvips) {
+ @papersdefs = (@papersdefs, @stdpapersdefs);
+ }
+ if ($opt_non_standard && !$opt_dvips) {
+ @papersdefs = (@papersdefs, @dvipspapersdefs);
+ }
+ if ($opt_gs) {
+ @papersdefs = (@papersdefs, @gsspapersdefs);
+ }
+ if ($opt_extra) {
+ @papersdefs = (@papersdefs, @extrapapersdefs);
+ }
+ if ($opt_local) {
+ @papersdefs = (@papersdefs, @localpapersdefs);
+ }
+
+ if ($#papersdefs == -1) {
+ @papersdefs = (@stdpapersdefs, @dvipspapersdefs);
+ }
+ }
+}
+
+# Find default paper def in *all* definitions and generate config
+
+if ($opt_paper) {
+ for (@allpapersdefs) {
+ local(@paper) = @$_;
+ local($papername) = @paper;
+
+ if ($papername eq $opt_paper) {
+ genpaperdefs @paper;
+ last;
+ }
+ }
+}
+
+# Generate config for all selected paper sizes but the default one
+
+for (@defaultpaper, @papersdefs) {
+ local($papername) = @$_;
+
+ if ($papername eq $opt_paper) { next; }
+
+ genpaperdefs $_;
+}
+
diff --git a/Build/source/texk/dvipsk/contrib/configs/papersize.level2 b/Build/source/texk/dvipsk/contrib/configs/papersize.level2
new file mode 100644
index 00000000000..8d708facafa
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/papersize.level2
@@ -0,0 +1,236 @@
+% If your printer doesn't support setpagedevice, and your default paper
+% size is A4, uncomment this.
+%@ A4size 210mm 297mm
+%@+ %%PaperSize: A4
+
+% If you want the lettersize definition that uses setpagedevice to be
+% the default, comment this out.
+@ letterSize 8.5in 11in
+
+% More paper size information. First definition is the default.
+% These definitions were generated by the contrib/mkdvipspapers Perl 5 script,
+% by Yves.Arrouye@imag.fr.
+%
+% If your default is a4 put the a4 definition first (i.e., before the letter
+% definition). You should always keep a definition here in order to have the
+% document print on the desired paper if possible even outside your original
+% environment.
+%
+% If your default is something else than a4, of course, put its
+% definition first!
+
+@ letter 8.5in 11in
+@+ ! %%DocumentPaperSizes: Letter
+@+ %%PaperSize: Letter
+@+ %%BeginPaperSize: Letter
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 612 792 ] put setpagedevice
+@+ } {
+@+ statusdict /lettertray known {
+@+ statusdict begin lettertray end
+@+ /letter where { pop letter } if
+@+ } {
+@+ /letter where {
+@+ pop letter
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 612 792 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ a4 210mm 297mm
+@+ ! %%DocumentPaperSizes: a4
+@+ %%PaperSize: a4
+@+ %%BeginPaperSize: a4
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 595 842 ] put setpagedevice
+@+ } {
+@+ statusdict /a4tray known {
+@+ statusdict begin a4tray end
+@+ /a4 where { pop a4 } if
+@+ } {
+@+ /a4 where {
+@+ pop a4
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 595 842 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ 11x17 11in 17in
+@+ ! %%DocumentPaperSizes: 11x17
+@+ %%PaperSize: 11x17
+@+ %%BeginPaperSize: 11x17
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 792 1224 ] put setpagedevice
+@+ } {
+@+ statusdict /11x17tray known {
+@+ statusdict begin 11x17tray end
+@+ /11x17 where { pop 11x17 } if
+@+ } {
+@+ /11x17 where {
+@+ pop 11x17
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 792 1224 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ a3 297mm 420mm
+@+ ! %%DocumentPaperSizes: a3
+@+ %%PaperSize: a3
+@+ %%BeginPaperSize: a3
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 842 1190 ] put setpagedevice
+@+ } {
+@+ statusdict /a3tray known {
+@+ statusdict begin a3tray end
+@+ /a3 where { pop a3 } if
+@+ } {
+@+ /a3 where {
+@+ pop a3
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 842 1190 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ b5 177mm 250mm
+@+ ! %%DocumentPaperSizes: b5
+@+ %%PaperSize: b5
+@+ %%BeginPaperSize: b5
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 502 709 ] put setpagedevice
+@+ } {
+@+ statusdict /b5tray known {
+@+ statusdict begin b5tray end
+@+ /ab5 where { pop ab5 } if
+@+ } {
+@+ /ab5 where {
+@+ pop ab5
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 502 709 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ ledger 11in 17in
+@+ ! %%DocumentPaperSizes: Ledger
+@+ %%PaperSize: Ledger
+@+ %%BeginPaperSize: Ledger
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 792 1224 exch ] put setpagedevice
+@+ } {
+@+ statusdict /ledgertray known {
+@+ statusdict begin ledgertray end
+@+ /ledger where { pop ledger } if
+@+ } {
+@+ /ledger where {
+@+ pop ledger
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 792 1224 1 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ legal 8.5in 14in
+@+ ! %%DocumentPaperSizes: Legal
+@+ %%PaperSize: Legal
+@+ %%BeginPaperSize: Legal
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 612 1008 ] put setpagedevice
+@+ } {
+@+ statusdict /legaltray known {
+@+ statusdict begin legaltray end
+@+ /legal where { pop legal } if
+@+ } {
+@+ /legal where {
+@+ pop legal
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 612 1008 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ note 7.5in 10in
+@+ ! %%DocumentPaperSizes: Note
+@+ %%PaperSize: Note
+@+ %%BeginPaperSize: Note
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 540 720 ] put setpagedevice
+@+ } {
+@+ statusdict /notetray known {
+@+ statusdict begin notetray end
+@+ /note where { pop note } if
+@+ } {
+@+ /note where {
+@+ pop note
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 540 720 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ tabloid 11in 17in
+@+ ! %%DocumentPaperSizes: Tabloid
+@+ %%PaperSize: Tabloid
+@+ %%BeginPaperSize: Tabloid
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 792 1224 ] put setpagedevice
+@+ } {
+@+ statusdict /11x17tray known {
+@+ statusdict begin 11x17tray end
+@+ /11x17 where { pop 11x17 } if
+@+ } {
+@+ /11x17 where {
+@+ pop 11x17
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 792 1224 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
diff --git a/Build/source/texk/dvipsk/contrib/configs/papersize.simple b/Build/source/texk/dvipsk/contrib/configs/papersize.simple
new file mode 100644
index 00000000000..5112bdf40d4
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/papersize.simple
@@ -0,0 +1,44 @@
+* Paper size information. First definition is the default.
+*
+* If your default is a4 uncomment the following definition
+* and comment out the letterSize definition.
+*
+*@ A4size 210mm 297mm
+*@+ %%PaperSize: A4
+
+@ letterSize 8.5in 11in
+
+@ letter 8.5in 11in
+@+ %%BeginPaperSize: Letter
+@+ letter
+@+ %%EndPaperSize
+
+@ legal 8.5in 14in
+@+ ! %%DocumentPaperSizes: Legal
+@+ %%BeginPaperSize: Legal
+@+ legal
+@+ %%EndPaperSize
+
+@ ledger 17in 11in
+@+ ! %%DocumentPaperSizes: Ledger
+@+ %%BeginPaperSize: Ledger
+@+ ledger
+@+ %%EndPaperSize
+
+@ tabloid 11in 17in
+@+ ! %%DocumentPaperSizes: Tabloid
+@+ %%BeginPaperSize: Tabloid
+@+ 11x17
+@+ %%EndPaperSize
+
+@ A4 210mm 297mm
+@+ ! %%DocumentPaperSizes: A4
+@+ %%BeginPaperSize: A4
+@+ a4
+@+ %%EndPaperSize
+
+@ A3 297mm 420mm
+@+ ! %%DocumentPaperSizes: A3
+@+ %%BeginPaperSize: A3
+@+ a3
+@+ %%EndPaperSize
diff --git a/Build/source/texk/dvipsk/contrib/configs/prepipe.ps b/Build/source/texk/dvipsk/contrib/configs/prepipe.ps
new file mode 100644
index 00000000000..57b690963cd
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/prepipe.ps
@@ -0,0 +1 @@
+/showpage { 1 true .outputpage } def
diff --git a/Build/source/texk/dvipsk/contrib/configs/showpage.ps b/Build/source/texk/dvipsk/contrib/configs/showpage.ps
new file mode 100644
index 00000000000..97a4789f75d
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/showpage.ps
@@ -0,0 +1 @@
+showpage
diff --git a/Build/source/texk/dvipsk/contrib/crop.lpr b/Build/source/texk/dvipsk/contrib/crop.lpr
new file mode 100644
index 00000000000..d79484266d9
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/crop.lpr
@@ -0,0 +1,271 @@
+%!
+% This file is for crop marks and registration marks if there is color.
+%
+% First, we translate and draw the marks. You can change the way the
+% marks are drawn, but the quarter inch border around the page is fixed.
+%
+% This file uses bop-hook; sorry.
+%
+TeXDict begin
+%
+% CM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% x_center y_center CM - %
+% %
+% Make a crop mark at x_center y_center. This crop mark is just a cross. %
+% Checks to see if TeXcolorcmyk is defined---if there is no color, you can %
+% setgray instead of setcmykcolor. %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+/cX 18 def % the crop offset
+/CM
+{
+ gsave
+ 3 1 roll
+ translate
+ rotate
+ .3 setlinewidth
+ /TeXcolorcmyk where {pop 1 1 1 1 setcmykcolor} {0 setgray} ifelse
+ 0 cX neg moveto
+ 0 cX 2 div neg lineto stroke
+ cX neg 0 moveto
+ cX 2 div neg 0 lineto stroke
+ grestore
+} def
+%
+% RegMark %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% x_center y_center RegMark - %
+% %
+% Make a registration mark at x_center y_center. Consists of two concentric %
+% circles, the inner one filled, and a cross hair through them. Preferred %
+% by those who register films for proof. Checks to see if TeXcolorcmyk is %
+% defined---if there is no color, you don't need registration marks! %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+/RegMark
+{
+ /TeXcolorcmyk where
+ {
+ pop
+ gsave
+ translate
+ .3 setlinewidth
+ 1 1 1 1 setcmykcolor
+ 0 0 3 0 360 arc fill
+ 0 0 6 0 360 arc stroke
+ 0 1 3 {
+ pop
+ 90 rotate
+ 0 0 0 0 setcmykcolor
+ 0 0 moveto 3 0 lineto stroke
+ 1 1 1 1 setcmykcolor
+ 3 0 moveto 8 0 lineto stroke
+ } for
+ grestore
+ } {pop pop} ifelse
+} def
+%
+% DoLogo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% x_left y_upper DoLogo - %
+% %
+% If /CompositorName is defined, then the logo will be placed in the crop %
+% area. /JobDescription and /Contractor can also be defined in the TeX file %
+% to define the job. If there is no definition, they simply will not show %
+% up. Examples: %
+% /CompositorName (Meridian Creative Group) def %
+% /JobDescription (College Algebra: Concepts and Models 2/e) def %
+% /Contractor (D.C. Heath and Company) def %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+/DoLogo
+{
+ moveto
+ save
+ %
+ % Variables to control the look of the Logo:
+ %
+ /LogoVgap 1 def % Vertical gap between logo string and box
+ /LogoHgap 3 def % Horizontal gap between logo string and box
+ /LogoFont {6 /Helvetica} def % The font to use for this logo.
+ %
+ % Gather some useful information about the Logo Font.
+ %
+ /LogoAscent LogoFont findfont /FontBBox get 3 get abs 1000 div mul def
+ /LogoDescent LogoFont findfont /FontBBox get 1 get abs 1000 div mul def
+ /LogoHeight LogoAscent LogoDescent add def
+ %
+ % <string> AddToLogo <string width>
+ %
+ /LogoWidth 0 def
+ /AddToLogo
+ {
+ dup show % leaving <string> on stack
+ stringwidth pop % <swidth> on stack
+ } def
+ %
+ % Start by setting line width, color, and establish logo font.
+ %
+ .24 setlinewidth
+ /TeXcolorcmyk where {pop 1 1 1 1 setcmykcolor} {0 setgray} ifelse
+ LogoFont findfont exch scalefont setfont
+ %
+ % Then move into position
+ %
+ LogoHgap LogoVgap LogoAscent add neg rmoveto
+ %
+ % If there is a logo, there will be a compositor, so start by setting
+ % the compositor name and add to the LogoWidth.
+ %
+ CompositorName AddToLogo % Add compositor name to logo
+ LogoWidth add /LogoWidth exch def % Add compositor name to logo width
+ %
+ % If there is a job description, set it next.
+ %
+ /JobDescription where
+ {
+ pop % Get rid of dictionary
+ LogoFont pop 0 rmoveto % Move a bit to the right
+ LogoWidth LogoFont pop add % Add that on to the logo width
+ JobDescription AddToLogo % Add job description to logo
+ add /LogoWidth exch def % Add job description to logo width
+ } if
+ %
+ % Same thing with Contractor.
+ %
+ /Contractor where
+ {
+ pop % Get rid of dictionary
+ LogoFont pop 0 rmoveto % Move a bit to the right
+ LogoWidth LogoFont pop add % Add that on to the logo width
+ Contractor AddToLogo % Add contractor to logo
+ add /LogoWidth exch def % Add contractor to logo width
+ } if
+ %
+ % Add the gaps onto the logo dimensions for box drawing.
+ %
+ /LogoHeight LogoHeight 2 LogoVgap mul add def
+ /LogoWidth LogoWidth 2 LogoHgap mul add def
+ %
+ % Move into lower right corner of box and draw it clockwise.
+ %
+ LogoHgap LogoVgap LogoDescent add neg rmoveto
+ LogoWidth neg 0 rlineto 0 LogoHeight rlineto
+ LogoWidth 0 rlineto 0 LogoHeight neg rlineto stroke
+ restore
+ stroke
+} def
+%
+/DrawCenterTicks
+{
+ gsave
+ .3 setlinewidth
+ /TeXcolorcmyk where {pop 1 1 1 1 setcmykcolor} {0 setgray} ifelse
+ hsize cX 2 mul sub 2 div cX 2 div neg moveto
+ 0 cX 2 div neg rlineto
+ hsize cX 1.5 mul sub vsize cX 2 mul sub 2 div moveto
+ cX 2 div 0 rlineto
+ hsize cX 2 mul sub 2 div vsize cX 1.5 mul sub moveto
+ 0 cX 2 div rlineto
+ cX 2 div neg vsize cX 2 mul sub 2 div moveto
+ cX 2 div neg 0 rlineto
+ stroke
+ grestore
+} def
+%
+% NamePlates %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% left bottom NamePlates - %
+% %
+% /FirstPlate, /SecondPlate, /ThirdPlate, and /FourthPlate have default %
+% names but may be overridden in the job.hdr. %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+/NamePlates
+{
+ gsave
+ translate
+ % Make sure each plate has a name.
+ /FirstPlate where {pop} {/FirstPlate (Cyan) def} ifelse
+ /SecondPlate where {pop} {/SecondPlate (Magenta) def} ifelse
+ /ThirdPlate where {pop} {/ThirdPlate (Yellow) def} ifelse
+ /FourthPlate where {pop} {/FourthPlate (Black) def} ifelse
+ /Helvetica-Bold findfont 10 scalefont setfont
+ % Cyan block
+ 1 0 0 0 setcmykcolor
+ 0 0 moveto
+ 9 0 lineto
+ 9 9 lineto
+ 0 9 lineto
+ closepath
+ fill
+ 0 0 0 0 setcmykcolor
+ 0.75 1 moveto
+ (C) show
+ % Magenta block
+ 0 1 0 0 setcmykcolor
+ 9 0 moveto
+ 18 0 lineto
+ 18 9 lineto
+ 9 9 lineto
+ closepath
+ fill
+ 0 0 0 0 setcmykcolor
+ 9.25 1 moveto
+ (M) show
+ % Yellow block
+ 0 0 1 0 setcmykcolor
+ 18 0 moveto
+ 27 0 lineto
+ 27 9 lineto
+ 18 9 lineto
+ closepath
+ fill
+ 0 0 0 0 setcmykcolor
+ 19.25 1 moveto
+ (Y) show
+ % Black block
+ 0 0 0 1 setcmykcolor
+ 27 0 moveto
+ 36 0 lineto
+ 36 9 lineto
+ 27 9 lineto
+ closepath
+ fill
+ 0 0 0 0 setcmykcolor
+ 27.5 1 moveto
+ (K) show
+ % Name Plates
+ /Helvetica-Narrow findfont 9 scalefont setfont
+ 1 1 1 1 setcmykcolor
+ ( Plate:) show
+ 1 0 0 0 setcmykcolor
+ FirstPlate show
+ 0 1 0 0 setcmykcolor
+ SecondPlate show
+ 0 0 1 0 setcmykcolor
+ ThirdPlate show
+ 0 0 0 1 setcmykcolor
+ FourthPlate show
+ grestore
+} def
+%
+end %TeXDict
+%
+/bop-hook {
+ cX dup TR % move the origin a bit
+ gsave
+ % Draw center tic marks in the crop margin
+ DrawCenterTicks
+ % Do the logo
+ /CompositorName where {pop cX 2 div dup neg DoLogo} if
+ % Name the plates
+ /TeXcolorcmyk where {pop hsize 2 div cX add -18 NamePlates} if
+ % now draw four crop marks and four registration marks
+ 0 0 0 CM cX -2 div dup RegMark
+ vsize cX 2 mul sub dup
+ hsize cX 2 mul sub dup
+ isls { 4 2 roll } if
+ 0 2 copy 90 CM cX 2 div sub exch cX 2 div add exch RegMark
+ exch 2 copy 180 CM cX 2 div add exch cX 2 div add exch RegMark
+ 0 exch 2 copy 270 CM cX 2 div add exch cX 2 div sub exch RegMark
+ grestore
+ 0 cX -2 mul TR % now move to where we start drawing
+ isls { cX -2 mul 0 TR } if
+} def
diff --git a/Build/source/texk/dvipsk/contrib/latex209/avantgarde.sty b/Build/source/texk/dvipsk/contrib/latex209/avantgarde.sty
new file mode 100644
index 00000000000..91ae8f388c1
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/avantgarde.sty
@@ -0,0 +1,11 @@
+% latex style using AvantGarde for text.
+
+\def\@mrm{pagk}% AvantGarde - book
+\def\@mit{pagko}% AvantGarde - book oblique
+\def\@msl{pagdo}% AvantGarde - demi oblique
+\def\@mbf{pagd}% AvantGarde - demi
+\def\@mcsc{pagkc}% AvantGarde - book - small caps
+\def\@mtt{pcrr}% courier
+\def\@mss{phvr}% helvetica
+
+\input psfonts.sty
diff --git a/Build/source/texk/dvipsk/contrib/latex209/blackdvi.sty b/Build/source/texk/dvipsk/contrib/latex209/blackdvi.sty
new file mode 100644
index 00000000000..85e7fd38a28
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/blackdvi.sty
@@ -0,0 +1,109 @@
+% This is BLACKDVI.STY and BLACKDVI.TEX in text format, as of March 5,
+% 1992, written by Jim Hafner, HAFNER@ALMADEN, or hafner@almaden.ibm.com.
+% This file turns all color commands defined by COLORDVI.STY or COLORDVI.TEX
+% into no-ops and so can be used to get B/W printing without having to
+% ferret out all the color macros. Modified by Tomas Rokicki to be a
+% bit smaller.
+%
+% 20 Aug. 1992: Revised by J. Hafner, by adding \globalColor as a no-op.
+%
+% For example, with FoilTeX, just use
+% \documentstyle[blackdvi]{foils}
+% in place of
+% \documentstyle[colordvi]{foils}
+%
+% This file can be used anywhere COLORDVI.STY or COLORDVI.TEX is used. In
+% particular, It can be used in any flavor of LaTeX (e.g. LaTeX,
+% FoilTeX, AMS-LaTeX) by adding the keyword "blackdvi" to the options in
+% the \documentstyle command (e.g., "\documentstyle[blackdvi]{foils}") or
+% \input in any flavor of TeX (e.g. Plain TeX, eplain, AMS-TeX or any of
+% the above LaTeX flavors) with the command "\input blackdvi".
+%
+% Here is the background command
+\def\background#1{}%
+%
+% This is used to define all the \newColor macros defined by \newColor
+% as no-ops.
+\def\newColor #1 {\expandafter\def\csname text#1\endcsname{}%
+ \expandafter\def\csname #1\endcsname##1{##1}}%
+%
+% Here are the two macros used for user-definable colors
+\def\textColor#1{}
+\def\Color#1#2{#2}
+%
+% This is the macro that is used to protect certain regions of the
+% text from corruption by local color commands. See COLORDVI.STY for
+% more information. We make it a no-op in this style.
+\def\globalColor#1{#1}
+%
+% Here are the preset color names. This list should match the list
+% in <colordvi.[tex,sty]>.
+%
+\newColor GreenYellow
+\newColor Yellow
+\newColor Goldenrod
+\newColor Dandelion
+\newColor Apricot
+\newColor Peach
+\newColor Melon
+\newColor YellowOrange
+\newColor Orange
+\newColor BurntOrange
+\newColor Bittersweet
+\newColor RedOrange
+\newColor Mahogany
+\newColor Maroon
+\newColor BrickRed
+\newColor Red
+\newColor OrangeRed
+\newColor RubineRed
+\newColor WildStrawberry
+\newColor Salmon
+\newColor CarnationPink
+\newColor Magenta
+\newColor VioletRed
+\newColor Rhodamine
+\newColor Mulberry
+\newColor RedViolet
+\newColor Fuchsia
+\newColor Lavender
+\newColor Thistle
+\newColor Orchid
+\newColor DarkOrchid
+\newColor Purple
+\newColor Plum
+\newColor Violet
+\newColor RoyalPurple
+\newColor BlueViolet
+\newColor Periwinkle
+\newColor CadetBlue
+\newColor CornflowerBlue
+\newColor MidnightBlue
+\newColor NavyBlue
+\newColor RoyalBlue
+\newColor Blue
+\newColor Cerulean
+\newColor Cyan
+\newColor ProcessBlue
+\newColor SkyBlue
+\newColor Turquoise
+\newColor TealBlue
+\newColor Aquamarine
+\newColor BlueGreen
+\newColor Emerald
+\newColor JungleGreen
+\newColor SeaGreen
+\newColor Green
+\newColor ForestGreen
+\newColor PineGreen
+\newColor LimeGreen
+\newColor YellowGreen
+\newColor SpringGreen
+\newColor OliveGreen
+\newColor RawSienna
+\newColor Sepia
+\newColor Brown
+\newColor Tan
+\newColor Gray
+\newColor Black
+\newColor White
diff --git a/Build/source/texk/dvipsk/contrib/latex209/bookman.sty b/Build/source/texk/dvipsk/contrib/latex209/bookman.sty
new file mode 100644
index 00000000000..520e4ebdb68
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/bookman.sty
@@ -0,0 +1,11 @@
+% latex style using Bookman for text
+
+\def\@mrm{pbkl}% Bookman - light
+\def\@mit{pbkli}% Bookman - light italic
+\def\@msl{pbkdi}% Bookman - demi italic
+\def\@mbf{pbkd}% Bookman - demi
+\def\@mcsc{pbklc}% Bookman - light - small caps
+\def\@mtt{pcrr}% courier
+\def\@mss{phvr}% helvetica
+
+\input psfonts.sty
diff --git a/Build/source/texk/dvipsk/contrib/latex209/chancery.sty b/Build/source/texk/dvipsk/contrib/latex209/chancery.sty
new file mode 100644
index 00000000000..7f87fd9d617
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/chancery.sty
@@ -0,0 +1,11 @@
+% latex style using Zapf Chancery for text.
+
+\def\@mrm{pzcmi}% Zapf Chancery Medium Italic
+\def\@mit{pzcmi}% Zapf Chancery Medium Italic
+\def\@msl{pzcmi}% Zapf Chancery Medium Italic
+\def\@mbf{pzcmi}% Zapf Chancery Medium Italic
+\def\@mcsc{pzcmi}% Zapf Chancery Medium Italic
+\def\@mtt{pcrr}% courier
+\def\@mss{phvr}% helvetica
+
+\input psfonts.sty
diff --git a/Build/source/texk/dvipsk/contrib/latex209/colordvi.sty b/Build/source/texk/dvipsk/contrib/latex209/colordvi.sty
new file mode 100644
index 00000000000..df812f8df60
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/colordvi.sty
@@ -0,0 +1,162 @@
+% This is COLORDVI.TEX and COLORDVI.STY in text format, as of
+% March 5, 1992, written by Jim Hafner, HAFNER@ALMADEN, or
+% hafner@almaden.ibm.com. Modified by Tomas Rokicki to be a
+% bit smaller and easier to add to.
+%
+% 20 Aug. 1992: Revised by J. Hafner, by adding \globalColor.
+%
+% This style file can be used to get color in TeX, LaTeX or more
+% importantly, FoilTeX as an optional style file. It is generic in
+% that the color parameters are determined by the driver's header files.
+%
+% It can be used with any driver which knows how to process the keywords
+% in the \special commands. Currently, only versions of dvips greater
+% than 5.478 (dvips is the DVI->PostScript driver by Tom Rokicki) and
+% TeXview on the NeXT interpret these specials.
+%
+% This file can be used in any flavor of LaTeX (e.g. LaTeX, FoilTeX,
+% AMS-LaTeX) by adding the keyword "colordvi" to the options in the
+% \documentstyle command (e.g., "\documentstyle[colordvi]{foils}") or \input
+% in any flavor of TeX (e.g. Plain TeX, eplain, AMS-TeX or any of the
+% above LaTeX flavors) with the command "\input colordvi".
+%
+% The actual parameters for each color are determined by the device
+% driver.
+% For "dvips", that is the header file color.pro prepended to the
+% output file by dvips. They can be overrriden by a user-supplied
+% header, called by either the -h option or the "h" flag in a printer
+% configuration file, or in the .dvipsrc (or its analogue on other
+% systems).
+%
+% Most of the color names and their matches were based on the
+% most recent (at time of writing) Crayola Crayon box of 64 colors.
+%
+% There are 68 predefined colors. At the end of this file is a
+% listing of the color names and their approximate PANTONE color
+% match. This is for reference purposes only.
+%
+% The first macro lets the user specify the background color for the
+% document. It sets the background color for the current page and all
+% succeeding pages, unless changed by another command of this type. To
+% change the background color back to the default, issue
+% \background{White}
+%
+\def\background#1{\special{background #1}}
+%
+% There are two types of text color commands. The first is in the form
+% \ColorName (note the uppercase for the color name).
+%
+% It is called a local color command since it takes one argument
+% enclosed in brackets. It writes the contents of its argument in the
+% selected color. This should be used for local or nested color
+% changes, since it restores the original color state when it completes.
+% The second type of color command is in the form
+% \textColorName
+% This uses the same naming convention as before. It is called a global
+% color command since it takes no arguments and simply sets the color at
+% this point. No previous color information is saved. IF YOU USE THIS
+% INTERNAL TO ANY LOCAL COLOR COMMAND, THE NESTING HISTORY IS LOST.
+%
+% This next definition is used in an invocation of a \textColorName
+% macro to save the global color value in local form via the \globalColor
+% macro. This new macro can then be used to protect certain regions of
+% the text, like item tags and headers and footers which can be
+% corrupted by local colors. In particular, item tags in lists can
+% incorrectly inherit the color from a local color command immediately
+% following it. The \subdef macro is invoked within the invocation of a
+% global color change.
+%
+\def\subdef#1{\gdef\globalColor##1{\special
+ {color push #1}##1\special{color pop}}}
+%
+% Here are the global color changers, with color codes defined;
+% these are used to define the small region colors.
+%
+% This first is for user defined color. The argument #1 is for a "CMYK"
+% quadruple of intensity values between 0 and 1. (CMYK stands for Cyan,
+% Magenta, Yellow and Black.) E.g., \textColor{.2 .3 .4 .1}
+%
+\def\textColor#1{\subdef{cmyk #1}\special{color cmyk #1}}
+%
+% and a userdefinable local color command.
+\def\Color#1#2{\special{color push cmyk #1}#2\special{color pop}}
+%
+%
+\def\newColor #1 {\expandafter\def\csname #1\endcsname##1{\special
+ {color push #1}##1\special{color pop}}%
+ \expandafter\def\csname text#1\endcsname{\subdef{#1}%
+ \special{color #1}}}%
+%
+% Here are the color names and their PANTONE match (approximately)
+%
+\newColor GreenYellow % GreenYellow Approximate PANTONE 388
+\newColor Yellow % Yellow Approximate PANTONE YELLOW
+\newColor Goldenrod % Goldenrod Approximate PANTONE 109
+\newColor Dandelion % Dandelion Approximate PANTONE 123
+\newColor Apricot % Apricot Approximate PANTONE 1565
+\newColor Peach % Peach Approximate PANTONE 164
+\newColor Melon % Melon Approximate PANTONE 177
+\newColor YellowOrange % YellowOrange Approximate PANTONE 130
+\newColor Orange % Orange Approximate PANTONE ORANGE-021
+\newColor BurntOrange % BurntOrange Approximate PANTONE 388
+\newColor Bittersweet % Bittersweet Approximate PANTONE 167
+\newColor RedOrange % RedOrange Approximate PANTONE 179
+\newColor Mahogany % Mahogany Approximate PANTONE 484
+\newColor Maroon % Maroon Approximate PANTONE 201
+\newColor BrickRed % BrickRed Approximate PANTONE 1805
+\newColor Red % Red VERY-Approx PANTONE RED
+\newColor OrangeRed % OrangeRed No PANTONE match
+\newColor RubineRed % RubineRed Approximate PANTONE RUBINE-RED
+\newColor WildStrawberry % WildStrawberry Approximate PANTONE 206
+\newColor Salmon % Salmon Approximate PANTONE 183
+\newColor CarnationPink % CarnationPink Approximate PANTONE 218
+\newColor Magenta % Magenta Approximate PANTONE PROCESS-MAGENTA
+\newColor VioletRed % VioletRed Approximate PANTONE 219
+\newColor Rhodamine % Rhodamine Approximate PANTONE RHODAMINE-RED
+\newColor Mulberry % Mulberry Approximate PANTONE 241
+\newColor RedViolet % RedViolet Approximate PANTONE 234
+\newColor Fuchsia % Fuchsia Approximate PANTONE 248
+\newColor Lavender % Lavender Approximate PANTONE 223
+\newColor Thistle % Thistle Approximate PANTONE 245
+\newColor Orchid % Orchid Approximate PANTONE 252
+\newColor DarkOrchid % DarkOrchid No PANTONE match
+\newColor Purple % Purple Approximate PANTONE PURPLE
+\newColor Plum % Plum VERY-Approx PANTONE 518
+\newColor Violet % Violet Approximate PANTONE VIOLET
+\newColor RoyalPurple % RoyalPurple Approximate PANTONE 267
+\newColor BlueViolet % BlueViolet Approximate PANTONE 2755
+\newColor Periwinkle % Periwinkle Approximate PANTONE 2715
+\newColor CadetBlue % CadetBlue Approximate PANTONE (534+535)/2
+\newColor CornflowerBlue % CornflowerBlue Approximate PANTONE 292
+\newColor MidnightBlue % MidnightBlue Approximate PANTONE 302
+\newColor NavyBlue % NavyBlue Approximate PANTONE 293
+\newColor RoyalBlue % RoyalBlue No PANTONE match
+\newColor Blue % Blue Approximate PANTONE BLUE-072
+\newColor Cerulean % Cerulean Approximate PANTONE 3005
+\newColor Cyan % Cyan Approximate PANTONE PROCESS-CYAN
+\newColor ProcessBlue % ProcessBlue Approximate PANTONE PROCESS-BLUE
+\newColor SkyBlue % SkyBlue Approximate PANTONE 2985
+\newColor Turquoise % Turquoise Approximate PANTONE (312+313)/2
+\newColor TealBlue % TealBlue Approximate PANTONE 3145
+\newColor Aquamarine % Aquamarine Approximate PANTONE 3135
+\newColor BlueGreen % BlueGreen Approximate PANTONE 320
+\newColor Emerald % Emerald No PANTONE match
+\newColor JungleGreen % JungleGreen Approximate PANTONE 328
+\newColor SeaGreen % SeaGreen Approximate PANTONE 3268
+\newColor Green % Green VERY-Approx PANTONE GREEN
+\newColor ForestGreen % ForestGreen Approximate PANTONE 349
+\newColor PineGreen % PineGreen Approximate PANTONE 323
+\newColor LimeGreen % LimeGreen No PANTONE match
+\newColor YellowGreen % YellowGreen Approximate PANTONE 375
+\newColor SpringGreen % SpringGreen Approximate PANTONE 381
+\newColor OliveGreen % OliveGreen Approximate PANTONE 582
+\newColor RawSienna % RawSienna Approximate PANTONE 154
+\newColor Sepia % Sepia Approximate PANTONE 161
+\newColor Brown % Brown Approximate PANTONE 1615
+\newColor Tan % Tan No PANTONE match
+\newColor Gray % Gray Approximate PANTONE COOL-GRAY-8
+\newColor Black % Black Approximate PANTONE PROCESS-BLACK
+\newColor White % White No PANTONE match
+
+% Now we make sure that we initialize the global color to Black
+\subdef{Black}
diff --git a/Build/source/texk/dvipsk/contrib/latex209/ncs.sty b/Build/source/texk/dvipsk/contrib/latex209/ncs.sty
new file mode 100644
index 00000000000..e7b996f7e6a
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/ncs.sty
@@ -0,0 +1,11 @@
+% latex style using New Century Schoolbook for text.
+
+\def\@mrm{pncr}% new century schoolbook
+\def\@mit{pncri}% new century schoolbook - italic
+\def\@msl{pncbi}% new century schoolbook - bold italic
+\def\@mbf{pncb}% new century schoolbook - bold
+\def\@mcsc{pncrc}% new century schoolbook - small caps
+\def\@mtt{pcrr}% courier
+\def\@mss{phvr}% helvetica
+
+\input psfonts.sty
diff --git a/Build/source/texk/dvipsk/contrib/latex209/palatino.sty b/Build/source/texk/dvipsk/contrib/latex209/palatino.sty
new file mode 100644
index 00000000000..41d95d322f5
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/palatino.sty
@@ -0,0 +1,11 @@
+% latex style using Palatino for text.
+
+\def\@mrm{pplr}% palatino
+\def\@mit{pplri}% palatino - italic
+\def\@msl{pplro}% palatino - oblique
+\def\@mbf{pplb}% palatino - bold
+\def\@mcsc{pplrc}% palatino - small caps
+\def\@mtt{pcrr}% courier
+\def\@mss{phvr}% helvetica
+
+\input psfonts.sty
diff --git a/Build/source/texk/dvipsk/contrib/latex209/psfonts.sty b/Build/source/texk/dvipsk/contrib/latex209/psfonts.sty
new file mode 100644
index 00000000000..97948237045
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/psfonts.sty
@@ -0,0 +1,266 @@
+% psfonts.sty - re-work of lfonts.tex to allow postscript fonts
+% to replace cmr fonts. Original by LA Carr. Hacked by Van
+% Jacobson.
+%
+% $Header: psfonts.sty,v 1.2 88/01/23 17:52:49 van Exp $
+%
+\def\@@getfont#1#2#3#4#5#6#7{%
+\@ifundefined{\string #1\string #5}{\global\expandafter
+ \font \csname \string #1\string #5\endcsname #4\@ptscale{#5}\relax}{}%
+\@ifundefined{\string #1\string #6}{\global\expandafter
+ \font \csname \string #1\string #6\endcsname #4\@ptscale{#6}\relax}{}%
+\@ifundefined{\string #1\string #7}{\global\expandafter
+ \font \csname \string #1\string #7\endcsname #4\@ptscale{#7}\relax}{}%
+\@ifundefined{\string #1\string #3}{\global\expandafter
+ \let \csname \string #1\string #3\endcsname #3\relax
+ \@addfontinfo#3{\textfont #2\csname \string #1\string #5\endcsname
+ \scriptfont #2\csname \string #1\string #6\endcsname
+ \scriptscriptfont #2\csname \string #1\string #7\endcsname
+ \def#1{\fam #2\csname\string #1\string #5\endcsname}}}{}#3#1}
+\def\@@@getfont#1#2#3#4#5{%
+\@ifundefined{\string #1\string #5}{\global\expandafter
+ \font \csname \string #1\string #5\endcsname #4\@ptscale{#5}\relax}{}%
+\@ifundefined{\string #1\string #3}{\global\expandafter
+ \let \csname \string #1\string #3\endcsname #3\relax
+ \@addfontinfo#3{\def#1{\fam #2\csname\string #1\string #5\endcsname}}}{}#3#1}
+
+\def\@psfonts#1#2#3#4{%
+\def\prm{\@@getfont\prm\z@#1\@mrm{#2}{#3}{#4}}%
+\def\pit{\@@getfont\pit\itfam#1\@mit{#2}{#3}{#4}}%
+\def\psl{\@@getfont\psl\slfam#1\@msl{#2}{#3}{#4}}%
+\def\pbf{\@@getfont\pbf\bffam#1\@mbf{#2}{#3}{#4}}%
+\def\ptt{\@@getfont\ptt\ttfam#1\@mtt{#2}{#3}{#4}%
+\@nohyphens\ptt {#2}\@nohyphens\ptt {#3}\@nohyphens\ptt {#4}}%
+\def\psf{\@@getfont\psf\sffam#1\@mss{#2}{#3}{#4}}%
+\def\psc{\@@getfont\psc\scfam#1\@mcsc{#2}{#3}{#4}}}
+
+% math stuff: we want to use cmr operator characters but Times
+% letters. So, we make a new family to hold cmrX & re-mathcode
+% to force the operators to come from that family.
+\newfam\@cmrfam
+\newcount\@cmrscale
+\def\@mathmap#1{\@cmrscale=\@cmrfam \multiply\@cmrscale by 256
+\advance\@cmrscale by \the\mathcode#1 \mathcode#1=\@cmrscale\relax}
+\def\@cmrset#1#2#3{\textfont\@cmrfam #1%
+\scriptfont\@cmrfam #2\scriptscriptfont\@cmrfam #3\relax}
+
+\@mathmap{`\(}
+\@mathmap{`\)}
+\@mathmap{`\+}
+\@mathmap{`\=}
+\@mathmap{`\[}
+\@mathmap{`\]}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\vpt{\textfont\z@\fivrm
+ \scriptfont\z@\fivrm \scriptscriptfont\z@\fivrm
+\textfont\@ne\fivmi \scriptfont\@ne\fivmi \scriptscriptfont\@ne\fivmi
+\textfont\tw@\fivsy \scriptfont\tw@\fivsy \scriptscriptfont\tw@\fivsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath
+ \unboldmath\fam\@ne\@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@vpt555%
+\@cmrset\fivrm\fivrm\fivrm%
+\def\ly{\fam\lyfam\fivly}\textfont\lyfam\fivly
+ \scriptfont\lyfam\fivly \scriptscriptfont\lyfam\fivly
+\@setstrut\rm}
+\def\@vpt{}
+\def\vipt{\textfont\z@\sixrm
+ \scriptfont\z@\sixrm \scriptscriptfont\z@\sixrm
+\textfont\@ne\sixmi \scriptfont\@ne\sixmi \scriptscriptfont\@ne\sixmi
+\textfont\tw@\sixsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\sixsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath
+ \unboldmath\@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@vipt666%
+\@cmrset\sixrm\sixrm\sixrm%
+\def\ly{\fam\lyfam\sixly}\textfont\lyfam\sixly
+ \scriptfont\lyfam\sixly \scriptscriptfont\lyfam\sixly
+\@setstrut\rm}
+\def\@vipt{}
+\def\viipt{\textfont\z@\sevrm
+ \scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm
+\textfont\@ne\sevmi \scriptfont\@ne\fivmi \scriptscriptfont\@ne\fivmi
+\textfont\tw@\sevsy \scriptfont\tw@\fivsy \scriptscriptfont\tw@\fivsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath
+\unboldmath\@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@viipt755%
+\@cmrset\sevrm\sixrm\fivrm%
+\def\ly{\fam\lyfam\sevly}\textfont\lyfam\sevly
+ \scriptfont\lyfam\fivly \scriptscriptfont\lyfam\fivly
+\@setstrut \rm}
+\def\@viipt{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\viiipt{\textfont\z@\egtrm
+ \scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm
+\textfont\@ne\egtmi \scriptfont\@ne\sixmi \scriptscriptfont\@ne\fivmi
+\textfont\tw@\egtsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath
+\unboldmath\@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@viiipt865%
+\@cmrset\egtrm\sixrm\fivrm%
+\def\ly{\fam\lyfam\egtly}\textfont\lyfam\egtly
+ \scriptfont\lyfam\sixly \scriptscriptfont\lyfam\fivly
+\@setstrut \rm}
+\def\@viiipt{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\ixpt{\textfont\z@\ninrm
+ \scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm
+\textfont\@ne\ninmi \scriptfont\@ne\sixmi \scriptscriptfont\@ne\fivmi
+\textfont\tw@\ninsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@ixpt965%
+\@cmrset\ninrm\sixrm\fivrm%
+\def\ly{\fam\lyfam\ninly}\textfont\lyfam\ninly
+ \scriptfont\lyfam\sixly \scriptscriptfont\lyfam\fivly
+\@setstrut \rm}
+\def\@ixpt{}
+\def\xpt{\textfont\z@\tenrm
+ \scriptfont\z@\sevrm \scriptscriptfont\z@\fivrm
+\textfont\@ne\tenmi \scriptfont\@ne\sevmi \scriptscriptfont\@ne\fivmi
+\textfont\tw@\tensy \scriptfont\tw@\sevsy \scriptscriptfont\tw@\fivsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\tenmi
+ \textfont\tw@\tensy \textfont\lyfam\tenly
+ \@boldfalse}\@boldfalse
+\def\boldmath{\@ifundefined{tenmib}{\global\font\tenmib\@mbi
+ \global\font\tensyb\@mbsy
+ \global\font\tenlyb\@lasyb\relax\@addfontinfo\@xpt
+ {\def\boldmath{\everymath{\mit}\everydisplay{\mit}\@prtct\@nomathbold
+ \textfont\@ne\tenmib \textfont\tw@\tensyb
+ \textfont\lyfam\tenlyb \@prtct\@boldtrue}}}{}\@xpt\boldmath}%
+\@psfonts\@xpt{10}75%
+\@cmrset\tenrm\sevrm\fivrm%
+\def\ly{\fam\lyfam\tenly}\textfont\lyfam\tenly
+ \scriptfont\lyfam\sevly \scriptscriptfont\lyfam\fivly
+\@setstrut \rm}
+\def\@xpt{}
+\def\xipt{\textfont\z@\elvrm
+ \scriptfont\z@\egtrm \scriptscriptfont\z@\sixrm
+\textfont\@ne\elvmi \scriptfont\@ne\egtmi \scriptscriptfont\@ne\sixmi
+\textfont\tw@\elvsy \scriptfont\tw@\egtsy \scriptscriptfont\tw@\sixsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\elvmi \textfont\tw@\elvsy
+ \textfont\lyfam\elvly \@boldfalse}\@boldfalse
+\def\boldmath{\@ifundefined{elvmib}{\global\font\elvmib\@mbi\@halfmag
+ \global\font\elvsyb\@mbsy\@halfmag
+ \global\font\elvlyb\@lasyb\@halfmag\relax\@addfontinfo\@xipt
+ {\def\boldmath{\everymath{\mit}\everydisplay{\mit}\@prtct\@nomathbold
+ \textfont\@ne\elvmib \textfont\tw@\elvsyb
+ \textfont\lyfam\elvlyb\@prtct\@boldtrue}}}{}\@xipt\boldmath}%
+\@psfonts\@xipt{11}86%
+\@cmrset\elvrm\egtrm\sixrm%
+\def\ly{\fam\lyfam\elvly}\textfont\lyfam\elvly
+ \scriptfont\lyfam\egtly \scriptscriptfont\lyfam\sixly
+\@setstrut \rm}
+\def\@xipt{}
+\def\xiipt{\textfont\z@\twlrm
+ \scriptfont\z@\egtrm \scriptscriptfont\z@\sixrm
+\textfont\@ne\twlmi \scriptfont\@ne\egtmi \scriptscriptfont\@ne\sixmi
+\textfont\tw@\twlsy \scriptfont\tw@\egtsy \scriptscriptfont\tw@\sixsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\twlmi
+ \textfont\tw@\twlsy \textfont\lyfam\twlly
+ \@boldfalse}\@boldfalse
+\def\boldmath{\@ifundefined{twlmib}{\global\font\twlmib\@mbi\@magscale1\global
+ \font\twlsyb\@mbsy \@magscale1\global\font
+ \twllyb\@lasyb\@magscale1\relax\@addfontinfo\@xiipt
+ {\def\boldmath{\everymath
+ {\mit}\everydisplay{\mit}\@prtct\@nomathbold
+ \textfont\@ne\twlmib \textfont\tw@\twlsyb
+ \textfont\lyfam\twllyb\@prtct\@boldtrue}}}{}\@xiipt\boldmath}%
+\@psfonts\@xiipt{12}86%
+\@cmrset\twlrm\egtrm\sixrm%
+\def\ly{\fam\lyfam\twlly}\textfont\lyfam\twlly
+ \scriptfont\lyfam\egtly \scriptscriptfont\lyfam\sixly
+ \@setstrut \rm}
+\def\@xiipt{}
+\def\xivpt{\textfont\z@\frtnrm
+ \scriptfont\z@\tenrm \scriptscriptfont\z@\sevrm
+\textfont\@ne\frtnmi \scriptfont\@ne\tenmi \scriptscriptfont\@ne\sevmi
+\textfont\tw@\frtnsy \scriptfont\tw@\tensy \scriptscriptfont\tw@\sevsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\frtnmi \textfont\tw@\frtnsy
+ \textfont\lyfam\frtnly \@boldfalse}\@boldfalse
+\def\boldmath{\@ifundefined{frtnmib}{\global\font
+ \frtnmib\@mbi\@magscale2\global\font\frtnsyb\@mbsy\@magscale2
+ \global\font\frtnlyb\@lasyb\@magscale2\relax\@addfontinfo\@xivpt
+ {\def\boldmath{\everymath
+ {\mit}\everydisplay{\mit}\@prtct\@nomathbold
+ \textfont\@ne\frtnmib \textfont\tw@\frtnsyb
+ \textfont\lyfam\frtnlyb\@prtct\@boldtrue}}}{}\@xivpt\boldmath}%
+\@psfonts\@xivpt{14}{10}7%
+\@cmrset\frtnrm\tenrm\sevrm%
+\def\ly{\fam\lyfam\frtnly}\textfont\lyfam\frtnly
+ \scriptfont\lyfam\tenly \scriptscriptfont\lyfam\sevly
+\@setstrut \rm}
+\def\@xivpt{}
+\def\xviipt{\textfont\z@\svtnrm
+ \scriptfont\z@\twlrm \scriptscriptfont\z@\tenrm
+\textfont\@ne\svtnmi \scriptfont\@ne\twlmi \scriptscriptfont\@ne\tenmi
+\textfont\tw@\svtnsy \scriptfont\tw@\twlsy \scriptscriptfont\tw@\tensy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\svtnmi \textfont\tw@\svtnsy \textfont\lyfam\svtnly
+ \@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@xviipt{17}{12}{10}%
+\@cmrset\svtnrm\twlrm\tenrm%
+\def\ly{\fam\lyfam\svtnly}\textfont\lyfam\svtnly
+ \scriptfont\lyfam\twlly \scriptscriptfont\lyfam\tenly
+\@setstrut \rm}
+\def\@xviipt{}
+\def\xxpt{\textfont\z@\twtyrm
+ \scriptfont\z@\frtnrm \scriptscriptfont\z@\twlrm
+\textfont\@ne\twtymi \scriptfont\@ne\frtnmi \scriptscriptfont\@ne\twlmi
+\textfont\tw@\twtysy \scriptfont\tw@\frtnsy \scriptscriptfont\tw@\twlsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\twtymi \textfont\tw@\twtysy \textfont\lyfam\twtyly
+ \@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@xxpt{20}{14}{12}%
+\@cmrset\twtyrm\frtnrm\twlrm%
+\def\ly{\fam\lyfam\twtyly}\textfont\lyfam\twtyly
+ \scriptfont\lyfam\frtnly \scriptscriptfont\lyfam\twlly
+\@setstrut \rm}
+\def\@xxpt{}
+\def\xxvpt{\textfont\z@\twfvrm
+ \scriptfont\z@\twtyrm \scriptscriptfont\z@\svtnrm
+\textfont\@ne\twtymi \scriptfont\@ne\twtymi \scriptscriptfont\@ne\svtnmi
+\textfont\tw@\twtysy \scriptfont\tw@\twtysy \scriptscriptfont\tw@\svtnsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\twtymi \textfont\tw@\twtysy \textfont\lyfam\twtyly
+ \@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@xxvpt{25}{20}{17}%
+\@cmrset\twfvrm\twtyrm\svtnrm%
+\def\ly{\fam\lyfam\twtyly}\textfont\lyfam\twtyly
+ \scriptfont\lyfam\twtyly \scriptscriptfont\lyfam\svtnly
+\@setstrut \rm}
+\def\@xxvpt{}
+%
+% Fix accents for PostScript fonts (but break them for non-PostScript
+% fonts.) -tgr, 6 April 91.
+%
+\def\H#1{{\accent"CD #1}}\def\.#1{{\accent"C7 #1}}
+\def\dot{\mathaccent"70C7 }
+\newdimen\aadimen
+\def\AA{\leavevmode\setbox0\hbox{h}\aadimen\ht0
+ \advance\aadimen-1ex\setbox0\hbox{A}\rlap{\raise.67\aadimen
+ \hbox to \wd0{\hss\char'27\hss}}A}
+\def\pounds{\char163}
diff --git a/Build/source/texk/dvipsk/contrib/latex209/psgreek.sty b/Build/source/texk/dvipsk/contrib/latex209/psgreek.sty
new file mode 100644
index 00000000000..396976c8dfd
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/psgreek.sty
@@ -0,0 +1,38 @@
+%--------------------------------------------------------------
+%---------- greek.sty ---------------------
+%---------- 4/19/90 S. Janowsky -----------
+%
+% Include as a style option after times, palatino, or whatever.
+%
+\def\@mathgreekmap#1{\@cmrscale=\@cmrfam \multiply\@cmrscale by 256
+\advance\@cmrscale by \the#1 \mathchardef#1=\@cmrscale\relax}
+\@mathgreekmap{\Gamma}
+\@mathgreekmap{\Delta}
+\@mathgreekmap{\Theta}
+\@mathgreekmap{\Lambda}
+\@mathgreekmap{\Xi}
+\@mathgreekmap{\Pi}
+\@mathgreekmap{\Sigma}
+\@mathgreekmap{\Upsilon}
+\@mathgreekmap{\Phi}
+\@mathgreekmap{\Psi}
+\@mathgreekmap{\Omega}
+%
+\def\@mathaccdefmap#1#2{\@cmrscale=\@cmrfam \multiply\@cmrscale by 256
+\advance\@cmrscale by #2 \edef#1{\mathaccent\the\@cmrscale}\relax}
+%
+\@mathaccdefmap{\acute}{"0013 }
+\@mathaccdefmap{\grave}{"0012 }
+\@mathaccdefmap{\ddot}{"007F }
+\@mathaccdefmap{\tilde}{"007E }
+\@mathaccdefmap{\bar}{"0016 }
+\@mathaccdefmap{\breve}{"0015 }
+\@mathaccdefmap{\check}{"0014 }
+\@mathaccdefmap{\hat}{"005E }
+%\@mathaccdefmap{\vec}{"017E } % Not type 00
+\@mathaccdefmap{\dot}{"005F }
+%\@mathaccdefmap{\widetilde}{"0365 } % Not type 00
+%\@mathaccdefmap{\widehat}{"0362 } % Not type 00
+%
+%----------------------------------------------------
+
diff --git a/Build/source/texk/dvipsk/contrib/latex209/rotate.sty b/Build/source/texk/dvipsk/contrib/latex209/rotate.sty
new file mode 100644
index 00000000000..0660e117352
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/rotate.sty
@@ -0,0 +1,53 @@
+%
+% These macros allow you to rotate or flip a \TeX\ box. Very useful for
+% sideways tables or upsidedown answers.
+%
+% To use, create a box containing the information you want to rotate.
+% (An hbox or vbox will do.) Now call \@rotr\boxnum to rotate the
+% material and create a new box with the appropriate (flipped) dimensions.
+% \@rotr rotates right, \@rotl rotates left, \@rotu turns upside down, and
+% \@rotf flips. These boxes may contain other rotated boxes.
+%
+\newdimen\@rotdimen
+\newbox\@rotbox
+
+\def\@vspec#1{\special{ps:#1}}% passes #1 verbatim to the output
+\def\@rotstart#1{\@vspec{gsave currentpoint currentpoint translate
+ #1 neg exch neg exch translate}}% #1 can be any origin-fixing transformation
+\def\@rotfinish{\@vspec{currentpoint grestore moveto}}% gets back in synch
+%
+% First, the rotation right. The reference point of the rotated box
+% is the lower right corner of the original box.
+%
+\def\@rotr#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1%
+ \hbox to\@rotdimen{\hskip\ht#1\vbox to\wd#1{\@rotstart{90 rotate}%
+ \box#1\vss}\hss}\@rotfinish}
+%
+% Next, the rotation left. The reference point of the rotated box
+% is the upper left corner of the original box.
+%
+\def\@rotl#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1%
+ \hbox to\@rotdimen{\vbox to\wd#1{\vskip\wd#1\@rotstart{270 rotate}%
+ \box#1\vss}\hss}\@rotfinish}%
+%
+% Upside down is simple. The reference point of the rotated box
+% is the upper right corner of the original box. (The box's height
+% should be the current font's xheight, \fontdimen5\font,
+% if you want that xheight to be at the baseline after rotation.)
+%
+\def\@rotu#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1%
+ \hbox to\wd#1{\hskip\wd#1\vbox to\@rotdimen{\vskip\@rotdimen
+ \@rotstart{-1 dup scale}\box#1\vss}\hss}\@rotfinish}%
+%
+% And flipped end for end is pretty ysae too. We retain the baseline.
+%
+\def\@rotf#1{\hbox to\wd#1{\hskip\wd#1\@rotstart{-1 1 scale}%
+ \box#1\hss}\@rotfinish}%
+%
+% Now the user interface for LaTeX: \rotate[type]{text} where
+% ``type'' is `l' for left, `r' for right, `u' for upside-down, or
+% `f' for flip. `l' is the default.
+%
+\def\rotate{\@ifnextchar[{\@rotate}{\@rotate[l]}}
+\def\@rotate[#1]#2{\setbox\@rotbox=\hbox{#2}\@nameuse{@rot#1}\@rotbox}
+
diff --git a/Build/source/texk/dvipsk/contrib/latex209/times.sty b/Build/source/texk/dvipsk/contrib/latex209/times.sty
new file mode 100644
index 00000000000..3e384c8fee8
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/times.sty
@@ -0,0 +1,11 @@
+% latex style with times roman text but cm math italic.
+
+\def\@mrm{ptmr}% times - roman
+\def\@mit{ptmri}% times - italic
+\def\@msl{ptmro}% times - oblique
+\def\@mbf{ptmb}% times - bold
+\def\@mcsc{ptmrc}% times - roman - small caps
+\def\@mtt{pcrr}% courier
+\def\@mss{phvr}% helvetica
+
+\input psfonts.sty
diff --git a/Build/source/texk/dvipsk/contrib/treen.sh b/Build/source/texk/dvipsk/contrib/treen.sh
new file mode 100644
index 00000000000..33270559f5b
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/treen.sh
@@ -0,0 +1,40 @@
+#!/bin/csh
+# Tests font reencoding
+afm2tfm Times-Roman.afm -v ptmr0 rptmr0
+afm2tfm Times-Roman.afm -P extex.enc -v ptmr1 rptmr1
+afm2tfm Times-Roman.afm -T extex.enc -v ptmr2 rptmr2
+afm2tfm Times-Roman.afm -t extex.enc -v ptmr3 rptmr3
+afm2tfm Times-Roman.afm -T extex.enc -V ptmr4 rptmr4
+# these three should all be the same
+cmp rptmr4.tfm rptmr2.tfm
+cmp rptmr4.tfm rptmr1.tfm
+# these two should be the same
+cmp rptmr0.tfm rptmr3.tfm
+afm2tfm Times-Roman.afm -T extex.enc -V ptmr4 rptmr2
+vptovf ptmr0.vpl ptmr0.vf ptmr0.tfm
+vptovf ptmr1.vpl ptmr1.vf ptmr1.tfm
+vptovf ptmr2.vpl ptmr2.vf ptmr2.tfm
+vptovf ptmr3.vpl ptmr3.vf ptmr3.tfm
+vptovf ptmr4.vpl ptmr4.vf ptmr4.tfm
+tex testfont <<EOF
+ptmr0
+\leftline{\bf Normal (original) Times-Roman; Standard + Text}
+\sample\init
+rptmr0
+\table\vfill\eject\init
+ptmr1
+\leftline{\bf Times-Roman; Extended + Text}
+\sample\init
+rptmr1
+\table\vfill\eject\init
+ptmr2
+\leftline{\bf Times-Roman; Extended + Extended}
+\sample\vfill\eject\init
+ptmr3
+\leftline{\bf Times-Roman; Standard + Extended}
+\sample\vfill\eject\init
+ptmr4
+\leftline{\bf Times-Roman Small Caps; Extended + Extended}
+\sample\bye
+EOF
+dvips testfont -t testfont.ps
diff --git a/Build/source/texk/dvipsk/contrib/treen2.sh b/Build/source/texk/dvipsk/contrib/treen2.sh
new file mode 100644
index 00000000000..7c5da3a4a13
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/treen2.sh
@@ -0,0 +1,12 @@
+#!/bin/csh
+# Tests font reencoding
+afm2tfm Times-Roman.afm -T funky.enc -v ptmr9 rptmr9
+vptovf ptmr9.vpl ptmr9.vf ptmr9.tfm
+tex testfont <<EOF
+ptmr9
+\leftline{\bf Funky Times-Roman; Standard + Funky}
+\sample
+Y through x or x. pp and then pp and then pp. pp//pp//pp. ++ // pippy
+\bye
+EOF
+dvips testfont -o testfont.ps
diff --git a/Build/source/texk/dvipsk/contrib/volker/README b/Build/source/texk/dvipsk/contrib/volker/README
new file mode 100644
index 00000000000..f2138917eda
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/README
@@ -0,0 +1,149 @@
+NOTE S Rahtz 1998/01/18: renamed files to suite 8+3 <name>.cfg style
+********************************************************************
+
+Release 1.13, 21 Aug 1995
+Release 1.12, 02 Mar 1995
+Release 1.0, 20 Feb 1995
+
+This is a set of files which can be used with dvips to control certain
+parameters of the printer, like simplex/duplex printing, or screen
+frequencies of images.
+
+Put together by Volker Kuhlmann, VOLKER@ELEC.CANTERBURY.AC.NZ.
+No copyright. Freely distributable. If you make additions, please send
+me a copy.
+
+
+LIST OF FILES
+=============
+
+README This file.
+config.* Configuration files and header files for dvips. Special
+ format which serves both purposes.
+
+
+INSTALLATION
+============
+
+Copy these files into a directory which is searched by dvips both for
+configuration files and for header files. dvips looks in $TEXCONFIG for
+configuration files, and in $DVIPSHEADERS for header files. For details
+please see the dvips documentation.
+
+
+USAGE
+=====
+
+dvips reads the instructions in a configuration file <configfilename>
+with the -P option:
+
+ dvips -P <configfilename>
+
+All these configuration files contain the PostScript code for the
+respective operation as well, and can be used as header file as they are.
+
+Now to the stuff provided:
+
+-P simplex On a duplex printer, force printing in simplex mode. On
+ a simplex printer, this will be ignored.
+-P duplong On a duplex printer, force duplex printing with binding
+ on the long edge. On a simplex printer, this will be
+ ignored.
+-P dupshort On a duplex printer, force duplex printing with binding
+ on the short edge. On a simplex printer, this will be
+ ignored.
+-P a3 Print on A3 paper.
+ Note: this is just a demo - use "-t a3" instead!
+-P inv Print all pages inverted, i.e. white letters on black
+ background.
+ Note: this currently does not work properly. Any
+ hints/fixes greatly appreciated!
+-P screenN Print images with a screen frequency of N lpi at
+ 45 degrees.
+ N = {70, 80, 85, 90, 100, 110, 120, 130, 140, 150}
+-P screen100-0 Print images with a screen frequency of 100lpi
+ at 0 degrees.
+
+Note: When working with screen frequencies, it is possible that
+ turning the printer off and back on solves the problem of the
+ screen commands not having any effect.
+
+
+CONTROLLING SCREEN FREQUENCIES
+==============================
+
+Various PostScript commands for controlling the screen frequencies of
+images exist, but not all work on all printers. See fragments of
+PostScript code and comments below. The form working on most printers is
+
+ LPI DEGREES {FUNCTION} setscreen
+
+Insert numbers for LPI and DEGREES, and a function for FUNCTION about
+which I only know (right or wrong?):
+
+ "Should read 2 values from the stack (x, y coordinates in a
+ halftone cell), and return one in the range -1 to 1. The return
+ values determine the order in which pixels within a halftone
+ cell are whitened to produce any desired shade of gray."
+
+The simplest function is {pop}, creating a "linescreen" pattern. There
+is also a function "Dot" (currently used) and "Ellipse". For any other
+frequencies/angles/functions put the instructions in a file, and load
+the file with
+
+ dvips -h <filename>
+
+Thanks to osakari@unda.fi (Olavi Sakari) for some help, and the "Dot"
+and "Ellipse" code.
+
+Notes follow:
+
+
+%currentscreen 3 1 roll pop pop 70 45 3 -1 roll setscreen
+% Works on HP LJ3Si, HP LJ4m. Ignored on HP LJ4mv (VK).
+
+
+%currentscreen 3 1 roll pop pop 70 45 3 -1 roll sethalftone
+% Ignored on HP LJ4mv (VK).
+
+
+%70 45 {pop} setscreen
+% Produces a funny, 1-diagonal pattern ("linescreen") on HP LJ4mv (VK).
+
+
+% "Dot":
+%70 45 {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+% sub }{dup mul exch dup mul add 1 exch sub }ifelse} setscreen
+% Works on HP LJ3Si, HP LJ4m, HP LJ4mv (VK).
+
+
+% "Ellipse":
+%70 45 {dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub} setscreen
+% Works on HP LJ4mv (VK).
+
+
+%70 45
+%<<
+% /HalftoneType 1
+ % 0 gives range check error, 2 gives undefined error (VK).
+% /Frequency 150
+% /Angle 20
+ % the values for /Frequency, /Angle are irrelevant
+% /SpotFunction {pop}
+%>>
+%setscreen
+% 70 45 seem to replace /Frequency and /Angle in dict
+% - Note: NO curly braces around the dict!
+% Works on HP LJ4m, produces errors with HP LJ3Si,
+% Produces "linescreen" on HP LJ4mv caused by {pop} (VK).
+
+
+%<<
+% /HalftoneType 1
+% % 0 gives range check error, 2 gives undefined error (VK).
+% /Frequency 70
+% /Angle 45
+% /SpotFunction {pop}
+%>>
+%sethalftone % Level 2 only
+% Produces "linescreen" on HP LJ4mv caused by {pop} (VK).
diff --git a/Build/source/texk/dvipsk/contrib/volker/a3.cfg b/Build/source/texk/dvipsk/contrib/volker/a3.cfg
new file mode 100644
index 00000000000..380359026f7
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/a3.cfg
@@ -0,0 +1,17 @@
+% config.a3
+% Configuration file for dvips. Load with: dvips -P a3.
+%
+% Forces printing on A3 paper.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 21 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ a3
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.a3
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/duplong.cfg b/Build/source/texk/dvipsk/contrib/volker/duplong.cfg
new file mode 100644
index 00000000000..4c5d1f7cff9
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/duplong.cfg
@@ -0,0 +1,19 @@
+% config.duplong
+% Configuration file for dvips. Load with: dvips -P duplong.
+%
+% Prints in duplex mode with binding on the long edge.
+% Ignored on a simplex printer.
+% Works on HP LaserJet IIISi.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ statusdict begin true setduplexmode false settumble end
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.duplong
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/dupshort.cfg b/Build/source/texk/dvipsk/contrib/volker/dupshort.cfg
new file mode 100644
index 00000000000..b025ba95696
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/dupshort.cfg
@@ -0,0 +1,19 @@
+% config.dupshort
+% Configuration file for dvips. Load with: dvips -P dupshort.
+%
+% Prints in duplex mode with binding on the short edge.
+% Ignored on a simplex printer.
+% Works on HP LaserJet IIISi.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ statusdict begin true setduplexmode true settumble end
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.dupshort
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/inv.cfg b/Build/source/texk/dvipsk/contrib/volker/inv.cfg
new file mode 100644
index 00000000000..7b6223c92d4
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/inv.cfg
@@ -0,0 +1,21 @@
+% config.inv
+% Configuration file for dvips. Load with: dvips -P inv.
+%
+% Invert the printing.
+% This currently mucks up the first of the pages printed.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ %[{}
+ /exec load currenttransfer /exec load] cvx settransfer
+ [{1 exch sub} /exec load currenttransfer /exec load] cvx settransfer
+ %/fPP true def
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.inv
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr100-0.cfg b/Build/source/texk/dvipsk/contrib/volker/scr100-0.cfg
new file mode 100644
index 00000000000..1f30f67010d
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr100-0.cfg
@@ -0,0 +1,21 @@
+% config.screen100-0
+% Configuration file for dvips. Load with: dvips -P screen100-0.
+%
+% Sets screen frequency and angle for images to 100lpi/0degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 100 0
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen100-0
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr100.cfg b/Build/source/texk/dvipsk/contrib/volker/scr100.cfg
new file mode 100644
index 00000000000..636a7c373d5
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr100.cfg
@@ -0,0 +1,21 @@
+% config.screen100
+% Configuration file for dvips. Load with: dvips -P screen100.
+%
+% Sets screen frequency and angle for images to 100lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 100 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen100
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr110.cfg b/Build/source/texk/dvipsk/contrib/volker/scr110.cfg
new file mode 100644
index 00000000000..6b3f4d19f00
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr110.cfg
@@ -0,0 +1,21 @@
+% config.screen110
+% Configuration file for dvips. Load with: dvips -P screen110.
+%
+% Sets screen frequency and angle for images to 110lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 110 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen110
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr120.cfg b/Build/source/texk/dvipsk/contrib/volker/scr120.cfg
new file mode 100644
index 00000000000..fe878ece24a
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr120.cfg
@@ -0,0 +1,21 @@
+% config.screen120
+% Configuration file for dvips. Load with: dvips -P screen120.
+%
+% Sets screen frequency and angle for images to 120lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 120 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen120
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr130.cfg b/Build/source/texk/dvipsk/contrib/volker/scr130.cfg
new file mode 100644
index 00000000000..aa8f96bc85d
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr130.cfg
@@ -0,0 +1,21 @@
+% config.screen130
+% Configuration file for dvips. Load with: dvips -P screen130.
+%
+% Sets screen frequency and angle for images to 130lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 130 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen130
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr140.cfg b/Build/source/texk/dvipsk/contrib/volker/scr140.cfg
new file mode 100644
index 00000000000..2dfc4acebf3
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr140.cfg
@@ -0,0 +1,21 @@
+% config.screen140
+% Configuration file for dvips. Load with: dvips -P screen140.
+%
+% Sets screen frequency and angle for images to 140lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 140 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen140
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr150.cfg b/Build/source/texk/dvipsk/contrib/volker/scr150.cfg
new file mode 100644
index 00000000000..2798e4e5081
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr150.cfg
@@ -0,0 +1,21 @@
+% config.screen150
+% Configuration file for dvips. Load with: dvips -P screen150.
+%
+% Sets screen frequency and angle for images to 150lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 150 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen150
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr70.cfg b/Build/source/texk/dvipsk/contrib/volker/scr70.cfg
new file mode 100644
index 00000000000..1d5fd85253f
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr70.cfg
@@ -0,0 +1,21 @@
+% config.screen70
+% Configuration file for dvips. Load with: dvips -P screen70.
+%
+% Sets screen frequency and angle for images to 70lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 70 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen70
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr80.cfg b/Build/source/texk/dvipsk/contrib/volker/scr80.cfg
new file mode 100644
index 00000000000..32c8ab16a31
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr80.cfg
@@ -0,0 +1,21 @@
+% config.screen80
+% Configuration file for dvips. Load with: dvips -P screen80.
+%
+% Sets screen frequency and angle for images to 80lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 80 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen80
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr85.cfg b/Build/source/texk/dvipsk/contrib/volker/scr85.cfg
new file mode 100644
index 00000000000..1fec0c09efa
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr85.cfg
@@ -0,0 +1,21 @@
+% config.screen85
+% Configuration file for dvips. Load with: dvips -P screen85.
+%
+% Sets screen frequency and angle for images to 85lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 02 Mar 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 85 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen85
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr90.cfg b/Build/source/texk/dvipsk/contrib/volker/scr90.cfg
new file mode 100644
index 00000000000..a02a707d1c5
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr90.cfg
@@ -0,0 +1,21 @@
+% config.screen90
+% Configuration file for dvips. Load with: dvips -P screen90.
+%
+% Sets screen frequency and angle for images to 90lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 90 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen90
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/simplex.cfg b/Build/source/texk/dvipsk/contrib/volker/simplex.cfg
new file mode 100644
index 00000000000..bdf5160430c
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/simplex.cfg
@@ -0,0 +1,19 @@
+% config.simplex
+% Configuration file for dvips. Load with: dvips -P simplex.
+%
+% Forces printing in simplex mode on a duplex printer.
+% Ignored on a simplex printer.
+% Works on HP LaserJet IIISi.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ statusdict begin false setduplexmode end
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.simplex
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/whichinpath b/Build/source/texk/dvipsk/contrib/whichinpath
new file mode 100644
index 00000000000..a45177bb212
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/whichinpath
@@ -0,0 +1,13 @@
+#!/bin/sh
+#
+# Useful with the backtick execution special; helps to find PostScript
+# files on TEXINPUTS. Contributed by S. P. Q. Rahtz.
+#
+pathList=`echo ${TEXINPUTS:=.:/usr/local/tex/inputs} | tr ':' ' '`
+theFile=$1
+
+for p in $pathList
+do
+ test -f $p/$theFile && { echo $p/$theFile; exit 0; }
+done
+exit 1
diff --git a/Build/source/texk/dvipsk/crop.lpro b/Build/source/texk/dvipsk/crop.lpro
new file mode 100644
index 00000000000..5c2057200f0
--- /dev/null
+++ b/Build/source/texk/dvipsk/crop.lpro
@@ -0,0 +1,26 @@
+%!
+% This file is for crop marks. This file is public domain.
+%
+% First, we translate and draw the marks. You can change the way the
+% marks are drawn, but the quarter inch border around the page is fixed.
+%
+% This file uses bop-hook; sorry.
+%
+TeXDict begin
+%
+/cX 18 def % the crop offset
+/CM { % draw a crop mark; just a cross.
+ gsave TR 0 cX neg moveto 0 cX lineto stroke
+ cX neg 0 moveto cX 0 lineto stroke grestore
+} def
+%
+end
+%
+/bop-hook {
+ cX dup TR % move the origin a bit
+ gsave .3 setlinewidth 0 0 CM % now draw four crop marks
+ vsize cX 2 mul sub dup hsize cX 2 mul sub dup
+ isls { 4 2 roll } if 0 CM exch CM 0 exch CM grestore
+ 0 cX -2 mul TR % now move to where we start drawing
+ isls { cX -2 mul 0 TR } if
+} def
diff --git a/Build/source/texk/dvipsk/cyrfonts.map b/Build/source/texk/dvipsk/cyrfonts.map
new file mode 100644
index 00000000000..eca5f80fac0
--- /dev/null
+++ b/Build/source/texk/dvipsk/cyrfonts.map
@@ -0,0 +1,51 @@
+cmcb10 cmcb10 <cmcb10.pfb
+cmcbx10 cmcbx10 <cmcbx10.pfb
+cmcbx12 cmcbx12 <cmcbx12.pfb
+cmcbx5 cmcbx5 <cmcbx5.pfb
+cmcbx6 cmcbx6 <cmcbx6.pfb
+cmcbx7 cmcbx7 <cmcbx7.pfb
+cmcbx8 cmcbx8 <cmcbx8.pfb
+cmcbx9 cmcbx9 <cmcbx9.pfb
+cmcbxsl10 cmcbxsl10 <cmcbxsl10.pfb
+cmcbxti10 cmcbxti10 <cmcbxti10.pfb
+cmccsc10 cmccsc10 <cmccsc10.pfb
+cmccsc8 cmccsc8 <cmccsc8.pfb
+cmccsc9 cmccsc9 <cmccsc9.pfb
+cmcitt10 cmcitt10 <cmcitt10.pfb
+cmcsl10 cmcsl10 <cmcsl10.pfb
+cmcsl12 cmcsl12 <cmcsl12.pfb
+cmcsl8 cmcsl8 <cmcsl8.pfb
+cmcsl9 cmcsl9 <cmcsl9.pfb
+cmcsltt10 cmcsltt10 <cmcsltt10.pfb
+cmcss10 cmcss10 <cmcss10.pfb
+cmcss12 cmcss12 <cmcss12.pfb
+cmcss17 cmcss17 <cmcss17.pfb
+cmcss8 cmcss8 <cmcss8.pfb
+cmcss9 cmcss9 <cmcss9.pfb
+cmcssbx10 cmcssbx10 <cmcssbx10.pfb
+cmcssdc10 cmcssdc10 <cmcssdc10.pfb
+cmcssi10 cmcssi10 <cmcssi10.pfb
+cmcssi12 cmcssi12 <cmcssi12.pfb
+cmcssi17 cmcssi17 <cmcssi17.pfb
+cmcssi8 cmcssi8 <cmcssi8.pfb
+cmcssi9 cmcssi9 <cmcssi9.pfb
+cmcssq8 cmcssq8 <cmcssq8.pfb
+cmcssqi8 cmcssqi8 <cmcssqi8.pfb
+cmcti10 cmcti10 <cmcti10.pfb
+cmcti12 cmcti12 <cmcti12.pfb
+cmcti7 cmcti7 <cmcti7.pfb
+cmcti8 cmcti8 <cmcti8.pfb
+cmcti9 cmcti9 <cmcti9.pfb
+cmctt10 cmctt10 <cmctt10.pfb
+cmctt12 cmctt12 <cmctt12.pfb
+cmctt8 cmctt8 <cmctt8.pfb
+cmctt9 cmctt9 <cmctt9.pfb
+cmcu10 cmcu10 <cmcu10.pfb
+cmcyr10 cmcyr10 <cmcyr10.pfb
+cmcyr12 cmcyr12 <cmcyr12.pfb
+cmcyr17 cmcyr17 <cmcyr17.pfb
+cmcyr5 cmcyr5 <cmcyr5.pfb
+cmcyr6 cmcyr6 <cmcyr6.pfb
+cmcyr7 cmcyr7 <cmcyr7.pfb
+cmcyr8 cmcyr8 <cmcyr8.pfb
+cmcyr9 cmcyr9 <cmcyr9.pfb
diff --git a/Build/source/texk/dvipsk/debug.h b/Build/source/texk/dvipsk/debug.h
new file mode 100644
index 00000000000..beeccd521c5
--- /dev/null
+++ b/Build/source/texk/dvipsk/debug.h
@@ -0,0 +1,23 @@
+/*
+ * Here's some stuff for debugging dvips. See dvips.h for copyright.
+ */
+
+#ifdef DEBUG
+
+#define dd(darg) ((darg)&debug_flag)
+
+#define D_SPECIAL (1<<0)
+#define D_PATHS (1<<1)
+#define D_FONTS (1<<2)
+#define D_PAGE (1<<3)
+#define D_HEADER (1<<4)
+#define D_COMPRESS (1<<5)
+#define D_FILES (1<<6)
+#define D_MEM (0) /* too verbose 1<<7 */
+#define D_CONFIG (1<<8)
+
+#ifndef KPATHSEA
+#define fopen my_real_fopen
+extern FILE *my_real_fopen();
+#endif
+#endif /* DEBUG */
diff --git a/Build/source/texk/dvipsk/dopage.c b/Build/source/texk/dvipsk/dopage.c
new file mode 100644
index 00000000000..5519b76e35f
--- /dev/null
+++ b/Build/source/texk/dvipsk/dopage.c
@@ -0,0 +1,515 @@
+/*
+ * Main page drawing procedure. Interprets the page commands. A simple
+ * (if lengthy) case statement interpreter.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#include <math.h>
+/*
+ * The external declarations:
+ */
+#include "protos_add.h"
+
+#if defined(XENIX) || defined(__THINK__)
+#define PixRound(x) ((integer)(x + (iconv >> 1)) / iconv)
+#define VPixRound(x) ((integer)(x + (viconv >> 1)) / viconv)
+#else
+#define PixRound(x) ((integer)(floor(((x) * conv) + 0.5)))
+#define VPixRound(x) ((integer)(floor(((x) * vconv) + 0.5)))
+#endif
+/*
+ * Now we have the dopage procedure.
+ * Most error checking is suppressed because the prescan has already
+ * verified that the DVI data is OK....except for stack over/underflow.
+ */
+struct dvistack stack[STACKSIZE];
+integer dir;
+#ifdef HPS
+integer hhmem, vvmem;
+integer pushcount = 0;
+Boolean PAGEUS_INTERUPPTUS = 0;
+Boolean NEED_NEW_BOX = 0;
+integer H_BREAK; /* An empirical parameter for guessing line breaks; needs
+ dpi dependence */
+#endif
+
+void
+dopage(void)
+{
+ register shalfword cmd;
+ register integer p;
+ register chardesctype *cd;
+ register integer h;
+ register fontmaptype *cfnt;
+ register frametype *frp = frames;
+ integer fnt;
+ integer mychar;
+ int charmove;
+ struct dvistack *sp = stack;
+ integer v, w, x, y, z;
+ integer roundpos;
+ integer thinspace;
+ integer vertsmallspace;
+#if defined(XENIX) || defined(__THINK__)
+ integer iconv;
+ integer viconv;
+
+ iconv = (integer)(1.0 / conv + 0.5);
+ viconv = (integer)(1.0 / vconv + 0.5);
+#endif
+#ifdef EMTEX
+ emclear();
+#endif
+ pageinit();
+
+ bopcolor(1);
+ thinspace = (integer)(0.025*DPI/conv); /* 0.025 inches */
+ vertsmallspace = (integer)(0.025*VDPI/vconv); /* 0.025 inches */
+#ifdef HPS
+ if (HPS_FLAG) pagecounter++;
+ H_BREAK = (30 * DPI / 400 ); /* 30 seems to have worked well at 400 dpi */
+#endif
+ w = x = y = z = dir = rdir = fdir = 0;
+ h = (integer) (DPI / conv * hoff / 4736286.72);
+ v = (integer) (DPI / conv * voff / 4736286.72);
+ hh = PixRound(h);
+ vv = PixRound(v);
+ curfnt = NULL;
+ curpos = NULL;
+ charmove = 0;
+beginloop:
+ switch (cmd=dvibyte()) {
+case 138: goto beginloop; /* nop command does nuttin */
+/*
+ * For put1 commands, we subtract the width of the character before
+ * dropping through to the normal character setting routines. This
+ */
+case 135: /* put3 */
+ if (noptex) error("! synch");
+ mychar = dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ charmove = 0;
+ goto dochar;
+case 130: /* set3 */
+ if (noptex) error("! synch");
+ mychar = dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ charmove = 1;
+ goto dochar;
+case 134: /* put2 */
+ if (noomega && noptex) error("! synch");
+ mychar = dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ charmove = 0;
+ goto dochar;
+case 129: /* set2 */
+ if (noomega && noptex) error("! synch");
+ mychar = dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ charmove = 1;
+ goto dochar;
+case 133: /* put1 */
+ mychar = dvibyte();
+ charmove = 0;
+ goto dochar;
+case 128: cmd = dvibyte(); /* set1 command drops through to setchar */
+default: /* these are commands 0 (setchar0) thru 127 (setchar127) */
+ mychar = cmd;
+ charmove = 1;
+dochar:
+#ifdef HPS
+ if (HPS_FLAG && PAGEUS_INTERUPPTUS) {
+ HREF_COUNT--;
+ start_new_box();
+ PAGEUS_INTERUPPTUS = 0;
+ }
+ if (HPS_FLAG && NEED_NEW_BOX) {
+ vertical_in_hps();
+ NEED_NEW_BOX = 0;
+ }
+#endif
+ if (mychar<curfnt->maxchars)
+ cd = &(curfnt->chardesc[mychar]);
+ if (!noptex && mychar<0x1000000 && curfnt->loaded == 2 && curfnt->kind == VF_PTEX) {
+ if (mychar>=curfnt->maxchars || !(cd->flags & EXISTS)) {
+ /* try fallback */
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf_str(stderr,
+ "Fallback pTeX vf:%s char=%d(0x%06x) to %s\n",
+ curfnt->name, mychar, mychar, curfnt->localfonts->desc->name);
+#endif /* DEBUG */
+ cd = curfnt->localfonts->desc->chardesc;
+ if (charmove) {
+ if (!dir) {
+ sp->hh = hh + cd->pixelwidth;
+ sp->h = h + cd->TFMwidth;
+ } else {
+ sp->v = v + cd->TFMwidth;
+ sp->vv = PixRound(sp->v);
+ }
+ } else {
+ if (!dir) {
+ sp->hh = hh; sp->h = h;
+ } else {
+ sp->vv = vv; sp->v = v;
+ }
+ }
+ if (!dir) {
+ sp->vv = vv; sp->v = v;
+ } else {
+ sp->hh = hh; sp->h = h;
+ }
+ sp->w = w; sp->x = x; sp->y = y; sp->z = z; sp->dir = dir;
+ if (++sp >= &stack[STACKSIZE]) error("! Out of stack space");
+ w = x = y = z = 0; /* will be in relative units at new stack level */
+ frp->ff = ffont;
+ frp->curf = curfnt;
+ if (++frp == &frames[MAXFRAME] )
+ error("! virtual recursion stack overflow");
+ ffont = curfnt->localfonts;
+ if (ffont) {
+ curfnt = ffont->desc;
+ thinspace = curfnt->thinspace;
+ } else {
+ curfnt = NULL;
+ thinspace = vertsmallspace;
+ }
+ drawchar(cd, mychar);
+ goto end_of_vf;
+ }
+ }
+ if (cd->flags & EXISTS) {
+ if (curfnt->loaded == 2) { /* virtual character being typeset */
+ if (charmove) {
+ if (!dir) {
+ sp->hh = hh + cd->pixelwidth;
+ sp->h = h + cd->TFMwidth;
+ } else {
+ sp->v = v + cd->TFMwidth;
+ sp->vv = PixRound(sp->v);
+ }
+ } else {
+ if (!dir) {
+ sp->hh = hh; sp->h = h;
+ } else {
+ sp->vv = vv; sp->v = v;
+ }
+ }
+ if (!dir) {
+ sp->vv = vv; sp->v = v;
+ } else {
+ sp->hh = hh; sp->h = h;
+ }
+ sp->w = w; sp->x = x; sp->y = y; sp->z = z; sp->dir = dir;
+ if (++sp >= &stack[STACKSIZE]) error("! Out of stack space");
+ w = x = y = z = 0; /* will be in relative units at new stack level */
+ frp->curp = curpos;
+ frp->curl = curlim;
+ frp->ff = ffont;
+ frp->curf = curfnt;
+ if (++frp == &frames[MAXFRAME] )
+ error("! virtual recursion stack overflow");
+ curpos = cd->packptr + 2;
+ curlim = curpos + (256*(long)(*cd->packptr)+(*(cd->packptr+1)));
+ ffont = curfnt->localfonts;
+ if (ffont) {
+ curfnt = ffont->desc;
+ thinspace = curfnt->thinspace;
+ } else {
+ curfnt = NULL;
+ thinspace = vertsmallspace;
+ }
+ goto beginloop;
+ }
+ drawchar(cd, mychar);
+ }
+ if (charmove) {
+ if (!dir) {
+ h += cd->TFMwidth;
+ hh += cd->pixelwidth;
+ } else {
+ v += cd->TFMwidth;
+ vv += cd->pixelwidth;
+ }
+ }
+ goto setmotion;
+case 255: /* pTeX's dir or undefined */
+ if (!noptex) {
+ dir = dvibyte();
+ cmddir();
+ goto beginloop;
+ }
+/* illegal commands */
+case 131: case 136: case 139: /* set4, put4, bop */
+case 247: case 248: case 249: /* pre, post, post_post */
+case 250: case 251: case 252: case 253: case 254: /* undefined */
+ error("! synch");
+case 132: case 137: /* rules */
+ { integer ry, rx , rxx, ryy;
+ ry = signedquad(); rx = signedquad();
+ if (rx>0 && ry>0) {
+ if (curpos) {
+ rx = scalewidth(rx, (frp-1)->curf->scaledsize);
+ ry = scalewidth(ry, (frp-1)->curf->scaledsize);
+ }
+ if (!dir) {
+ rxx = (int)(conv * rx + 0.9999999);
+ ryy = (int)(vconv * ry + 0.9999999);
+ }
+ else {
+ rxx = (int)(vconv * rx + 0.9999999);
+ ryy = (int)(conv * ry + 0.9999999);
+ }
+ /* Heiko Oberdiek 2001/06/03: synchronisation added for vertical rules
+ because of alignment reasons.
+ */
+ if (ry > rx) {
+ hh = PixRound(h);
+ }
+ drawrule(rxx, ryy);
+ } else
+ rxx = 0;
+ if (cmd == 137) goto beginloop;
+ if (!dir) {
+ h += rx; hh += rxx;
+ }
+ else {
+ v += rx; vv += rxx;
+ }
+ goto setmotion;
+ }
+case 141: /* push */
+#ifdef HPS
+ if (HPS_FLAG) pushcount++;
+ /* if (HPS_FLAG && PAGEUS_INTERUPPTUS) {
+ HREF_COUNT--;
+ start_new_box();
+ PAGEUS_INTERUPPTUS = 0;
+ } */
+ if (HPS_FLAG && NEED_NEW_BOX) {
+ vertical_in_hps();
+ NEED_NEW_BOX = 0;
+ }
+ /* printf("push %i, %i\n", pushcount, inHTMLregion); */
+#endif
+ sp->hh = hh; sp->vv = vv; sp->h = h; sp->v = v;
+ sp->w = w; sp->x = x; sp->y = y; sp->z = z; sp->dir = dir;
+ if (++sp >= &stack[STACKSIZE]) error("! Out of stack space");
+ goto beginloop;
+case 140: /* eop or end of virtual character */
+ if (curpos == NULL) { /* eop */
+#ifdef HPS
+ if (HPS_FLAG && inHTMLregion) PAGEUS_INTERUPPTUS = 1;
+ /* printf("Page interrupted"); */
+#endif
+ break;
+ }
+end_of_vf:
+ --frp;
+ curfnt = frp->curf;
+ thinspace = (curfnt) ? curfnt->thinspace : vertsmallspace;
+ ffont = frp->ff;
+ curlim = frp->curl;
+ curpos = frp->curp;
+ if (hh < (sp-1)->hh+2 && hh > (sp-1)->hh-2)
+ (sp-1)->hh = hh; /* retain `intelligence' of pixel width, if close */
+ /* falls through */
+case 142: /* pop */
+#ifdef HPS
+ pushcount--;
+ /* printf("pop %i\n", pushcount); */
+#endif
+ if (--sp < stack) error("! More pops than pushes");
+#ifdef HPS
+ if (HPS_FLAG) {
+ hhmem = hh; vvmem = vv;
+ }
+#endif
+ hh = sp->hh; vv = sp->vv; h = sp->h; v = sp->v;
+ w = sp->w; x = sp->x; y = sp->y; z = sp->z; dir = sp->dir;
+#ifdef HPS
+ if (HPS_FLAG && inHTMLregion && (hhmem - hh > H_BREAK) && (pushcount > 0) &&
+ (pushcount < current_pushcount))
+ end_current_box();
+#endif
+ cmddir();
+ goto beginloop;
+case 143: /* right1 */
+ p = signedbyte(); goto horizontalmotion;
+case 144: /* right2 */
+ p = signedpair(); goto horizontalmotion;
+case 145: /* right3 */
+ p = signedtrio(); goto horizontalmotion;
+case 146: /* right4 */
+ p = signedquad(); goto horizontalmotion;
+case 147: /* w0 */
+ p = w; goto horizontalmotion;
+case 148: /* w1 */
+ p = w = signedbyte(); goto horizontalmotion;
+case 149: /* w2 */
+ p = w = signedpair(); goto horizontalmotion;
+case 150: /* w3 */
+ p = w = signedtrio(); goto horizontalmotion;
+case 151: /* w4 */
+ p = w = signedquad(); goto horizontalmotion;
+case 152: /* x0 */
+ p = x; goto horizontalmotion;
+case 153: /* x1 */
+ p = x = signedbyte(); goto horizontalmotion;
+case 154: /* x2 */
+ p = x = signedpair(); goto horizontalmotion;
+case 155: /* x3 */
+ p = x = signedtrio(); goto horizontalmotion;
+case 156: /* x4 */
+ p = x = signedquad(); goto horizontalmotion;
+case 157: /* down1 */
+ p = signedbyte(); goto verticalmotion;
+case 158: /* down2 */
+ p = signedpair(); goto verticalmotion;
+case 159: /* down3 */
+ p = signedtrio(); goto verticalmotion;
+case 160: /* down4 */
+ p = signedquad(); goto verticalmotion;
+case 161: /* y0 */
+ p = y; goto verticalmotion;
+case 162: /* y1 */
+ p = y = signedbyte(); goto verticalmotion;
+case 163: /* y2 */
+ p = y = signedpair(); goto verticalmotion;
+case 164: /* y3 */
+ p = y = signedtrio(); goto verticalmotion;
+case 165: /* y4 */
+ p = y = signedquad(); goto verticalmotion;
+case 166: /* z0 */
+ p = z; goto verticalmotion;
+case 167: /* z1 */
+ p = z = signedbyte(); goto verticalmotion;
+case 168: /* z2 */
+ p = z = signedpair(); goto verticalmotion;
+case 169: /* z3 */
+ p = z = signedtrio(); goto verticalmotion;
+case 170: /* z4 */
+ p = z = signedquad(); goto verticalmotion;
+case 171: case 172: case 173: case 174: case 175: case 176: case 177:
+case 178: case 179: case 180: case 181: case 182: case 183: case 184:
+case 185: case 186: case 187: case 188: case 189: case 190: case 191:
+case 192: case 193: case 194: case 195: case 196: case 197: case 198:
+case 199: case 200: case 201: case 202: case 203: case 204: case 205:
+case 206: case 207: case 208: case 209: case 210: case 211: case 212:
+case 213: case 214: case 215: case 216: case 217: case 218: case 219:
+case 220: case 221: case 222: case 223: case 224: case 225: case 226:
+case 227: case 228: case 229: case 230: case 231: case 232: case 233:
+case 234: case 235: case 236: case 237: case 238: /* font selection commands */
+ if (cmd < 235) fnt = cmd - 171; /* fntnum0 thru fntnum63 */
+ else {
+ fnt = dvibyte();
+ while (cmd-- > 235)
+ fnt = (fnt << 8) + dvibyte();
+ }
+ for (cfnt=ffont; cfnt; cfnt = cfnt->next)
+ if (cfnt->fontnum == fnt) break;
+ curfnt = cfnt->desc;
+ thinspace = curfnt->thinspace;
+ goto beginloop;
+case 243: case 244: case 245: case 246: /*fntdef1 */
+ skipover(cmd - 230);
+ skipover(dvibyte() + dvibyte());
+ goto beginloop;
+case 239: /* xxx1 */
+ p = dvibyte();
+ dospecial(p);
+ goto beginloop;
+case 240: /* xxx2 */
+ p = twobytes();
+ dospecial(p);
+ goto beginloop;
+case 241: /* xxx3 */
+ p = threebytes();
+ dospecial(p);
+ goto beginloop;
+case 242: /* xxx4 */
+ p = signedquad();
+ dospecial(p);
+ goto beginloop;
+
+/*
+ * The calculations here are crucial to the appearance of the document.
+ * If the motion is small, we round the amount of relative motion; otherwise,
+ * we update the position and round the new position. Then we check to
+ * insure that the rounded position didn't accumulate an error that was
+ * greater than maxdrift.
+ */
+verticalmotion:
+/* vertical motion cases */
+ if (curpos)
+ p = scalewidth(p, (frp-1)->curf->scaledsize);
+ if (!dir) {
+ v += p;
+ if (p >= vertsmallspace) vv = VPixRound(v);
+ else if (p <= -vertsmallspace) vv = VPixRound(v);
+ else
+ { vv += VPixRound(p);
+ roundpos = VPixRound(v);
+ if (roundpos - vv > vmaxdrift) vv = roundpos - vmaxdrift;
+ else if (vv - roundpos > vmaxdrift) vv = roundpos + vmaxdrift;
+ }
+ } else {
+ h -= p;
+ if (p >= vertsmallspace) hh = VPixRound(h);
+ else if (p <= -vertsmallspace) hh = VPixRound(h);
+ else
+ { hh -= VPixRound(p);
+ roundpos = VPixRound(h);
+ if (roundpos - hh > vmaxdrift) hh = roundpos - vmaxdrift;
+ else if (hh - roundpos > vmaxdrift) hh = roundpos + vmaxdrift;
+ }
+ }
+#ifdef HPS
+ /* printf("Doing vertical motion: p = %i, v = %i, vv = %i\n",p,v,vv); */
+ /* printf("inHTMLregion %i\n", inHTMLregion); */
+ if (HPS_FLAG && inHTMLregion) NEED_NEW_BOX = 1 /* vertical_in_hps() */;
+#endif
+ goto beginloop;
+/*
+ * Horizontal motion is analogous. We know the exact width of each
+ * character in pixels. Kerning is distinguished from space between
+ * words if it's less than a thinspace and not more negative than would
+ * occur when an accent is being positioned by backspacing.
+ */
+horizontalmotion:
+/* horizontal motion cases */
+ if (curpos)
+ p = scalewidth(p, (frp-1)->curf->scaledsize);
+ if (!dir) {
+ h += p;
+ if (p >= thinspace || p <= -6 * thinspace) {
+ hh = PixRound(h); goto beginloop;
+ }
+ else hh += PixRound(p);
+ } else {
+ v += p;
+ if (p >= thinspace || p <= -6 * thinspace) {
+ vv = PixRound(v); goto beginloop;
+ }
+ else vv += PixRound(p);
+ }
+#ifdef HPS
+ /* printf("Doing horizontal motion: p = %i, h = %i, hh = %i\n",p,h,hh); */
+#endif
+setmotion:
+ if (!dir) {
+ roundpos = PixRound(h);
+ if (roundpos - hh > maxdrift) { hh = roundpos - maxdrift; }
+ else if (hh - roundpos > maxdrift) { hh = roundpos + maxdrift; }
+ } else {
+ roundpos = PixRound(v);
+ if (roundpos - vv > maxdrift) { vv = roundpos - maxdrift; }
+ else if (vv - roundpos > maxdrift) { vv = roundpos + maxdrift; }
+ }
+goto beginloop;
+
+ } /* end of the big switch */
+ pageend();
+}
diff --git a/Build/source/texk/dvipsk/dosection.c b/Build/source/texk/dvipsk/dosection.c
new file mode 100644
index 00000000000..f93fde5eafe
--- /dev/null
+++ b/Build/source/texk/dvipsk/dosection.c
@@ -0,0 +1,293 @@
+/*
+ * Code to output PostScript commands for one section of the document.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+static int psfont;
+#ifdef HPS
+int pagecounter;
+#endif
+
+/*
+ * Now we have the main procedure.
+ */
+void
+dosection(sectiontype *s, int c)
+{
+ charusetype *cu;
+ integer prevptr;
+ int np;
+ int k;
+ integer thispage = 0;
+ char buf[300]; /* really 253 */
+
+ bmenc_startsection() ;
+ dopsfont(s);
+#ifdef HPS
+ if (HPS_FLAG) pagecounter = 0;
+#endif
+
+ if (multiplesects) {
+ setup();
+ }
+ cmdout("TeXDict");
+ cmdout("begin");
+ numout(hpapersize);
+ numout(vpapersize);
+ doubleout(mag);
+ numout((integer)DPI);
+ numout((integer)VDPI);
+ /* possibly lines in eps files are supposed to be <= 255;
+ not worth testing the limits merely to output a long file name. */
+ snprintf(buf, sizeof(buf), "(%.250s)", fulliname);
+ cmdout(buf);
+ newline();
+ cmdout("@start");
+ if (multiplesects)
+ cmdout("bos");
+/*
+ * We insure raster is even-word aligned, because download might want that.
+ */
+ if (bytesleft & 1) {
+ bytesleft--;
+ raster++;
+ }
+ cleanres();
+ cu = (charusetype *) (s + 1);
+ psfont = 1;
+ while (cu->fd) {
+ if (cu->psfused)
+ cu->fd->psflag = EXISTS;
+ download(cu++, psfont++);
+ }
+ fonttableout();
+ if (! multiplesects) {
+ cmdout("end");
+ setup();
+ }
+ for (cu=(charusetype *)(s+1); cu->fd; cu++)
+ cu->fd->psflag = 0;
+ while (c > 0) {
+ c--;
+ prevptr = s->bos;
+ if (! reverse)
+ fseek(dvifile, (long)prevptr, 0);
+ np = s->numpages;
+ while (np-- != 0) {
+ if (reverse)
+ fseek(dvifile, (long)prevptr, 0);
+ pagenum = signedquad();
+ if ((evenpages && (pagenum & 1)) || (oddpages && (pagenum & 1)==0) ||
+ (pagelist && !InPageList(pagenum))) {
+ if (reverse) {
+ skipover(36);
+ prevptr = signedquad()+1;
+ } else {
+ skipover(40);
+ skippage();
+ skipnop();
+ }
+ ++np; /* this page wasn't counted for s->numpages */
+ continue;
+ }
+/*
+ * We want to take the base 10 log of the number. It's probably
+ * small, so we do it quick.
+ */
+ if (! quiet) {
+ int t = pagenum, i = 0;
+ if (t < 0) {
+ t = -t;
+ i++;
+ }
+ do {
+ i++;
+ t /= 10;
+ } while (t > 0);
+ if (pagecopies < 20)
+ i += pagecopies - 1;
+ if (i + prettycolumn > STDOUTSIZE) {
+ fprintf(stderr, "\n");
+ prettycolumn = 0;
+ }
+ prettycolumn += i + 1;
+#ifdef SHORTINT
+ fprintf(stderr, "[%ld", pagenum);
+#else /* ~SHORTINT */
+ fprintf(stderr, "[%d", pagenum);
+#endif /* ~SHORTINT */
+ fflush(stderr);
+ }
+ skipover(36);
+ prevptr = signedquad()+1;
+ for (k=0; k<pagecopies; k++) {
+ if (k == 0) {
+ if (pagecopies > 1)
+ thispage = ftell(dvifile);
+ } else {
+ fseek(dvifile, (long)thispage, 0);
+ if (prettycolumn + 1 > STDOUTSIZE) {
+ fprintf(stderr, "\n");
+ prettycolumn = 0;
+ }
+ fprintf(stderr, ".");
+ fflush(stderr);
+ prettycolumn++;
+ }
+ dopage();
+ }
+ if (! quiet) {
+ fprintf(stderr, "] ");
+ fflush(stderr);
+ prettycolumn += 2;
+ }
+ if (! reverse)
+ skipnop();
+ }
+ }
+ if (! multiplesects && ! disablecomments) {
+ newline();
+ fprintf(bitfile, "%%%%Trailer\n");
+ }
+ if (multiplesects) {
+ if (! disablecomments) {
+ newline();
+ fprintf(bitfile, "%%DVIPSSectionTrailer\n");
+ }
+ cmdout("eos");
+ cmdout("end");
+ }
+#ifdef HPS
+ if (HPS_FLAG) cmdout("\nend"); /* close off HPSDict */
+#endif
+ if (multiplesects && ! disablecomments) {
+ newline();
+ fprintf(bitfile, "%%DVIPSEndSection\n");
+ linepos = 0;
+ }
+}
+/*
+ * Handle a list of pages for dvips. Code based on dvi2ps 2.49,
+ * maintained by Piet van Oostrum, piet@cs.ruu.nl. Collected and
+ * modularized for inclusion in dvips by metcalf@lcs.mit.edu.
+ */
+
+#include <ctype.h>
+#define MAXPAGE (1000000000) /* assume no pages out of this range */
+struct p_list_str {
+ struct p_list_str *next; /* next in a series of alternates */
+ integer ps_low, ps_high; /* allowed range */
+} *ppages = 0; /* the list of allowed pages */
+
+/*-->InPageList*/
+/**********************************************************************/
+/****************************** InPageList **************************/
+/**********************************************************************/
+/* Return true iff i is one of the desired output pages */
+
+int
+InPageList(integer i)
+{
+ register struct p_list_str *pl = ppages;
+
+ while (pl) {
+ if ( i >= pl -> ps_low && i <= pl -> ps_high)
+ return 1; /* success */
+ pl = pl -> next;
+ }
+ return 0;
+}
+
+static void
+InstallPL(integer pslow, integer pshigh)
+{
+ register struct p_list_str *pl;
+
+ pl = (struct p_list_str *)mymalloc((integer)(sizeof *pl));
+ pl -> next = ppages;
+ pl -> ps_low = pslow;
+ pl -> ps_high = pshigh;
+ ppages = pl;
+}
+
+/* Parse a string representing a list of pages. Return 0 iff ok. As a
+ side effect, the page selection(s) is (are) prepended to ppages. */
+
+int
+ParsePages(register char *s)
+{
+ register int c; /* current character */
+ register integer n = 0, /* current numeric value */
+ innumber; /* true => gathering a number */
+ integer ps_low = 0, ps_high = 0;
+ int range, /* true => saw a range indicator */
+ negative = 0; /* true => number being built is negative */
+
+#define white(x) ((x) == ' ' || (x) == '\t' || (x) == ',')
+
+ range = 0;
+ innumber = 0;
+ for (;;) {
+ c = *s++;
+ if ( !innumber && !range) {/* nothing special going on */
+ if (c == 0)
+ return 0;
+ if (white (c))
+ continue;
+ }
+ if (c == '-' && !innumber) {
+ innumber++;
+ negative++;
+ n = 0;
+ continue;
+ }
+ if ('0' <= c && c <= '9') { /* accumulate numeric value */
+ if (!innumber) {
+ innumber++;
+ negative = 0;
+ n = c - '0';
+ continue;
+ }
+ n *= 10;
+ n += negative ? '0' - c : c - '0';
+ continue;
+ }
+ if (c == '-' || c == ':') {/* here's a range */
+ if (range)
+ return (-1);
+ if (innumber) { /* have a lower bound */
+ ps_low = n;
+ }
+ else
+ ps_low = -MAXPAGE;
+ range++;
+ innumber = 0;
+ continue;
+ }
+ if (c == 0 || white (c)) {/* end of this range */
+ if (!innumber) { /* no upper bound */
+ ps_high = MAXPAGE;
+ if (!range) /* no lower bound either */
+ ps_low = -MAXPAGE;
+ }
+ else { /* have an upper bound */
+ ps_high = n;
+ if (!range) { /* no range => lower bound == upper */
+ ps_low = ps_high;
+ }
+ }
+ InstallPL (ps_low, ps_high);
+ if (c == 0)
+ return 0;
+ range = 0;
+ innumber = 0;
+ continue;
+ }
+ return (-1);
+ }
+#undef white
+}
diff --git a/Build/source/texk/dvipsk/dospecial.c b/Build/source/texk/dvipsk/dospecial.c
new file mode 100644
index 00000000000..33d3a1cc23e
--- /dev/null
+++ b/Build/source/texk/dvipsk/dospecial.c
@@ -0,0 +1,1120 @@
+/* $Id$
+ * This routine handles special commands;
+ * predospecial() is for the prescan, dospecial() for the real thing.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+
+#ifdef KPATHSEA
+#include <kpathsea/c-ctype.h>
+#include <kpathsea/tex-hush.h>
+#else /* ! KPATHSEA */
+#include <ctype.h>
+#include <stdlib.h>
+#ifndef WIN32
+extern int atoi();
+extern int system();
+#endif /* WIN32*/
+#endif
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+static int specialerrors = 20;
+
+struct bangspecial {
+ struct bangspecial *next;
+ char *actualstuff;
+} *bangspecials = NULL;
+
+void
+specerror(const char *s)
+{
+ if (specialerrors > 0
+#ifdef KPATHSEA
+ && !kpse_tex_hush ("special")
+#endif
+ ) {
+ error(s);
+ specialerrors--;
+ } else if (specialerrors == 0
+#ifdef KPATHSEA
+ && !kpse_tex_hush ("special")
+#endif
+ ) {
+ error("more errors in special, being ignored . . .");
+ error("(perhaps dvips doesn't support your macro package?)");
+ specialerrors--;
+ }
+}
+
+static void
+outputstring(register char *p)
+{
+ putc('\n', bitfile);
+ while(*p) {
+ putc(*p, bitfile);
+ p++;
+ }
+ putc('\n', bitfile);
+}
+
+static void
+trytobreakout(register char *p)
+{
+ register int i;
+ register int instring = 0;
+ int lastc = 0;
+
+ i = 0;
+ putc('\n', bitfile);
+
+ if(*p == '%') {
+ while(*p) {
+ putc(*p, bitfile);
+ p++;
+ }
+ putc('\n', bitfile);
+ return;
+ }
+
+ while (*p) {
+ if (i > 65 && *p == ' ' && instring == 0) {
+ putc('\n', bitfile);
+ i = 0;
+ } else {
+ putc(*p, bitfile);
+ i++;
+ }
+ if (*p == '(' && lastc != '\\')
+ instring = 1;
+ else if (*p == ')' && lastc != '\\')
+ instring = 0;
+ lastc = *p;
+ p++;
+ }
+ putc('\n', bitfile);
+}
+
+static void
+dobs(register struct bangspecial *q)
+{
+ if (q) {
+ dobs(q->next);
+ trytobreakout(q->actualstuff);
+ }
+}
+
+/* added for dvi2ps & jdvi2kps format */
+static char *mfgets(char *buf, unsigned int bytes, FILE *fp);
+
+static void
+fgetboundingbox(char *f, float *llx_p, float *lly_p, float *urx_p, float *ury_p)
+{
+ FILE *fp;
+ char buf[BUFSIZ+1];
+
+ fp = search(figpath, f, READ);
+ if (fp == 0)
+ fp = search(headerpath, f, READ);
+ if (fp) {
+ while (mfgets(buf, BUFSIZ, fp) != 0) {
+ if (buf[0] == '%' && buf[1] == '%'
+ && strncmp(buf+2, "BoundingBox:", 12) == 0) {
+ if (sscanf(buf+14, "%f %f %f %f", llx_p, lly_p, urx_p, ury_p) == 4) {
+ fclose(fp);
+ return;
+ }
+ }
+ }
+ fclose(fp);
+ }
+ sprintf(errbuf, "Couldn't get BoundingBox of %.500s: assuming full A4 size", f);
+ specerror(errbuf);
+ *llx_p = 0.0;
+ *lly_p = 0.0;
+ *urx_p = 595.0;
+ *ury_p = 842.0;
+}
+
+static char *
+mfgets(char *buf, unsigned int bytes, FILE *fp)
+{
+ int i, cc;
+
+ for (i = 0; i < bytes; i++) {
+ cc = fgetc(fp);
+ if (cc == 0x0a || cc == 0x0d) {
+ if (cc == 0x0d) {
+ cc = fgetc(fp);
+ if (cc != 0x0a) {
+ ungetc(cc, fp);
+ }
+ }
+ cc = 0x0a;
+ buf[i] = cc;
+ buf[i+1] = '\0';
+ return buf;
+ } else if (cc == EOF) {
+ buf[i] = '\0';
+ if (i == 0) return NULL;
+ else return buf;
+ } else {
+ buf[i] = cc;
+ }
+ }
+ buf[i] = '\0';
+ return buf;
+}
+
+static void
+floatroundout(float f)
+{
+ integer i;
+ i = (integer)(f<0 ? f-0.5 : f+0.5);
+ if (i-f < 0.001 && i-f > -0.001) {
+ numout((integer)i);
+ } else {
+ floatout(f);
+ }
+}
+/* end of addition */
+
+void
+outbangspecials(void) {
+ if (bangspecials) {
+ cmdout("TeXDict");
+ cmdout("begin");
+ cmdout("@defspecial\n");
+ dobs(bangspecials);
+ cmdout("\n@fedspecial");
+ cmdout("end");
+ }
+}
+
+/* We recommend that new specials be handled by the following general
+ * (and extensible) scheme, in which the user specifies one or more
+ * `key=value' pairs separated by spaces.
+ * The known keys are given in KeyTab; they take values
+ * of one of the following types:
+ *
+ * None: no value, just a keyword (in which case the = sign is omitted)
+ * String: the value should be "<string without double-quotes"
+ * or '<string without single-quotes'
+ * Integer: the value should be a decimal integer (%d format)
+ * Number: the value should be a decimal integer or real (%f format)
+ * Dimension: like Number, but will be multiplied by the scaledsize
+ * of the current font and converted to default PostScript units
+ * (Actually, strings are allowed in all cases; the delimiting quotes
+ * are simply stripped off if present.)
+ *
+ */
+
+typedef enum {None, String, Integer, Number, Dimension} ValTyp;
+typedef struct {
+ const char *Entry;
+ ValTyp Type;
+} KeyDesc;
+
+#define NKEYS (sizeof(KeyTab)/sizeof(KeyTab[0]))
+
+KeyDesc KeyTab[] = {{"psfile", String}, /* j==0 in the routine below */
+ {"ifffile", String}, /* j==1 */
+ {"tekfile", String}, /* j==2 */
+ {"hsize", Number},
+ {"vsize", Number},
+ {"hoffset", Number},
+ {"voffset", Number},
+ {"hscale", Number},
+ {"vscale", Number},
+ {"angle", Number},
+ {"llx", Number},
+ {"lly", Number},
+ {"urx", Number},
+ {"ury", Number},
+ {"rwi", Number},
+ {"rhi", Number},
+ {"clip", None}};
+
+#ifndef KPATHSEA
+#define TOLOWER Tolower
+#ifdef VMS
+#ifndef __GNUC__ /* GNUC tolower is too simple */
+#define Tolower tolower
+#endif
+#else
+#ifdef VMCMS /* IBM: VM/CMS */
+#define Tolower __tolower
+#else
+#ifdef MVSXA /* IBM: MVS/XA */
+#define Tolower __tolower
+#else
+/*
+ * compare strings, ignore case
+ */
+char
+Tolower(register char c)
+{
+ if ('A' <= c && c <= 'Z')
+ return(c+32);
+ else
+ return(c);
+}
+#endif
+#endif /* IBM: VM/CMS */
+#endif
+#endif /* !KPATHSEA */
+static int
+IsSame(const char *a, const char *b)
+{
+ for(; *a != '\0'; ) {
+ if( TOLOWER(*a) != TOLOWER(*b) )
+ return( 0 );
+ a++;
+ b++;
+ }
+ return( *b == '\0' );
+}
+
+char *KeyStr; /* Key and ... */
+const char *ValStr; /* ... String values found */
+long ValInt; /* Integer value found */
+float ValNum; /* Number or Dimension value found */
+
+static char *
+GetKeyVal(char *str, int *tno) /* returns NULL if none found, else next scan point */
+ /* str : starting point for scan */
+ /* tno : table entry number of keyword, or -1 if keyword not found */
+{
+ unsigned char *s;
+ register int i;
+ register char t;
+
+ for (s=str; *s <= ' ' && *s; s++); /* skip over blanks */
+ if (*s == '\0')
+ return (NULL);
+ KeyStr = s;
+ while (*s>' ' && *s!='=') s++;
+ if (0 != (t = *s))
+ *s++ = 0;
+
+ for(i=0; i<NKEYS; i++)
+ if( IsSame(KeyStr, KeyTab[i].Entry) )
+ goto found;
+ *tno = -1;
+ return (s);
+
+found: *tno = i;
+ if (KeyTab[i].Type == None)
+ return (s);
+
+ if (t && t <= ' ') {
+ for (; *s <= ' ' && *s; s++); /* now look for the value part */
+ if ((t = *s)=='=')
+ s++;
+ }
+ ValStr = "";
+ if ( t == '=' ) {
+ while (*s <= ' ' && *s)
+ s++;
+ if (*s=='\'' || *s=='\"')
+ t = *s++; /* get string delimiter */
+ else t = ' ';
+ ValStr = s;
+ while (*s!=t && *s)
+ s++;
+ if (*s)
+ *s++ = 0;
+ }
+ switch (KeyTab[i].Type) {
+ case Integer:
+ if(sscanf(ValStr,"%ld",&ValInt)!=1) {
+ sprintf(errbuf,"Non-integer value (%.500s) given for keyword %.500s",
+ ValStr, KeyStr);
+ specerror(errbuf);
+ ValInt = 0;
+ }
+ break;
+ case Number:
+ case Dimension:
+ if(sscanf(ValStr,"%f",&ValNum)!=1) {
+ sprintf(errbuf,"Non-numeric value (%.500s) given for keyword %.500s",
+ ValStr, KeyStr);
+ specerror(errbuf);
+ ValNum = 0.0;
+ }
+ if (KeyTab[i].Type==Dimension) {
+ if (curfnt==NULL)
+ error("! No font selected");
+ ValNum = ValNum * ((double)curfnt->scaledsize) * conv * 72 / DPI;
+ }
+ break;
+ default: break;
+ }
+ return (s);
+}
+
+/*
+ * Now our routines. We get the number of bytes specified and place them
+ * into the string buffer, and then parse it. Numerous conventions are
+ * supported here for historical reasons.
+ *
+ * To support GNUplot's horribly long specials, we go ahead and malloc a
+ * new string buffer if necessary.
+ */
+
+void
+predospecial(integer numbytes, Boolean scanning)
+{
+ register char *p = nextstring;
+ register int i = 0;
+ int j;
+ static int omega_specials = 0;
+
+ if (numbytes < 0 || numbytes > maxstring - nextstring) {
+ if (numbytes < 0 || numbytes > (INT_MAX - 1000) / 2 ) {
+ error("! Integer overflow in predospecial");
+ exit(1);
+ }
+ p = nextstring = mymalloc(1000 + 2 * numbytes);
+ maxstring = nextstring + 2 * numbytes + 700;
+ }
+ for (i=numbytes; i>0; i--)
+#ifdef VMCMS /* IBM: VM/CMS */
+ *p++ = ascii2ebcdic[(char)dvibyte()];
+#else
+#ifdef MVSXA /* IBM: MVS/XA */
+ *p++ = ascii2ebcdic[(char)dvibyte()];
+#else
+ *p++ = (char)dvibyte();
+#endif /* IBM: VM/CMS */
+#endif
+ if (pprescan)
+ return;
+ while (p[-1] <= ' ' && p > nextstring)
+ p--; /* trim trailing blanks */
+ if (p==nextstring) return; /* all blank is no-op */
+ *p = 0;
+ p = nextstring;
+ while (*p <= ' ')
+ p++;
+#ifdef DEBUG
+ if (dd(D_SPECIAL))
+ fprintf_str(stderr, "Preprocessing special: %s\n", p);
+#endif
+
+/*
+ * We use strncmp() here to also pass things like landscape()
+ * or landscape: or such.
+ */
+
+ switch (*p) {
+case 'o':
+ if (strncmp(p, "om:", 3)==0) { /* Omega specials ignored */
+ if (omega_specials==0) {
+ fprintf(stderr, "Omega specials are currently ignored\n");
+ omega_specials++;
+ }
+ return;
+ }
+ break;
+case 'l':
+ if (strncmp(p, "landscape", 9)==0) {
+ if (hpapersize || vpapersize)
+ error(
+ "both landscape and papersize specified: ignoring landscape");
+ else
+ landscape = 1;
+ return;
+ }
+ break;
+case 'p':
+ if (strncmp(p, "pos:", 4)==0) return; /* positional specials */
+ if (strncmp(p, "papersize", 9)==0) {
+ p += 9;
+ while (*p == '=' || *p == ' ')
+ p++;
+ if (lastpsizwins || hpapersize == 0 || vpapersize == 0) {
+ if (landscape) {
+ error(
+ "both landscape and papersize specified: ignoring landscape");
+ landscape = 0;
+ }
+ handlepapersize(p, &hpapersize, &vpapersize);
+ }
+ return;
+ }
+ break;
+case 'x':
+ if (strncmp(p, "xtex:", 5)==0) return;
+ break;
+case 's':
+ if (strncmp(p, "src:", 4)==0) return; /* source specials */
+ break;
+
+case 'h':
+ if (strncmp(p, "header", 6)==0) {
+ char *q, *r, *pre = NULL, *post = NULL;
+ p += 6;
+ while ((*p <= ' ' || *p == '=' || *p == '(') && *p != 0)
+ p++;
+ if(*p == '{') {
+ p++;
+ while ((*p <= ' ' || *p == '=' || *p == '(') && *p != 0)
+ p++;
+ q = p;
+ while (*p != '}' && *p != 0)
+ p++;
+ r = p-1;
+ while ((*r <= ' ' || *r == ')') && r >= q)
+ r--;
+ if (*p != 0) p++;
+ r[1] = 0; /* q is the file name */
+ while ((*p <= ' ' || *p == '=' || *p == '(') && *p != 0)
+ p++;
+ if(strncmp(p, "pre", 3) == 0) {
+ int bracecount = 1, num_bytes = 0;
+ while(*p != '{' && *p != 0)
+ p++;
+ if (*p != 0) p++;
+ for(r = p; *r != 0; r++) {
+ if (*r == '{') bracecount++;
+ else if (*r == '}') bracecount--;
+ if (bracecount == 0) break;
+ num_bytes++;
+ }
+ pre = (char *)malloc(num_bytes+1);
+ r = pre;
+ for (j=0; j < num_bytes; j++)
+ *r++ = *p++;
+ *r = 0;
+ if (*p != 0) p++;
+ }
+ while ((*p <= ' ' || *p == '=' || *p == '(') && *p != 0)
+ p++;
+ if(strncmp(p, "post", 4) == 0) {
+ int bracecount = 1, num_bytes = 0;
+ while(*p != '{' && *p != 0)
+ p++;
+ if (*p != 0) p++;
+ for(r = p; *r != 0; r++) {
+ if (*r == '{') bracecount++;
+ else if (*r == '}') bracecount--;
+ if (bracecount == 0) break;
+ num_bytes++;
+ }
+ post = (char *)malloc(num_bytes+1);
+ r = post;
+ for (j=0; j < num_bytes; j++)
+ *r++ = *p++;
+ *r = 0;
+ }
+ if (strlen(q) > 0)
+ add_header_general(q, pre, post);
+ } else {
+ q = p; /* we will remove enclosing parentheses */
+ p = p + strlen(p) - 1;
+ while ((*p <= ' ' || *p == ')') && p >= q)
+ p--;
+ p[1] = 0;
+ if (p >= q)
+ add_header(q);
+ }
+ }
+ break;
+/* IBM: color - added section here for color header and color history */
+/* using strncmp in this fashion isn't perfect; if later someone wants
+ to introduce a verb like colorspace, well, just checking
+ strcmp(p, "color", 5) will not do. But we leave it alone for the moment.
+ --tgr */
+case 'b':
+ if (strncmp(p, "background", 10) == 0) {
+ usescolor = 1;
+ p += 10;
+ while ( *p && *p <= ' ' ) p++;
+ background(p);
+ return;
+ }
+ break;
+case 'c':
+ if (strncmp(p, "color", 5) == 0) {
+ usescolor = 1;
+ p += 5;
+ while ( *p && *p <= ' ' ) p++;
+ if (strncmp(p, "push", 4) == 0 ) {
+ p += 4;
+ while ( *p && *p <= ' ' ) p++;
+ pushcolor(p, 0);
+ } else if (strncmp(p, "pop", 3) == 0 ) {
+ popcolor(0);
+ } else {
+ resetcolorstack(p,0);
+ }
+ } /* IBM: color - end changes */
+ break;
+case '!':
+ {
+ register struct bangspecial *q;
+ p++;
+ q = (struct bangspecial *)mymalloc((integer)(sizeof(struct bangspecial)));
+ q->actualstuff = mymalloc(strlen(p) + 1);
+ strcpy(q->actualstuff, p);
+ q->next = bangspecials;
+ bangspecials = q;
+ usesspecial = 1;
+ return;
+ }
+ break;
+default:
+ break;
+ }
+ usesspecial = 1; /* now the special prolog will be sent */
+ if (scanning && *p != '"' && (p=GetKeyVal(p, &j)) != NULL && j==0
+ && *ValStr != '`') /* Don't bother to scan compressed files. */
+ scanfontcomments(ValStr);
+}
+
+/* Return 1 if S is readable along figpath, 0 if not. */
+static int
+maccess(char *s)
+{
+ FILE *f = search(figpath, s, "r");
+ int found = (f != 0);
+ if (found)
+ (*close_file) (f);
+ return found;
+}
+
+const char *tasks[] = { 0, "iff2ps", "tek2ps" };
+
+#define PSFILESIZ 511
+static char psfile[PSFILESIZ];
+
+void
+dospecial(integer numbytes)
+{
+ register char *p = nextstring;
+ register int i = 0;
+ int j, systemtype = 0;
+ register const char *q;
+ Boolean psfilewanted = 1;
+ const char *task = 0;
+ char cmdbuf[111];
+#ifdef HPS
+if (HPS_FLAG && PAGEUS_INTERUPPTUS) {
+ HREF_COUNT--;
+ start_new_box();
+ PAGEUS_INTERUPPTUS = 0;
+ }
+if (HPS_FLAG && NEED_NEW_BOX) {
+ vertical_in_hps();
+ NEED_NEW_BOX = 0;
+ }
+#endif
+ if (nextstring + numbytes > maxstring)
+ error("! out of string space in dospecial");
+ for (i=numbytes; i>0; i--)
+#ifdef VMCMS /* IBM: VM/CMS */
+ *p++ = ascii2ebcdic[(char)dvibyte()];
+#else
+#ifdef MVSXA /* IBM: MVS/XA */
+ *p++ = ascii2ebcdic[(char)dvibyte()];
+#else
+ *p++ = (char)dvibyte();
+#endif /* IBM: VM/CMS */
+#endif
+ while (p[-1] <= ' ' && p > nextstring)
+ p--; /* trim trailing blanks */
+ if (p==nextstring) return; /* all blank is no-op */
+ *p = 0;
+ p = nextstring;
+ while (*p <= ' ')
+ p++;
+#ifdef DEBUG
+ if (dd(D_SPECIAL))
+ fprintf_str(stderr, "Processing special: %s\n", p);
+#endif
+
+ switch (*p) {
+case 'o':
+ if (strncmp(p, "om:", 3)==0) { /* Omega specials ignored */
+ return;
+ }
+ break;
+case 'e':
+ if (strncmp(p, "em:", 3)==0) { /* emTeX specials in emspecial.c */
+ emspecial(p);
+ return;
+ }
+
+/* added for dvi2ps special */
+ if (strncmp(p, "epsfile=", 8)==0) { /* epsf.sty for dvi2ps-j */
+ float llx, lly, urx, ury;
+ unsigned psfilelen = 0;
+
+ p += 8;
+ while (*p && !isspace((unsigned char)*p)) {
+ if (psfilelen < PSFILESIZ - 1) {
+ psfile[psfilelen] = *p;
+ psfilelen++;
+ p++;
+ } else {
+ psfile[psfilelen] = 0; /* should not strictly be necessary */
+ sprintf(errbuf,
+ "! epsfile=%.20s... argument longer than %d characters",
+ psfile, PSFILESIZ);
+ error(errbuf);
+ }
+ }
+ if (psfilelen == 0) {
+ error ("! epsfile= argument empty");
+ }
+ psfile[psfilelen] = 0;
+ p += strlen(psfile);
+ fgetboundingbox(psfile, &llx, &lly, &urx, &ury);
+ hvpos();
+ cmdout("@beginspecial");
+ floatroundout(llx);
+ cmdout("@llx");
+ floatroundout(lly);
+ cmdout("@lly");
+ floatroundout(urx);
+ cmdout("@urx");
+ floatroundout(ury);
+ cmdout("@ury");
+
+ while ((p = GetKeyVal(p, &j))) {
+ switch (j) {
+ case 3: /* hsize */
+ floatroundout(ValNum*10);
+ cmdout("@rwi");
+ break;
+ case 4: /* vsize */
+ floatroundout(ValNum*10);
+ cmdout("@rhi");
+ break;
+ case 7: /* hscale */
+ floatroundout((urx-llx)*ValNum*10);
+ cmdout("@rwi");
+ break;
+ case 8: /* vscale */
+ floatroundout((ury-lly)*ValNum*10);
+ cmdout("@rhi");
+ break;
+ default:
+ sprintf(errbuf, "Unknown keyword `%.500s' in \\special{epsfile=%.500s...} will be ignored\n",
+ KeyStr, psfile);
+ specerror(errbuf);
+ break;
+ }
+ }
+ cmdout("@setspecial");
+ numout((integer)0);
+ cmdout("lly");
+ cmdout("ury");
+ cmdout("sub");
+ cmdout("TR");
+ figcopyfile(psfile, 0);
+ cmdout("\n@endspecial");
+ return;
+ }
+/* end addition */
+ break;
+case 'p':
+ if (strncmp(p, "pos:", 4)==0) return; /* positional specials */
+ if (strncmp(p, "ps:", 3)==0) {
+ psflush(); /* now anything can happen. */
+ if (p[3]==':') {
+ if (strncmp(p+4, "[nobreak]", 9) == 0) {
+ hvpos();
+ outputstring(&p[13]);
+ } else if (strncmp(p+4, "[begin]", 7) == 0) {
+ hvpos();
+ trytobreakout(&p[11]);
+ } else if (strncmp(p+4, "[end]", 5) == 0)
+ trytobreakout(&p[9]);
+ else trytobreakout(&p[4]);
+ } else if (strncmp(p+3, " plotfile ", 10) == 0) {
+ char *sfp;
+ hvpos();
+ p += 13;
+ /*
+ * Fixed to allow popen input for plotfile
+ * TJD 10/20/91
+ */
+ while (*p == ' ') p++;
+ if (*p == '"') {
+ p++;
+ for (sfp = p; *sfp && *sfp != '"'; sfp++);
+ } else {
+ for (sfp = p; *sfp && *sfp != ' '; sfp++);
+ }
+ *sfp = '\0';
+ if (*p == '`')
+ figcopyfile(p+1, 1);
+ else
+ figcopyfile (p, 0);
+ /* End TJD changes */
+ } else {
+ hvpos();
+ trytobreakout(&p[3]);
+ psflush();
+ hvpos();
+ }
+ return;
+ }
+ if (strncmp(p, "papersize", 9) == 0)
+ return;
+#ifdef TPIC
+ if (strncmp(p, "pn ", 3) == 0) {setPenSize(p+2); return;}
+ if (strncmp(p, "pa ", 3) == 0) {addPath(p+2); return;}
+#endif
+
+/* added for jdvi2kps special */
+ if (strncmp(p, "postscriptbox", 13)==0) { /* epsbox.sty for jdvi2kps */
+ float w, h;
+ float llx, lly, urx, ury;
+ if (strlen(p)-13-6 >= PSFILESIZ) { /* -6 for the braces */
+ /* We're not allowing as long a name as we could, since however
+ many characters the two {%fpt} arguments consume is not
+ taken into account. But parsing it all so we know the
+ character length is too much work for this obscure special. */
+ sprintf(errbuf,
+ "! postscriptbox{} arguments longer than %d characters",
+ PSFILESIZ);
+ error(errbuf);
+ }
+ if (sscanf(p+13, "{%fpt}{%fpt}{%[^}]}", &w, &h, psfile) != 3)
+ break;
+ fgetboundingbox(psfile, &llx, &lly, &urx, &ury);
+ hvpos();
+ cmdout("@beginspecial");
+ floatroundout(llx);
+ cmdout("@llx");
+ floatroundout(lly);
+ cmdout("@lly");
+ floatroundout(urx);
+ cmdout("@urx");
+ floatroundout(ury);
+ cmdout("@ury");
+ floatroundout(w*10*72/72.27);
+ cmdout("@rwi");
+ floatroundout(h*10*72/72.27);
+ cmdout("@rhi");
+ cmdout("@setspecial");
+ figcopyfile(psfile, 0);
+ cmdout("\n@endspecial");
+ return;
+ }
+/* end addition */
+ break;
+case 'l':
+ if (strncmp(p, "landscape", 9)==0) return;
+ break;
+case '!':
+ return;
+case 'h':
+ if (strncmp(p, "header", 6)==0) return;
+#ifdef HPS
+ if (strncmp(p, "html:", 5)==0) {
+ if (! HPS_FLAG) return;
+ p += 5;
+ while (isspace((unsigned char)*p))
+ p++;
+ if (*p == '<') {
+ char *sp = p;
+ char *str;
+ int ii=0, len, lower_len;
+
+ while ((*p) && (*p != '>')) {
+ ii++;
+ p++;
+ }
+ str = (char *)mymalloc(ii+2);
+ strncpy(str,sp+1,ii-1);
+ str[ii-1] = 0;len=strlen(str);
+ if(len>6) lower_len=6; else lower_len=len;
+ for(ii=0;ii<lower_len;ii++) str[ii]=tolower((unsigned char)str[ii]);
+ do_html(str);
+ free(str);
+ } else
+#ifdef KPATHSEA
+ if (!kpse_tex_hush ("special"))
+#endif
+ {
+
+ sprintf(errbuf,"Error in html special\n");
+ error(errbuf);
+ return;
+ }
+ return;
+ }
+#else
+ if (strncmp(p, "html:", 5)==0) return;
+#endif
+case 'w':
+case 'W':
+ if (strncmp(p+1, "arning", 6) == 0) {
+ static int maxwarns = 50;
+ if (maxwarns > 0) {
+ error(p);
+ maxwarns--;
+ } else if (maxwarns == 0) {
+ error(". . . rest of warnings suppressed");
+ maxwarns--;
+ }
+ return;
+ }
+#ifdef TPIC
+ if (strcmp(p, "wh") == 0) {whitenLast(); return;}
+#endif
+ break;
+case 'b':
+ if ( strncmp(p, "background", 10) == 0 )
+ return; /* already handled in prescan */
+#ifdef TPIC
+ if (strcmp(p, "bk") == 0) {blackenLast(); return;}
+#endif
+ break;
+case 'c':
+ if (strncmp(p, "color", 5) == 0) {
+ p += 5;
+ while ( *p && *p <= ' ' ) p++;
+ if (strncmp(p, "push", 4) == 0 ) {
+ p += 4;
+ while ( *p && *p <= ' ' ) p++;
+ pushcolor(p,1);
+ } else if (strncmp(p, "pop", 3) == 0 ) {
+ popcolor(1);
+ } else {
+ resetcolorstack(p,1);
+ }
+ return;
+ } /* IBM: color - end changes*/
+ break;
+case 'f':
+#ifdef TPIC
+ if (strcmp(p, "fp") == 0) {flushPath(0); return;}
+#endif
+ break;
+case 'i':
+#ifdef TPIC
+ if (strcmp(p, "ip") == 0) {flushPath(1); return;} /* tpic 2.0 */
+ if (strncmp(p, "ia ", 3) == 0) {arc(p+2, 1); return;} /* tpic 2.0 */
+#endif
+ break;
+case 'd':
+#ifdef TPIC
+ if (strncmp(p, "da ", 3) == 0) {flushDashed(p+2, 0); return;}
+ if (strncmp(p, "dt ", 3) == 0) {flushDashed(p+2, 1); return;}
+#endif
+ break;
+case 's':
+ if (strncmp(p, "src:", 4) == 0) return; /* source specials */
+#ifdef TPIC
+ if (strcmp(p, "sp") == 0) {flushSpline(p+2); return;} /* tpic 2.0 */
+ if (strncmp(p, "sp ", 3) == 0) {flushSpline(p+3); return;} /* tpic 2.0 */
+ if (strcmp(p, "sh") == 0) {shadeLast(p+2); return;} /* tpic 2.0 */
+ if (strncmp(p, "sh ", 3) == 0) {shadeLast(p+3); return;} /* tpic 2.0 */
+#endif
+ break;
+case 'a':
+#ifdef TPIC
+ if (strncmp(p, "ar ", 3) == 0) {arc(p+2, 0); return;} /* tpic 2.0 */
+#endif
+ break;
+case 't':
+#ifdef TPIC
+ if (strncmp(p, "tx ", 3) == 0) {SetShade(p+3); return;}
+#endif
+ break;
+case '"':
+ hvpos();
+ cmdout("@beginspecial");
+ cmdout("@setspecial");
+ trytobreakout(p+1);
+ cmdout("\n@endspecial");
+ return;
+ break;
+default:
+ break;
+ }
+/* At last we get to the key/value conventions */
+ psfile[0] = '\0';
+ hvpos();
+ cmdout("@beginspecial");
+
+ while( (p=GetKeyVal(p,&j)) != NULL )
+ switch (j) {
+ case -1: /* for compatibility with old conventions, we allow a file name
+ * to be given without the 'psfile=' keyword */
+ if (!psfile[0] && maccess(KeyStr)==1) { /* yes we can read it */
+ if (strlen(KeyStr) >= PSFILESIZ) {
+ sprintf(errbuf,
+ "! Bare filename (%.20s...) in \\special longer than %d characters",
+ KeyStr, PSFILESIZ);
+ }
+ strcpy(psfile,KeyStr);
+ } else {
+ if (strlen(KeyStr) < 40) {
+ sprintf(errbuf,
+ "Unknown keyword (%s) in \\special will be ignored",
+ KeyStr);
+ } else {
+ sprintf(errbuf,
+ "Unknown keyword (%.40s...) in \\special will be ignored",
+ KeyStr);
+ }
+ specerror(errbuf);
+ }
+ break;
+ case 0: case 1: case 2: /* psfile */
+ if (psfile[0]) {
+ sprintf(errbuf, "More than one \\special %s given; %.40s ignored",
+ "psfile", ValStr);
+ specerror(errbuf);
+ } else {
+ if (strlen(ValStr) >= PSFILESIZ) {
+ sprintf(errbuf,
+ "! PS filename (%.20s...) in \\special longer than %d characters",
+ ValStr, PSFILESIZ);
+ error(errbuf);
+ }
+ strcpy(psfile, ValStr);
+ }
+ task = tasks[j];
+ break;
+ default: /* most keywords are output as PostScript procedure calls */
+ if (KeyTab[j].Type == Integer)
+ numout((integer)ValInt);
+ else if (KeyTab[j].Type == String)
+ for (q=ValStr; *q; q++)
+ scout(*q);
+ else if (KeyTab[j].Type == None);
+ else { /* Number or Dimension */
+ ValInt = (integer)(ValNum<0? ValNum-0.5 : ValNum+0.5);
+ if (ValInt-ValNum < 0.001 && ValInt-ValNum > -0.001)
+ numout((integer)ValInt);
+ else {
+ snprintf(cmdbuf, sizeof(cmdbuf), "%f", ValNum);
+ cmdout(cmdbuf);
+ }
+ }
+ snprintf(cmdbuf, sizeof(cmdbuf), "@%s", KeyStr);
+ cmdout(cmdbuf);
+ }
+
+ cmdout("@setspecial");
+
+ if(psfile[0]) {
+ if (task == 0) {
+ systemtype = (psfile[0]=='`');
+ figcopyfile(psfile+systemtype, systemtype);
+ } else {
+ fprintf (stderr, "dvips: iff2ps and tek2ps are not supported.\n");
+ }
+ } else if (psfilewanted
+#ifdef KPATHSEA
+ && !kpse_tex_hush ("special")
+#endif
+ )
+ specerror("No \\special psfile was given; figure will be blank");
+
+ cmdout("@endspecial");
+}
+
+/*
+ * Handles specials encountered during bounding box calculations.
+ * Currently we only deal with psfile's or PSfiles and only those
+ * that do not use rotations.
+ */
+static float rbbox[4];
+float *
+bbdospecial(int nbytes)
+{
+ char *p = nextstring;
+ int i, j;
+ char seen[NKEYS];
+ float valseen[NKEYS];
+
+ if (nbytes < 0 || nbytes > maxstring - nextstring) {
+ if (nbytes < 0 || nbytes > (INT_MAX - 1000) / 2 ) {
+ error("! Integer overflow in bbdospecial");
+ exit(1);
+ }
+ p = nextstring = mymalloc(1000 + 2 * nbytes);
+ maxstring = nextstring + 2 * nbytes + 700;
+ }
+ if (nextstring + nbytes > maxstring)
+ error("! out of string space in bbdospecial");
+ for (i=nbytes; i>0; i--)
+#ifdef VMCMS /* IBM: VM/CMS */
+ *p++ = ascii2ebcdic[(char)dvibyte()];
+#else
+#ifdef MVSXA /* IBM: MVS/XA */
+ *p++ = ascii2ebcdic[(char)dvibyte()];
+#else
+ *p++ = (char)dvibyte();
+#endif /* IBM: VM/CMS */
+#endif
+ while (p[-1] <= ' ' && p > nextstring)
+ p--; /* trim trailing blanks */
+ if (p==nextstring) return NULL; /* all blank is no-op */
+ *p = 0;
+ p = nextstring;
+ while (*p && *p <= ' ')
+ p++;
+ if (strncmp(p, "psfile", 6)==0 || strncmp(p, "PSfile", 6)==0) {
+ float originx = 0, originy = 0, hscale = 1, vscale = 1,
+ hsize = 0, vsize = 0;
+ for (j=0; j<NKEYS; j++)
+ seen[j] = 0;
+ j = 0;
+ while ((p=GetKeyVal(p, &j))) {
+ if (j >= 0 && j < NKEYS && KeyTab[j].Type == Number) {
+ seen[j]++;
+ valseen[j] = ValNum;
+ }
+ }
+ /*
+ * This code mimics what happens in @setspecial.
+ */
+ if (seen[3])
+ hsize = valseen[3];
+ if (seen[4])
+ vsize = valseen[4];
+ if (seen[5])
+ originx = valseen[5];
+ if (seen[6])
+ originy = valseen[6];
+ if (seen[7])
+ hscale = valseen[7] / 100.0;
+ if (seen[8])
+ vscale = valseen[8] / 100.0;
+ if (seen[10] && seen[12])
+ hsize = valseen[12] - valseen[10];
+ if (seen[11] && seen[13])
+ vsize = valseen[13] - valseen[11];
+ if (seen[14] || seen[15]) {
+ if (seen[14] && seen[15] == 0) {
+ hscale = vscale = valseen[14] / (10.0 * hsize);
+ } else if (seen[15] && seen[14] == 0) {
+ hscale = vscale = valseen[15] / (10.0 * vsize);
+ } else {
+ hscale = valseen[14] / (10.0 * hsize);
+ vscale = valseen[15] / (10.0 * vsize);
+ }
+ }
+ /* at this point, the bounding box in PostScript units relative to
+ the current dvi point is
+ originx originy originx+hsize*hscale originy+vsize*vscale
+ We'll let the bbox routine handle the remaining math.
+ */
+ rbbox[0] = originx;
+ rbbox[1] = originy;
+ rbbox[2] = originx+hsize*hscale;
+ rbbox[3] = originy+vsize*vscale;
+ return rbbox;
+ }
+ return 0;
+}
diff --git a/Build/source/texk/dvipsk/download.c b/Build/source/texk/dvipsk/download.c
new file mode 100644
index 00000000000..54718ce2adf
--- /dev/null
+++ b/Build/source/texk/dvipsk/download.c
@@ -0,0 +1,572 @@
+/*
+ * Code to download a font definition at the beginning of a section.
+ * hacked by SPQR 8.95 to allow for non-partial downloading
+ *
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#ifndef DOWNLOAD_USING_PDFTEX
+#define DOWNLOAD_USING_PDFTEX
+#endif
+#ifndef DOWNLOAD_USING_PDFTEX
+#include "t1part.h"
+#endif
+#define DVIPS
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+static unsigned char dummyend[8] = { 252 };
+
+/*
+ * We have a routine that downloads an individual character.
+ */
+static int lastccout;
+quarterword *unpack_bb(chardesctype *c, integer *cwidth, integer *cheight,
+ integer *xoff, integer *yoff) {
+ quarterword *p = c->packptr;
+ halfword cmd = *p++;
+ if (cmd & 4) {
+ if ((cmd & 7) == 7) {
+ *cwidth = getlong(p);
+ *cheight = getlong(p + 4);
+ *xoff = getlong(p + 8);
+ *yoff = getlong(p + 12);
+ p += 16;
+ } else {
+ *cwidth = p[0] * 256 + p[1];
+ *cheight = p[2] * 256 + p[3];
+ *xoff = p[4] * 256 + p[5];
+ if (*xoff > 32767)
+ *xoff -= 65536 ;
+ *yoff = p[6] * 256 + p[7];
+ if (*xoff > 32767)
+ *xoff -= 65536 ;
+ p += 8;
+ }
+ } else {
+ *cwidth = *p++;
+ *cheight = *p++;
+ *xoff = *p++;
+ *yoff = *p++;
+ if (*xoff > 127)
+ *xoff -= 256;
+ if (*yoff > 127)
+ *yoff -= 256;
+ }
+ return p ;
+}
+static void
+downchar(chardesctype *c, shalfword cc)
+{
+ register long i, j;
+ integer cheight, cwidth;
+ register long k;
+ register quarterword *p;
+ register halfword cmd;
+ integer xoff, yoff;
+ halfword wwidth = 0;
+ register long len;
+ int smallchar;
+
+ cmd = *(c->packptr) ;
+ p = unpack_bb(c, &cwidth, &cheight, &xoff, &yoff) ;
+ if (c->flags & BIGCHAR)
+ smallchar = 0;
+ else
+ smallchar = 5;
+ if (compressed) {
+ len = getlong(p);
+ p += 4;
+ } else {
+ wwidth = (cwidth + 15) / 16;
+ i = 2 * cheight * (long)wwidth;
+ if (i <= 0)
+ i = 2;
+ i += smallchar;
+ if (mbytesleft < i) {
+ if (mbytesleft >= RASTERCHUNK)
+ (void) free((char *) mraster);
+ if (RASTERCHUNK > i) {
+ mraster = (quarterword *)mymalloc((integer)RASTERCHUNK);
+ mbytesleft = RASTERCHUNK;
+ } else {
+ k = i + i / 4;
+ mraster = (quarterword *)mymalloc((integer)k);
+ mbytesleft = k;
+ }
+ }
+ k = i;
+ while (k > 0)
+ mraster[--k] = 0;
+ unpack(p, (halfword *)mraster, cwidth, cheight, cmd);
+ p = mraster;
+ len = i - smallchar;
+ }
+ if (cheight == 0 || cwidth == 0 || len == 0) {
+ cwidth = 1;
+ cheight = 1;
+ wwidth = 1;
+ len = 2;
+ if (compressed)
+ p = dummyend; /* CMD(END); see repack.c */
+ else
+ mraster[0] = 0;
+ }
+ if (smallchar) {
+ p[len] = cwidth;
+ p[len + 1] = cheight;
+ p[len + 2] = xoff + 128;
+ p[len + 3] = yoff + 128;
+ p[len + 4] = c->pixelwidth;
+ } else
+/*
+ * Now we actually send out the data.
+ */
+ specialout('[');
+ if (compressed) {
+ specialout('<');
+ mhexout(p, len + smallchar);
+ specialout('>');
+ } else {
+ i = (cwidth + 7) / 8;
+ if (i * cheight > 65520) {
+ long bc = 0;
+ specialout('<');
+ for (j=0; j<cheight; j++) {
+ if (bc + i > 65520) {
+ specialout('>');
+ specialout('<');
+ bc = 0;
+ }
+ mhexout(p, i);
+ bc += i;
+ p += 2*wwidth;
+ }
+ specialout('>');
+ } else {
+ specialout('<');
+ if (2 * wwidth == i)
+ mhexout(p, ((long)cheight) * i + smallchar);
+ else {
+ for (j=0; j<cheight; j++) {
+ mhexout(p, i);
+ p += 2*wwidth;
+ }
+ if (smallchar)
+ mhexout(p, (long)smallchar);
+ }
+ specialout('>');
+ }
+ }
+ if (smallchar == 0) {
+ numout((integer)cwidth);
+ numout((integer)cheight);
+ numout((integer)xoff + 128); /* not all these casts needed. */
+ numout((integer)yoff + 128);
+ numout((integer)(c->pixelwidth));
+ }
+ if (lastccout + 1 == cc) {
+ cmdout("I");
+ } else {
+ numout((integer)cc);
+ cmdout("D");
+ }
+ lastccout = cc;
+}
+/*
+ * Output the literal name of the font change command with PostScript index n
+ */
+static char goodnames[] =
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+void
+makepsname(register char *s, register int n)
+{
+ n--;
+ *s++ = 'F' + n / (sizeof(goodnames)-1);
+ *s++ = goodnames[n % (sizeof(goodnames)-1)];
+ *s++ = 0;
+}
+void
+lfontout(int n)
+{
+ char buf[10];
+ char *b = buf;
+ *b++ = '/';
+ makepsname(b, n);
+ cmdout(buf);
+}
+
+/*
+ * And the download procedure.
+ */
+void
+download(charusetype *p, int psfont)
+{
+ double scale;
+ int seq;
+ register int b, i;
+ register halfword bit;
+ register chardesctype *c;
+ int cc, maxcc = -1, numcc;
+ double fontscale;
+ char name[10];
+ lastccout = -5;
+ name[0] = '/';
+ makepsname(name + 1, psfont);
+ curfnt = p->fd;
+ curfnt->psname = psfont;
+ if (curfnt->resfont) {
+ struct resfont *rf = curfnt->resfont;
+ int non_empty=0;
+ for (b=0; b<16; b++)
+ if(p->bitmap[b] !=0)
+ non_empty =1;
+ if(non_empty==0 && curfnt->iswide == 0 && curfnt->codewidth==1)
+ return;
+ cmdout(name);
+/* following code re-arranged - Rob Hutchings 1992Apr02 */
+ c = curfnt->chardesc + 255;
+ cc = 255;
+ numcc = 0;
+ i = 0;
+ for (b=15; b>=0; b--) {
+ for (bit=1; bit; bit<<=1) {
+ if (p->bitmap[b] & bit) {
+ if (i > 0) {
+ numout((integer)i);
+ specialout('[');
+ i = 0;
+ }
+ numout((integer)c->pixelwidth);
+ c->flags |= EXISTS;
+ numcc++;
+ } else {
+ i++;
+ c->flags &= ~EXISTS;
+ }
+ c--;
+ cc--;
+ }
+ }
+ if (i > 0) {
+ numout((integer)i);
+ specialout('[');
+ }
+ specialout ('{');
+ if (rf->specialinstructions)
+ cmdout(rf->specialinstructions);
+ specialout ('}');
+ numout((integer)numcc);
+ /*
+ * This code has been bogus for a long time. The fix is
+ * straightforward. The input, curfnt->scaledsize, is the
+ * desired size of the font in dvi units. The output is the
+ * fontscale, which is the height of the font in output units
+ * which are simply pixels. Thus, all we need to do is multiply
+ * by the default generic conv, which properly takes into
+ * account magnification, num/den, output resolution, and so on.
+ * Sorry this bug has been in here so long. -tgr
+ */
+ fontscale = curfnt->scaledsize * conv;
+ sprintf(nextstring, "%g", fontscale);
+ cmdout(nextstring);
+ strcpy(nextstring, "/");
+ strcat(nextstring, rf->PSname);
+ cmdout(nextstring);
+/* end of changed section - Rob */
+ cmdout("rf");
+ rf->sent = 1;
+ return;
+ }
+/*
+ * Here we calculate the largest character actually used, and
+ * send it as a parameter to df.
+ */
+ cc = 0;
+ numcc = 0;
+ for (b=0; b<16; b++) {
+ for (bit=32768; bit!=0; bit>>=1) {
+ if (p->bitmap[b] & bit) {
+ maxcc = cc;
+ numcc++;
+ }
+ cc++;
+ }
+ }
+ if (numcc <= 0)
+ return;
+ fontscale = ((double)(curfnt->scaledsize)) / 65536.0;
+ fontscale *= (mag/1000.0);
+ newline();
+ fprintf(bitfile, "%%DVIPSBitmapFont: %s %s %g %d\n", name+1, curfnt->name,
+ fontscale, numcc);
+ scale = fontscale * DPI / 72.0 ;
+ seq = -1 ;
+ if (encodetype3)
+ seq = downloadbmencoding(curfnt->name, scale, curfnt) ;
+ cmdout(name);
+ numout((integer)numcc);
+ numout((integer)maxcc + 1);
+/*
+ * If we need to scale the font, we say so by using dfs
+ * instead of df, and we give it a scale factor. We also
+ * scale the character widths; this is ugly, but scaling
+ * fonts is ugly, and this is the best we can probably do.
+ */
+ if (curfnt->dpi != curfnt->loadeddpi) {
+ numout((integer)curfnt->dpi);
+ numout((integer)curfnt->loadeddpi);
+ if (curfnt->alreadyscaled == 0) {
+ for (b=0, c=curfnt->chardesc; b<256; b++, c++)
+ c->pixelwidth = (c->pixelwidth *
+ (long)curfnt->dpi * 2 + curfnt->loadeddpi) / (2 * curfnt->loadeddpi);
+ curfnt->alreadyscaled = 1;
+ }
+ cmdout("dfs");
+ } else
+ cmdout("df");
+ c = curfnt->chardesc;
+ cc = 0;
+ for (b=0; b<16; b++) {
+ for (bit=32768; bit; bit>>=1) {
+ if (p->bitmap[b] & bit) {
+ downchar(c, (shalfword)cc);
+ c->flags |= EXISTS;
+ } else
+ c->flags &= ~EXISTS;
+ c++;
+ cc++;
+ }
+ }
+ cmdout("E");
+ newline() ;
+ if (seq >= 0)
+ finishbitmapencoding(name, scale) ;
+ fprintf(bitfile, "%%EndDVIPSBitmapFont\n");
+}
+
+#ifdef DOWNLOAD_USING_PDFTEX
+/*
+ * Magic code to deal with PostScript font partial downloading.
+ * We track the encodings we've seen so far and keep them in these
+ * structures. We rely on writet1 to load the encodings for us.
+ */
+static struct seenEncodings {
+ struct seenEncodings *next;
+ const char *name;
+ char **glyphs;
+} *seenEncodings;
+
+/*
+ * Load a new encoding and return the array of glyphs as a vector.
+ * Linear search.
+ */
+static char **getEncoding(char *encoding) {
+ struct seenEncodings *p = seenEncodings;
+ while (p != 0)
+ if (strcmp(encoding, p->name) == 0)
+ break;
+ else
+ p = p->next;
+ if (p == 0) {
+ p = (struct seenEncodings *)mymalloc(sizeof(struct seenEncodings));
+ p->next = seenEncodings;
+ seenEncodings = p;
+ p->name = xstrdup(encoding);
+ p->glyphs = load_enc_file(encoding);
+ }
+ return p->glyphs;
+}
+/*
+ * When partially downloading a type 1 font, sometimes the font uses
+ * the built-in encoding (which we don't know at this point) so we want
+ * to subset it by character code. Sometimes the font uses a different
+ * encoding, so we want to subset it by glyph. These routines manage
+ * accumulating all the glyph names for a particular font from all
+ * the various uses into a single, slash-delimited string for writet1().
+ *
+ * If no glyphs have been added, extraGlyphs is null. In all cases,
+ * the memory allocated for this is in extraGlyphSpace.
+ */
+static char *extraGlyphs = 0;
+static char *extraGlyphSpace = 0;
+static int extraGlyphSize = 0;
+static int glyphSizeUsed = 0;
+/*
+ * We want to make sure we pass in null or "/" but never "".
+ */
+static void clearExtraGlyphList(void) {
+ glyphSizeUsed = 0;
+ extraGlyphs = 0;
+}
+/*
+ * Add the glyph name; make sure it hasn't been added already.
+ * We do this by adding it, so we can get the // around it,
+ * and *then* see if it's already there and if it is un-add it.
+ */
+static void addGlyph(const char *glyphName) {
+ int len = strlen(glyphName);
+ char *startOfAdd = 0;
+ if (len + glyphSizeUsed + 3 > extraGlyphSize) {
+ extraGlyphSize = 2 * (extraGlyphSize + len + 100);
+ extraGlyphSpace = (char *) xrealloc(extraGlyphSpace, extraGlyphSize);
+ }
+ extraGlyphs = extraGlyphSpace;
+ if (glyphSizeUsed == 0) {
+ startOfAdd = extraGlyphs + glyphSizeUsed;
+ extraGlyphs[glyphSizeUsed++] = '/'; /* leading / */
+ } else {
+ startOfAdd = extraGlyphs + glyphSizeUsed - 1;
+ }
+ strcpy(extraGlyphs + glyphSizeUsed, glyphName);
+ glyphSizeUsed += len;
+ extraGlyphs[glyphSizeUsed++] = '/'; /* trailing / */
+ extraGlyphs[glyphSizeUsed] = 0;
+ if (strstr(extraGlyphs, startOfAdd) != startOfAdd) { /* already there! */
+ glyphSizeUsed = startOfAdd - extraGlyphs + 1; /* kill the second copy */
+ extraGlyphs[glyphSizeUsed] = 0;
+ }
+}
+#endif
+
+/*
+ * Download a PostScript font, using partial font downloading if
+ * necessary.
+ */
+static void
+downpsfont(charusetype *p, charusetype *all)
+{
+ static unsigned char grid[256];
+ int GridCount;
+ register int b;
+ register halfword bit;
+ register chardesctype *c;
+ struct resfont *rf;
+ int cc;
+ int j;
+
+ curfnt = p->fd;
+ rf = curfnt->resfont;
+ if (rf == 0 || rf->Fontfile == NULL)
+ return;
+ for (; all->fd; all++)
+ if (all->fd->resfont &&
+ strcmp(rf->PSname, all->fd->resfont->PSname) == 0)
+ break;
+ if (all != p)
+ return;
+ if (rf->sent == 2) /* sent as header, from a PS file */
+ return;
+ for (j=0; downloadedpsnames[j] && j < unused_top_of_psnames; j++) {
+ if (strcmp (downloadedpsnames[j], rf->PSname) == 0)
+ return;
+ }
+ if (all->fd == 0)
+ error("! internal error in downpsfont");
+ if (!partialdownload) {
+ infont = all->fd->resfont->PSname;
+ copyfile(all->fd->resfont->Fontfile);
+ infont = 0;
+ return;
+ }
+ for (cc=0; cc<256; cc++)
+ grid[cc] = 0;
+#ifdef DOWNLOAD_USING_PDFTEX
+ clearExtraGlyphList();
+#endif
+ for (; all->fd; all++) {
+ if (all->fd->resfont == 0 ||
+ strcmp(rf->PSname, all->fd->resfont->PSname))
+ continue;
+ curfnt = all->fd;
+#ifdef DOWNLOAD_USING_PDFTEX
+ if (curfnt->resfont->Vectfile) {
+ char **glyphs = getEncoding(curfnt->resfont->Vectfile);
+ c = curfnt->chardesc + 255;
+ cc = 255;
+ for (b=15; b>=0; b--) {
+ for (bit=1; bit; bit<<=1) {
+ if (all->bitmap[b] & bit) {
+ addGlyph(glyphs[cc]);
+ }
+ c--;
+ cc--;
+ }
+ }
+ } else {
+#endif
+ c = curfnt->chardesc + 255;
+ cc = 255;
+ for (b=15; b>=0; b--) {
+ for (bit=1; bit; bit<<=1) {
+ if (all->bitmap[b] & bit) {
+ grid[cc]=1;
+ }
+ c--;
+ cc--;
+ }
+ }
+#ifdef DOWNLOAD_USING_PDFTEX
+ }
+#endif
+ }
+
+ for (GridCount=0,cc=0; cc<256; cc++) {
+/* tmpgrid[cc]=grid[cc]; */
+ if(grid[cc] ==1) {
+ GridCount++;
+ }
+ }
+ if(GridCount!=0
+#ifdef DOWNLOAD_USING_PDFTEX
+ || extraGlyphs
+#endif
+ ) {
+ newline();
+ if (! disablecomments)
+ fprintf(bitfile, "%%%%BeginFont: %s\n", rf->PSname);
+#ifdef DOWNLOAD_USING_PDFTEX
+ if (!t1_subset_2(rf->Fontfile, grid, extraGlyphs))
+#else
+ if(FontPart(bitfile, rf->Fontfile, rf->Vectfile) < 0)
+#endif
+ exit(1);
+ if (!quiet) {
+ if (strlen(realnameoffile) + prettycolumn > STDOUTSIZE) {
+ fprintf(stderr, "\n");
+ prettycolumn = 0;
+ }
+ fprintf_str(stderr, "<%s>", realnameoffile);
+ prettycolumn += strlen(realnameoffile) + 2;
+ }
+ if (! disablecomments)
+ fprintf(bitfile, "%%%%EndFont \n");
+ }
+}
+
+void
+dopsfont(sectiontype *fs)
+{
+ charusetype *cu;
+
+ cu = (charusetype *) (fs + 1);
+#ifdef DOWNLOAD_USING_PDFTEX
+ while (cu->fd) {
+ if (cu->psfused)
+ cu->fd->psflag = EXISTS;
+ downpsfont(cu++, (charusetype *)(fs + 1));
+ }
+#else
+ line = getmem(BUFSIZ);
+ tmpline=line;
+ while (cu->fd) {
+ if (cu->psfused)
+ cu->fd->psflag = EXISTS;
+ downpsfont(cu++, (charusetype *)(fs + 1));
+ }
+ loadbase = ~FLG_LOAD_BASE;
+ FirstCharB=UnDefineChars(FirstCharB);
+ free(tmpline);
+#endif
+}
diff --git a/Build/source/texk/dvipsk/dpicheck.c b/Build/source/texk/dvipsk/dpicheck.c
new file mode 100644
index 00000000000..19d8b6c92d8
--- /dev/null
+++ b/Build/source/texk/dvipsk/dpicheck.c
@@ -0,0 +1,78 @@
+/*
+ * dpicheck of dvips.c. Checks the dots per inch to make sure
+ * it exists. The fonts which exist are DPI at the appropriate
+ * magnifications.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+static integer existsizes[30] = { 0 , 99999999 };
+static int checkdpi;
+/*
+ * This routine adds some sizes to `existsizes'.
+ */
+static void
+addsiz(int rhsize)
+{
+ register integer *p;
+ long t, hsize;
+
+ hsize = rhsize;
+ for (p=existsizes; *p < hsize; p++);
+ if (*p == hsize)
+ return;
+ do {
+ t = *p;
+ *p++ = hsize;
+ hsize = t;
+ } while (hsize);
+}
+static void
+adddpi(int hsize)
+{
+ long a, b, c;
+ int i;
+
+ addsiz(hsize);
+ addsiz((int)((hsize * 116161L + 53020L) / 106040L));
+ a = hsize;
+ b = 0;
+ c = 1;
+ for (i=0; i<9; i++) {
+ b = 6 * b + (a % 5) * c;
+ a = a + a / 5;
+ c = c * 5;
+ if (b > c) {
+ b -= c;
+ a++;
+ }
+ if (b + b >= c)
+ addsiz((int)(a+1));
+ else
+ addsiz((int)a);
+ }
+}
+/*
+ * Finally, the routine that checks a size for match.
+ */
+halfword
+dpicheck(halfword dpi)
+{
+ integer i;
+ integer margin = 1 + dpi / 500;
+
+ if (! checkdpi) {
+ adddpi(DPI);
+ checkdpi = 1;
+ }
+ for (i=0; existsizes[i] < dpi; i++);
+ if (existsizes[i]-dpi <= margin)
+ return(existsizes[i]);
+ else if (dpi-existsizes[i-1] <= margin)
+ return(existsizes[i-1]);
+ else
+ return(dpi);
+}
diff --git a/Build/source/texk/dvipsk/drawPS.c b/Build/source/texk/dvipsk/drawPS.c
new file mode 100644
index 00000000000..6ce17f6483e
--- /dev/null
+++ b/Build/source/texk/dvipsk/drawPS.c
@@ -0,0 +1,667 @@
+/*
+ * D R A W P S . C
+ *
+ * Changed to take magnification into account, 27 August 1990.
+ *
+ * (minor mods by don on 5 Jan 90 to accommodate highres PostScript)
+ *
+ * $Revision: 1.1 $
+ *
+ * $Log: drawPS.c,v $
+ * Revision 1.1 90/03/10 20:32:48 grunwald
+ * Initial revision
+ *
+ *
+ * 89/04/24: decouty@irisa.fr, priol@irisa.fr
+ * added three shading levels for fig,
+ * removed '\n' in cmdout() calls
+ *
+ * Revision 1.4 87/05/07 15:06:24 dorab
+ * relinked back hh to h and vv to v undoing a previous change.
+ * this was causing subtle quantization problems. the main change
+ * is in the definition of hconvPS and vconvPS.
+ *
+ * changed the handling of the UC seal. the PS file should now be
+ * sent via the -i option.
+ *
+ * Revision 1.3 86/04/29 23:20:55 dorab
+ * first general release
+ *
+ * Revision 1.3 86/04/29 22:59:21 dorab
+ * first general release
+ *
+ * Revision 1.2 86/04/29 13:23:40 dorab
+ * Added distinctive RCS header
+ *
+ */
+#ifndef lint
+char RCSid[] =
+ "@(#)$Header: /usr/local/src/TeX/Dvips-5.0.2/RCS/drawPS.c,v 1.1 90/03/10 20:32:48 grunwald Exp $ (UCLA)";
+#endif
+
+/*
+ the driver for handling the \special commands put out by
+ the tpic program as modified by Tim Morgan <morgan@uci.edu>
+ the co-ordinate system is with the origin at the top left
+ and the x-axis is to the right, and the y-axis is to the bottom.
+ when these routines are called, the origin is set at the last dvi position,
+ which has to be gotten from the dvi-driver (in this case, dvips) and will
+ have to be converted to device co-ordinates (in this case, by [hv]convPS).
+ all dimensions are given in milli-inches and must be converted to what
+ dvips has set up (i.e. there are convRESOLUTION units per inch).
+
+ it handles the following \special commands
+ pn n set pen size to n
+ pa x y add path segment to (x,y)
+ fp flush path
+ ip flush invisible path, i.e. do shading only
+ da l flush dashed - each dash is l (inches)
+ dt l flush dotted - one dot per l (inches)
+ sp [l] flush spline - optional l is dot/dash length
+ ar x y xr yr sa ea arc centered at (x,y) with x-radius xr
+ and y-radius yr, start angle sa (in rads),
+ end angle ea (in rads)
+ ia x y xr yr sa ea invisible arc with same parameters as above
+ sh [s] shade last path (box, circle, ellipse)
+ s = gray level (0 = white, 1 = black)
+ wh whiten last path (box, circle, ellipse)
+ bk blacken last path (box,circle, ellipse)
+ tx texture command - Added by T. Priol
+ (priol@irisa.fr), enhanced by M. Jourdan:
+ textures are translated into uniform gray levels
+
+ this code is in the public domain
+
+ written by dorab patel <dorab@cs.ucla.edu>
+ december 1985
+ released feb 1986
+ changes for dvips july 1987
+
+ */
+
+#include "dvips.h"
+
+#ifdef TPIC /* rest of the file !! */
+
+#include <math.h> /* used in function "arc" */
+
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+#define convRESOLUTION DPI
+#define convVRESOLUTION VDPI
+#define tpicRESOLUTION 1000 /* number of tpic units per inch */
+#ifndef TRUE
+#define TRUE 1
+#define FALSE 0
+#endif
+
+/* convert from tpic units to PS units */
+#define PixRound(a,b) zPixRound((a),(b))
+#define convPS(x) PixRound((x), dir ? convVRESOLUTION : convRESOLUTION)
+#define convVPS(x) PixRound((x), dir ? convRESOLUTION : convVRESOLUTION)
+#define ConvPS(x) PixRound((x), convRESOLUTION)
+#define ConvVPS(x) PixRound((x), convVRESOLUTION)
+
+/* convert from tpic locn to abs horiz PS locn */
+#define hconvPS(x) dir ? (vv + ConvVPS(x)) : (hh + ConvPS(x))
+/* convert from tpic locn to abs vert PS locn */
+#define vconvPS(x) dir ? (-hh + ConvPS(x)) : (vv + ConvVPS(x))
+/* convert to degrees */
+#define convDeg(x) (360*(x)/(2*3.14159265358979))
+
+/* if PostScript had splines, i wouldnt need to store the path */
+#define MAXPATHS 6000 /* maximum number of path segments */
+#define NONE 0 /* for shading */
+#define BLACK 1 /* for shading */
+#define GRAY 2 /* MJ; for shading */
+#define WHITE 3 /* for shading */
+
+/* the following defines are used to make the PostScript shorter;
+ the corresponding defines are in the PostScript prolog special.lpro */
+#define MOVETO "a"
+#define LINETO "li"
+#define RCURVETO "rc"
+#define RLINETO "rl"
+#define STROKE "st"
+#define FILL "fil"
+#define NEWPATH "np"
+#define CLOSEPATH "closepath"
+/*
+ * STROKE and FILL must restore the current point to that
+ * saved by NEWPATH
+ */
+
+static double xx[MAXPATHS], yy[MAXPATHS]; /* the current path in milli-inches */
+static integer pathLen = 0; /* the current path length */
+static integer shading = NONE; /* what to shade the last figure */
+static integer penSize = 2; /* pen size in PS units */
+
+/* forward declarations */
+/* static void doShading(); */
+static double zPixRound(double, double); /* (x/y)PixRound(x,y) */
+static double shadetp = 0.5;
+ /* shading level, initialized as requested by tpic 2.0 -- MJ */
+
+void
+setPenSize(char *cp)
+{
+ long ps;
+
+ if (sscanf(cp, " %ld ", &ps) != 1)
+ {
+ error("Illegal .ps command format");
+ return;
+ }
+
+ penSize = convPS(ps);
+ doubleout((integer)penSize);
+ cmdout("setlinewidth");
+} /* end setPenSize */
+
+void
+addPath(char *cp)
+{
+ double x,y;
+
+ if (++pathLen >= MAXPATHS) error("! Too many points");
+ if (sscanf(cp, " %lg %lg ", &x, &y) != 2)
+ error("! Malformed path expression");
+ xx[pathLen] = x;
+ yy[pathLen] = y;
+} /* end of addPath */
+
+void
+arc(char *cp, int invis)
+{
+ double xc, yc, xrad, yrad;
+ double startAngle, endAngle;
+
+ if (sscanf(cp, " %lg %lg %lg %lg %lg %lg ", &xc, &yc, &xrad, &yrad,
+ &startAngle, &endAngle) != 6)
+ {
+ error("Illegal arc specification");
+ return;
+ }
+
+/* To have filled ellipses/circles also have borders, we duplicate the object
+ specification; first time we emit a FILL command, second time we emit a
+ STROKE command.
+ There certainly exists a better way to do that in PostScript, by
+ remembering the object specification (path) across the fill command.
+ However I (MJ) am completely unproficient at PostScript...
+*/
+
+/* we need the newpath since STROKE doesnt do a newpath */
+
+ if (shading) {
+ /* first time for shading */
+ cmdout(NEWPATH);
+ doubleout(hconvPS(xc));
+ doubleout(vconvPS(yc));
+ doubleout(convPS(xrad));
+ if (xrad != yrad || VDPI != DPI)
+ doubleout(convVPS(yrad));
+ doubleout(convDeg(startAngle));
+ doubleout(convDeg(endAngle));
+
+ if (xrad == yrad && VDPI == DPI) /* for arcs and circles */
+ cmdout("arc");
+ else
+ cmdout("ellipse");
+
+ cmdout(FILL);
+ shading = NONE;
+ cmdout("0 setgray"); /* default of black */
+ }
+
+ if (!invis) {
+ /* There is a problem with tpic 2.0's handling of dotted ellipses.
+ In most (all?) cases, after conversion to degrees and rounding
+ to integers, startAngle and endAngle become the same, so nothing,
+ not even a dot (as requested), is printed in the output (at least
+ on my Apple LaserWriter).
+ So I (MJ) singled out this case.
+ */
+ double degStAng = convDeg(startAngle),
+ degEnAng = convDeg(endAngle);
+
+ cmdout(NEWPATH); /* save current point */
+
+ if (degStAng != degEnAng) { /* normal case */
+ doubleout(hconvPS(xc));
+ doubleout(vconvPS(yc));
+ doubleout(convPS(xrad));
+ if (xrad != yrad || VDPI != DPI)
+ doubleout(convVPS(yrad));
+ doubleout(degStAng);
+ doubleout(degEnAng);
+
+ if (xrad == yrad && VDPI == DPI) /* for arcs and circles */
+ cmdout("arc");
+ else
+ cmdout("ellipse");
+ }
+ else { /* draw a single dot */
+ double xdot, ydot;
+ xdot = ((double)xc + (double)xrad * cos ((startAngle + endAngle) / 2.0));
+ ydot = ((double)yc + (double)yrad * sin ((startAngle + endAngle) / 2.0));
+ doubleout(hconvPS(xdot));
+ doubleout(vconvPS(ydot));
+ cmdout(MOVETO);
+ /* +1 to make sure the dot is printed */
+ doubleout(hconvPS(xdot)+1);
+ doubleout(vconvPS(ydot)+1);
+ cmdout(LINETO);
+ }
+
+ cmdout(STROKE);
+ }
+} /* end of arc */
+
+/*
+ * In pic dashed lines are created in a manner which makes boths ends
+ * of a line solid.
+ * This means that the corner of a dotted box is a dot and the corner
+ * of a dashed box is solid.
+ * The number of inches/dash must be adjusted accordingly.
+ */
+static void
+flushDashedPath(int dotted, double inchesPerDash)
+{
+ register int i;
+ int nipd = (integer) convPS((int) inchesPerDash);
+
+ if (nipd == 0)
+ nipd = 1;
+ if (pathLen < 2)
+ {
+ error("Path less than 2 points - ignored");
+ pathLen = 0;
+ return;
+ }
+
+ cmdout(NEWPATH); /* to save the current point */
+ for (i=2; i <= pathLen; i++) {
+ integer dx = hconvPS(xx[i-1]) - hconvPS(xx[i]);
+ integer dy = vconvPS(yy[i-1]) - vconvPS(yy[i]);
+ /* Cast to double before multiplying; otherwise, can result in
+ integer overflow and thus a negative result (eepic-nan.test). */
+ double delta = sqrt(((double) dx) * dx + ((double) dy) * dy);
+ double ipd;
+ int ndashes;
+
+ /*
+ * If a line is dashed there must be an odd number of dashes.
+ * This makes the first and last dash of the line solid.
+ * If a line is dotted the length of a dot + space sequence must be
+ * chosen such that (n+1) * dotlength + n space length = linelength
+ * => (dot + space) = (line - dot) / n
+ */
+ if (dotted)
+ delta -= penSize;
+ ndashes = (integer) (delta / nipd + 0.5); /* number of dashes on line */
+ /* only odd when dashed, choose odd number with smallest deviation */
+ if (ndashes > 2 && (ndashes & 0x1) == 0 && !dotted) {
+ if (fabs(nipd - delta/(ndashes - 1)) <
+ (fabs(nipd - delta/(ndashes + 1))))
+ ndashes -= 1;
+ else
+ ndashes += 1;
+ } else if (ndashes < 1)
+ ndashes = 1;
+ ipd = delta / ndashes;
+ if (ipd <= 0.0)
+ ipd = 1.0;
+ cmdout("[");
+ if (dotted) {
+ doubleout(penSize);
+ doubleout(fabs(ipd - penSize));
+ } else /* if dashed */
+ doubleout(ipd);
+
+ cmdout("]");
+ doubleout(0);
+ cmdout("setdash");
+ doubleout(hconvPS(xx[i-1]));
+ doubleout(vconvPS(yy[i-1]));
+ cmdout(MOVETO);
+ doubleout(hconvPS(xx[i]));
+ doubleout(vconvPS(yy[i]));
+ cmdout(LINETO);
+ cmdout(STROKE);
+ }
+ cmdout("[] 0 setdash");
+ pathLen = 0;
+}
+
+void
+flushPath(int invis)
+{
+ register int i;
+
+ if (pathLen < 2)
+ {
+ error("Path less than 2 points - ignored");
+ pathLen = 0;
+ return;
+ }
+
+/* To have filled boxes also have borders, we duplicate the object
+ specification; first time we emit a FILL command, second time we emit a
+ STROKE command.
+ There certainly exists a better way to do that in PostScript, by
+ remembering the object specification (path) across the fill command.
+ However I (MJ) am completely unproficient at PostScript...
+*/
+
+#ifdef DEBUG
+ if (dd(D_SPECIAL))
+ fprintf(stderr,
+#ifdef SHORTINT
+ "flushpath(1): hh=%ld, vv=%ld, x=%lg, y=%lg, xPS=%lg, yPS=%lg\n",
+#else /* ~SHORTINT */
+ "flushpath(1): hh=%d, vv=%d, x=%lg, y=%lg, xPS=%lg, yPS=%lg\n",
+#endif /* ~SHORTINT */
+ hh, vv, xx[1], yy[1], hconvPS(xx[1]), vconvPS(yy[1]));
+#endif /* DEBUG */
+ if (shading) {
+ /* first time for shading */
+ cmdout(NEWPATH); /* to save the current point */
+ doubleout(hconvPS(xx[1]));
+ doubleout(vconvPS(yy[1]));
+ cmdout(MOVETO);
+ for (i=2; i < pathLen; i++) {
+#ifdef DEBUG
+ if (dd(D_SPECIAL))
+ fprintf(stderr,
+#ifdef SHORTINT
+ "flushpath(%ld): hh=%ld, vv=%ld, x=%lg, y=%lg, xPS=%lg, yPS=%lg\n",
+#else /* ~SHORTINT */
+ "flushpath(%d): hh=%d, vv=%d, x=%lg, y=%lg, xPS=%lg, yPS=%lg\n",
+#endif /* ~SHORTINT */
+ i, hh, vv, xx[i], yy[i], hconvPS(xx[i]), vconvPS(yy[i]));
+#endif /* DEBUG */
+ doubleout(hconvPS(xx[i]));
+ doubleout(vconvPS(yy[i]));
+ cmdout(LINETO);
+ }
+ /* Shading should always apply to a closed path
+ force it and complain if necessary */
+ if (xx[1] == xx[pathLen] && yy[1] == yy[pathLen])
+ cmdout(CLOSEPATH);
+ else {
+ doubleout(hconvPS(xx[pathLen]));
+ doubleout(vconvPS(yy[pathLen]));
+ cmdout(LINETO);
+ cmdout(CLOSEPATH);
+ error("Attempt to fill a non-closed path");
+ fprintf(stderr,
+#ifdef SHORTINT
+ "\tfirst point: x=%lg, y=%lg; last point: x=%lg, y=%lg\n",
+#else /* ~SHORTINT */
+ "\tfirst point: x=%lg, y=%lg; last point: x=%lg, y=%lg\n",
+#endif /* ~SHORTINT */
+ xx[1], yy[1], xx[pathLen], yy[pathLen]);
+
+ }
+ cmdout(FILL);
+ shading = NONE;
+ cmdout("0 setgray"); /* default of black */
+ }
+
+ if (!invis) {
+ cmdout(NEWPATH); /* to save the current point */
+ doubleout(hconvPS(xx[1]));
+ doubleout(vconvPS(yy[1]));
+ cmdout(MOVETO);
+ for (i=2; i < pathLen; i++) {
+ doubleout(hconvPS(xx[i]));
+ doubleout(vconvPS(yy[i]));
+ cmdout(LINETO);
+ }
+ if (xx[1] == xx[pathLen] && yy[1] == yy[pathLen])
+ cmdout(CLOSEPATH);
+ else {
+ doubleout(hconvPS(xx[pathLen]));
+ doubleout(vconvPS(yy[pathLen]));
+ cmdout(LINETO);
+ }
+ cmdout(STROKE);
+ }
+
+ pathLen = 0;
+} /* end of flushPath */
+
+void
+flushDashed(char *cp, int dotted)
+{
+ double inchesPerDash;
+ int savelen = pathLen;
+
+ if (sscanf(cp, " %lg ", &inchesPerDash) != 1)
+ {
+ error ("Illegal format for dotted/dashed line");
+ return;
+ }
+
+ if (inchesPerDash <= 0.0)
+ {
+ error ("Length of dash/dot cannot be negative");
+ return;
+ }
+
+ inchesPerDash = 1000 * inchesPerDash; /* to get milli-inches */
+ flushPath(1);/* print filled, always invisible bounds */
+ pathLen = savelen;
+ flushDashedPath(dotted,inchesPerDash);
+
+ cmdout("[] 0 setdash");
+} /* end of flushDashed */
+
+void
+flushSpline(char *cp)
+{ /* as exact as psdit!!! */
+ register long i;
+ register double px, py, dx, dy;
+
+ if (*cp) {
+ double inchesPerDash;
+ int ipd;
+
+ if (sscanf(cp, "%lg ", &inchesPerDash) != 1) {
+ error ("Illegal format for dotted/dashed spline");
+ return;
+ }
+
+ ipd = (int)(1000.0 * inchesPerDash); /* to get milli-inches */
+
+ if (ipd != 0) {
+ cmdout("[");
+ if (inchesPerDash < 0.0) /* dotted */ {
+ doubleout(penSize);
+ doubleout(fabs(convPS((int)-ipd) - penSize));
+ } else /* dashed */
+ doubleout(convPS((int)ipd));
+
+ cmdout("]");
+ doubleout(0);
+ cmdout("setdash");
+ }
+ }
+
+ if (pathLen < 2)
+ {
+ error("Spline less than two points - ignored");
+ return;
+ }
+
+ cmdout(NEWPATH); /* to save the current point */
+ doubleout(hconvPS(xx[1]));
+ doubleout(vconvPS(yy[1]));
+ cmdout(MOVETO);
+ px = convPS(xx[1]);
+ py = convVPS(yy[1]);
+ doubleout(dx = convPS((xx[2]+xx[1])/2) - px);
+ doubleout(dy = convVPS((yy[2]+yy[1])/2) - py);
+ cmdout(RLINETO);
+
+ for (i=2; i < pathLen; i++)
+ {
+ px += dx;
+ py += dy;
+ doubleout(convPS((xx[i-1]+5*xx[i])/6) - px);
+ doubleout(convVPS((yy[i-1]+5*yy[i])/6) - py);
+ doubleout(convPS((5*xx[i]+xx[i+1])/6) - px);
+ doubleout(convVPS((5*yy[i]+yy[i+1])/6) - py);
+ doubleout(dx = convPS((xx[i]+xx[i+1])/2) - px);
+ doubleout(dy = convVPS((yy[i]+yy[i+1])/2) - py);
+ cmdout(RCURVETO);
+ }
+
+ doubleout(hconvPS(xx[pathLen]));
+ doubleout(vconvPS(yy[pathLen]));
+ cmdout(LINETO);
+
+/* doShading(); */
+ cmdout(STROKE); /* assume no shaded splines */
+ pathLen = 0;
+
+ if (*cp)
+ cmdout("[] 0 setdash");
+
+} /* end of flushSpline */
+
+/* set shading level (used with Fig 1.4-TFX). priol@irisa.fr, 89/04 */
+/* A better trial at setting shading level -- jourdan@minos.inria.fr */
+/* Count number of black bits in the pattern together with total number, */
+/* compute the average and use this as the PostScript gray level */
+void
+SetShade(register char *cp)
+{
+ int blackbits = 0, totalbits = 0;
+
+ while (*cp) {
+ switch (*cp) {
+ case '0':
+ totalbits += 4;
+ break;
+ case '1':
+ case '2':
+ case '4':
+ case '8':
+ blackbits += 1;
+ totalbits += 4;
+ break;
+ case '3':
+ case '5':
+ case '6':
+ case '9':
+ case 'a':
+ case 'A':
+ case 'c':
+ case 'C':
+ blackbits += 2;
+ totalbits += 4;
+ break;
+ case '7':
+ case 'b':
+ case 'B':
+ case 'd':
+ case 'D':
+ case 'e':
+ case 'E':
+ blackbits += 3;
+ totalbits += 4;
+ break;
+ case 'f':
+ case 'F':
+ blackbits += 4;
+ totalbits += 4;
+ break;
+ case ' ':
+ break;
+ default:
+ error("Invalid character in .tx pattern");
+ break;
+ }
+ cp++;
+ }
+ shadetp = 1.0 - ((double) blackbits / (double) totalbits);
+ shading = GRAY;
+} /* end of SetShade */
+
+void
+shadeLast(char *cp)
+{
+ char tpout[100];
+
+ if (*cp) {
+ double tempShadetp;
+
+ if (sscanf(cp, "%lg ", &tempShadetp) != 1)
+ error ("Illegal format for shade level");
+ else if (tempShadetp < 0.0 || tempShadetp > 1.0)
+ error ("Invalid shade level");
+ else
+ /* if "sh" has an argument we can safely assume that tpic 2.0 is used
+ so that all subsequent "sh" commands will come with an explicit
+ argument. Hence we may overwrite shadetp's old value */
+ /* Also note the inversion of gray levels for tpic 2.0 (0 = white,
+ 1 = black) w.r.t. PostScript (0 = black, 1 = white) */
+ shadetp = 1.0 - tempShadetp;
+ }
+
+ shading = GRAY;
+ snprintf(tpout, sizeof(tpout), "%1.3f setgray", shadetp);
+ /* priol@irisa.fr, MJ */
+ cmdout(tpout);
+} /* end of shadeLast */
+
+void
+whitenLast(void)
+{
+ shading = WHITE;
+ cmdout("1 setgray");
+} /* end of whitenLast */
+
+void
+blackenLast(void)
+{
+ shading = BLACK;
+ cmdout("0 setgray"); /* actually this aint needed */
+} /* end of whitenLast */
+
+#if 0
+/* Not used */
+static void
+doShading(void)
+{
+ if (shading)
+ {
+ cmdout(FILL);
+ shading = NONE;
+ cmdout("0 setgray"); !* default of black *!
+ }
+ else
+ cmdout(STROKE);
+} !* end of doShading *!
+#endif
+
+/*
+ * We need to calculate (x * convDPI * mag) / (tpicResolution * 1000)
+ * So we use doubleing point. (This should have a very small impact
+ * on the speed of the program.)
+ */
+static double
+zPixRound(register double x, /* in DVI units */
+ register double convDPI /* dots per inch */
+ ) /* return rounded number of pixels */
+{
+ return ((x * mag * (double)convDPI /
+ (1000.0 * tpicRESOLUTION)));
+}
+
+#endif /* TPIC */
diff --git a/Build/source/texk/dvipsk/dviinput.c b/Build/source/texk/dvipsk/dviinput.c
new file mode 100644
index 00000000000..f25e110da0f
--- /dev/null
+++ b/Build/source/texk/dvipsk/dviinput.c
@@ -0,0 +1,89 @@
+/*
+ * Input bytes from the dvi file or the current virtual character.
+ * These routines could probably be sped up significantly; but they are
+ * very machine dependent, so I will leave such tuning to the installer.
+ * They simply get and return bytes in batches of one, two, three, and four,
+ * updating the current position as necessary.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+static void
+abortpage(void)
+{
+ error("! unexpected eof on DVI file");
+}
+
+shalfword /* the value returned is, however, between 0 and 255 */
+dvibyte(void)
+{
+ register shalfword i;
+ if (curpos) {
+ if (curpos>=curlim) return((shalfword)140);
+ return (*curpos++);
+ }
+ if ((i=getc(dvifile))==EOF)
+ abortpage();
+ return(i);
+}
+
+halfword
+twobytes(void)
+{
+ register halfword i;
+ i = dvibyte();
+ return(i*256+dvibyte()); }
+
+integer
+threebytes(void)
+{
+ register integer i;
+ i = twobytes();
+ return(i*256+dvibyte()); }
+
+shalfword
+signedbyte(void)
+{
+ register shalfword i;
+ if (curpos) {
+ if (curpos>=curlim)
+ error("! unexpected end of virtual packet");
+ i = *curpos++;
+ } else if ((i=getc(dvifile))==EOF)
+ abortpage();
+ if (i<128) return(i);
+ else return(i-256);
+}
+
+shalfword
+signedpair(void)
+{
+ register shalfword i;
+ i = signedbyte();
+ return(i*256+dvibyte());
+}
+
+integer
+signedtrio(void)
+{
+ register integer i;
+ i = signedpair();
+ return(i*256+dvibyte());
+}
+
+integer
+signedquad(void)
+{
+ register integer i;
+ i = signedpair();
+ return(i*65536+twobytes());
+}
+
+void
+skipover(int i)
+{
+ while (i-->0) dvibyte();
+}
diff --git a/Build/source/texk/dvipsk/dvips-all.enc b/Build/source/texk/dvipsk/dvips-all.enc
new file mode 100644
index 00000000000..4cc1e2e4347
--- /dev/null
+++ b/Build/source/texk/dvipsk/dvips-all.enc
@@ -0,0 +1,5127 @@
+mathu10:
+[128{/.notdef}repeat/Abreve/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek
+/Gbreve/Lacute/Lcaron/Lslash/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron
+/Sacute/Scaron/Scedilla/Tcaron/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute
+/Zcaron/Zdotaccent/IJ/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron
+12{/.notdef}repeat/rcaron/sacute/scaron/scedilla/tcaron/tcedilla
+/uhungarumlaut/uring/ydieresis/zacute/zcaron/zdotaccent/ij/exclamdown
+/questiondown/sterling/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/OE/Oslash
+/Ugrave 6{/.notdef}repeat/agrave/aacute/acircumflex/atilde/adieresis/aring
+/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex
+/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/oe/oslash
+/ugrave 6{/.notdef}repeat]
+gvibc10:
+[70{/.notdef}repeat/F 8{/.notdef}repeat/O/P 3{/.notdef}repeat/T 3{/.notdef}
+repeat/X 8{/.notdef}repeat/a/b/.notdef/d/e/f/g/h/i/.notdef/k/l/m/n/o/p/q/r/s
+/t 3{/.notdef}repeat/x/y/z 133{/.notdef}repeat]
+mathux10:
+[67{/.notdef}repeat/C/.notdef/E/F/.notdef/H/I/.notdef/.notdef/L/M/N/O/P/Q/R
+/S/T/U 42{/.notdef}repeat/Abreve/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek
+/Gbreve/Lacute/Lcaron/Lslash/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron
+/Sacute/Scaron/Scedilla/Tcaron/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute
+6{/.notdef}repeat/abreve/aogonek/cacute/ccaron/dcaron/ecaron/eogonek/gbreve
+/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute/rcaron/sacute
+/scaron/scedilla/tcaron/tcedilla/uhungarumlaut/uring/ydieresis/zacute 6{
+/.notdef}repeat/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth
+/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/OE/Oslash/Ugrave 6{
+/.notdef}repeat/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth
+/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/oe/oslash/ugrave 6{
+/.notdef}repeat]
+givbc10:
+[66{/.notdef}repeat/B 3{/.notdef}repeat/F 6{/.notdef}repeat/M/N/O/P/Q/R
+/.notdef/T 3{/.notdef}repeat/X/Y 7{/.notdef}repeat/a/b/.notdef/d/e/f/g/h/i
+/.notdef/k/l/m/n/o/p/.notdef/r/s/t 3{/.notdef}repeat/x/y/z 133{/.notdef}
+repeat]
+dingbat:
+[66{/.notdef}repeat/Square-with-dots-border-design
+/Square-with-dots-border-design/Check-mark/Left-flouron/Right-flouron
+/Flipped-left-flouron--matches-F/Flipped-right-flouron--matches-E
+/DLA-satelite-dish/Flowery-flouron/Right-flower
+/Flipped-left-flower--matches-J/Flipped-right-flower--matches-K
+/Hand-pointer-to-the-left/Anchor-for-TUG-dingbat-contest 3{/.notdef}repeat
+/S-border-design 6{/.notdef}repeat/Z-border-design 6{/.notdef}repeat
+/Overlapping-thick\thin-line-border-design---character-1
+/Overlapping-thick\thin-line-border-design---character-2
+/Overlapping-thick\thin-line-border-design---character-3
+/Overlapping-thick\thin-line-border-design---character-4
+/Overlapping-thick\thin-line-border-design---character-5
+/Overlapping-thick\thin-line-border-design---character-6
+/Overlapping-thick\thin-line-border-design---character-7
+/Overlapping-thick\thin-line-border-design---character-8 151{/.notdef}repeat
+]
+logo10:
+logo8:
+logo9:
+logobf10:
+logod10:
+logosl10:
+logosl8:
+logosl9:
+[65{/.notdef}repeat/A 3{/.notdef}repeat/E/F 6{/.notdef}repeat/M/N/O/P
+/.notdef/.notdef/S/T 171{/.notdef}repeat]
+MnSymbolS-Bold10:
+MnSymbolS-Bold12:
+MnSymbolS-Bold5:
+MnSymbolS-Bold6:
+MnSymbolS-Bold7:
+MnSymbolS-Bold8:
+MnSymbolS-Bold9:
+MnSymbolS10:
+MnSymbolS12:
+MnSymbolS5:
+MnSymbolS6:
+MnSymbolS7:
+MnSymbolS8:
+MnSymbolS9:
+[65{/.notdef}repeat/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z 165{
+/.notdef}repeat]
+rsfs10:
+rsfs5:
+rsfs7:
+[65{/.notdef}repeat/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z 36{
+/.notdef}repeat/tie 128{/.notdef}repeat]
+cmcinch:
+[62{/.notdef}repeat/fill1062 33{/.notdef}repeat/afii10048/afii10017
+/afii10018/afii10040/afii10021/afii10022/afii10038/afii10020/afii10039
+/afii10026/afii10027/afii10028/afii10029/afii10030/afii10031/afii10032
+/afii10033/afii10049/afii10034/afii10035/afii10036/afii10037/afii10024
+/afii10019/afii10046/afii10045/afii10025/afii10042/afii10047/afii10043
+/afii10041/afii10044 128{/.notdef}repeat]
+dsrom10:
+dsrom12:
+dsrom8:
+dsss10:
+dsss12:
+dsss8:
+[49{/.notdef}repeat/one 15{/.notdef}repeat/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q
+/R/S/T/U/V/W/X/Y/Z 6{/.notdef}repeat/a 6{/.notdef}repeat/h/.notdef/.notdef/k
+148{/.notdef}repeat]
+copsn10:
+[49{/.notdef}repeat/one/two/three/four/five 4{/.notdef}repeat/colon 7{
+/.notdef}repeat/B/C/D/E/F/G/.notdef/.notdef/J/K/L/M/N/.notdef/P/Q/R/S/T
+/.notdef/V/.notdef/X 8{/.notdef}repeat/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s
+/t/u/v/w/x/y/z 133{/.notdef}repeat]
+cminch:
+[48{/.notdef}repeat/zero/one/two/three/four/five/six/seven/eight/nine 7{
+/.notdef}repeat/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z 165{
+/.notdef}repeat]
+csinch:
+[48{/.notdef}repeat/zero/one/two/three/four/five/six/seven/eight/nine 7{
+/.notdef}repeat/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z 78{
+/.notdef}repeat/Scaron/.notdef/Tcaron/.notdef/.notdef/Zcaron 17{/.notdef}
+repeat/Racute/Aacute 3{/.notdef}repeat/Lacute/.notdef/.notdef/Ccaron/Eacute
+/.notdef/.notdef/Ecaron/Iacute/.notdef/Dcaron/.notdef/.notdef/Ncaron/Oacute 4
+{/.notdef}repeat/Rcaron/.notdef/Uacute/.notdef/.notdef/Yacute 34{/.notdef}
+repeat]
+plinch:
+[48{/.notdef}repeat/zero/one/two/three/four/five/six/seven/eight/nine 7{
+/.notdef}repeat/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z 38{
+/.notdef}repeat/Aogonek/Cacute 3{/.notdef}repeat/Eogonek 3{/.notdef}repeat
+/Lslash/Nacute 5{/.notdef}repeat/Sacute 7{/.notdef}repeat/Zacute/.notdef
+/Zdotaccent 55{/.notdef}repeat/Oacute 44{/.notdef}repeat]
+beuron:
+beuronc:
+beuronx:
+[43{/.notdef}repeat/plus/.notdef/hyphen/.notdef/slash 10{/.notdef}repeat
+/colon 6{/.notdef}repeat/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z
+6{/.notdef}repeat/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z 18{
+/.notdef}repeat/Omega 114{/.notdef}repeat]
+sarab10:
+[39{/.notdef}repeat/quoteright 26{/.notdef}repeat/B/.notdef/D/.notdef
+/.notdef/G/H/I/J 8{/.notdef}repeat/S/T 3{/.notdef}repeat/X/.notdef/Z 5{
+/.notdef}repeat/quoteleft/a/b/.notdef/d/.notdef/f/g/h/.notdef/.notdef/k/l/m
+/n/o/.notdef/q/r/s/t/.notdef/.notdef/w/x/y/z 133{/.notdef}repeat]
+bcghsb:
+bcghsm:
+bcghwb:
+bcghwm:
+bcgvsb:
+bcgvsm:
+bcgvwb:
+bcgvwm:
+[33{/.notdef}repeat/exclam/quotedbl/numbersign/dollar/percent/ampersand
+/quoteright/parenleft/parenright/asterisk/.notdef/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less
+/equal/greater/question/at/.notdef/.notdef/C/.notdef/E/.notdef/G 3{/.notdef}
+repeat/K/L/M/N 3{/.notdef}repeat/R/S 4{/.notdef}repeat/X/.notdef/Z 5{
+/.notdef}repeat/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/.notdef/p/q/r/s/t/u/v
+/.notdef/x/y/z/.notdef/bar 3{/.notdef}repeat/Abreve/Aogonek/Cacute/Ccaron
+/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash/Nacute/Ncaron/Eng
+/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron/Tcedilla
+/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent 3{/.notdef}repeat
+/section/abreve/aogonek 9{/.notdef}repeat/nacute 15{/.notdef}repeat
+/zdotaccent 12{/.notdef}repeat/Egrave/.notdef/Ecircumflex/.notdef/Igrave
+/.notdef/Icircumflex/Idieresis/Eth/.notdef/Ograve/.notdef/Ocircumflex
+/.notdef/Odieresis/OE/Oslash/.notdef/Uacute/.notdef/Udieresis/.notdef/Thorn
+/SS/agrave/.notdef/acircumflex/.notdef/adieresis/.notdef/ae/ccedilla/egrave
+/.notdef/ecircumflex/.notdef/igrave/.notdef/icircumflex/idieresis/eth
+/.notdef/ograve/.notdef/ocircumflex/.notdef/odieresis/oe 7{/.notdef}repeat
+/germandbls]
+smfer10:
+smfesl10:
+smfett10:
+smfpr10:
+smfpsl10:
+smfptt10:
+smfr10:
+smfsl10:
+smftt10:
+[32{/.notdef}repeat/space/.notdef/.notdef/numbersign/dollar 5{/.notdef}
+repeat/asterisk 3{/.notdef}repeat/period/.notdef/0/1/2/3/4/5/6/7/8/9 7{
+/.notdef}repeat/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z 6{
+/.notdef}repeat/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z 3{
+/.notdef}repeat/tilda/.notdef/Abreve/Aogonek/Cacute/Ccaron/Dcaron/Ecaron
+/Eogonek/Gbreve/Lacute/Lcaron/Lslash/Nacute/Ncaron/.notdef/Ohungarumlaut
+/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron/Tcedilla/Uhungarumlaut/Uring
+/Ydieresis/Zacute/Zcaron/Zdotaccent/.notdef/Idotaccent/dcroat/.notdef/abreve
+/aogonek/cacute/ccaron/dcaron/ecaron/eogonek/gbreve/lacute/lcaron/lslash
+/nacute/ncaron/.notdef/ohungarumlaut/racute/rcaron/sacute/scaron/scedilla
+/tcaron/tcedilla/uhungarumlaut/uring/ydieresis/zacute/zcaron/zdotaccent 4{
+/.notdef}repeat/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/.notdef
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/.notdef/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/.notdef
+/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/.notdef/.notdef/agrave
+/aacute/acircumflex/atilde/adieresis/aring/.notdef/ccedilla/egrave/eacute
+/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/.notdef/ntilde
+/ograve/oacute/ocircumflex/otilde/odieresis/.notdef/oslash/ugrave/uacute
+/ucircumflex/udieresis/yacute/.notdef/.notdef]
+fibb84:
+[32{/.notdef}repeat/space/exclam/dieresis/dieresisacute/dieresisgrave
+/percent/endash/quotesnglright/parenleft/parenright/asterisk/plus/comma
+/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/colongreek/angleleft/equal/angleright/questiongreek/asperperispomene/Alpha
+/Beta/Ksi/Delta/Epsilon/Phi/Gamma/Eta/Iota/cigmalunate/Kappa/Lambda/Mu/Nu
+/Omicron/Pi/Theta/Rho/Sigma/Tau/Upsilon/Digamma/Omega/Chi/Psi/Zeta
+/bracketleft/lenisperispomene/bracketright/lenisacute/lenisgrave
+/quotesnglleft/alpha/beta/ksi/delta/epsilon/phi/gamma/eta/iota/sigmafinal
+/kappa/lambda/mu/nu/omicron/pi/theta/rho/sigma/tau/upsilon/digamma/omega/chi
+/psi/zeta/guillemetsleft/iotasubscript/guillemetsright/perispomene/emdash
+/alphagrave/alphaasper/alphaenis/aspergrave/epsilonasperperispomene
+/omicronperispomene/Koppa/asperacute/alphaacute/alphaasperacute
+/alphalenisacute/alphaaspergrave/epsilonperispomene/omicronasperperispomene
+/koppa/sampi/slphaperispomene/alphaasperperispomene/alphalenisperispomene
+/alphalenisgrave/epsilonlenisperispomene/omicronlenisperispomene/Cigmalunate
+/.notdef/etagrave/etaasper/etalenis/etaaspergrave/dotI/dotJdlmnpqu/dotbt
+/dotchjz/etaacute/etaasperacute/etalenisacute/etalenisgrave/doti/dotGZ
+/dotkos/dotCEVaw/etaperispomene/etaasperperispomene/etalenisperispomene
+/quotedblleft/dote/dotH/dotBFLNPQSTW/quotedblright/omegagrave/omegaasper
+/omegalenis/omegaaspergrave/dotDK/dotfy/dotgx/dotkoppa/omegaacute
+/omegaasperacute/omegalenisacute/omegalenisgrave/dotAOQUXY/grave/acute/dotr
+/omegaperispomene/omegaasperperispomene/omegalenisperispomene/asper/dotM
+/breve/macron/lenis/iotagrave/iotaasper/iotalenis/iotaaspergrave
+/upsilongrave/upsilonasper/upsilonlenis/upsilonaspergrave/iotaacute
+/iotaasperacute/iotalenisacute/iotalenisgrave/upsilonacute/upsilonasperacute
+/upsilonlenisacute/upsilonlenisgrave/iotaperispomene/iotaasperperispomene
+/iotalenisperispomene/braceleft/upsilonperispomene/upsilonasperperispomene
+/upsilonlenisperispomene/braceright/epsilongrave/epsilonasper/epsilonlenis
+/epsilonlenisgrave/omicrongrave/omicronasper/omicronlenis/omicronaspergrave
+/epsilonacute/epsilonasperacute/epsilonlenisacute/epsilonaspergrave
+/omicronacute/omicronasperacute/omicronlenisacute/omicronlenisgrave
+/iotadieresis/iotadieresisacute/iotadieresisgrave/bracketleftbt
+/upsilondieresis/upsilondieresisacute/upsilondieresisgrave/bracketrightbt
+/iotasubalpha/iotasubeta/iotasubomega/rhoaspe/rholenis/dagger/daggerdbl
+/aspirate]
+fibo84:
+fibr84:
+[32{/.notdef}repeat/space/exclam/dieresis/dieresisacute/dieresisgrave
+/percent/endash/quotesnglright/parenleft/parenright/asterisk/plus/comma
+/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/colongreek/angleleft/equal/angleright/questiongreek/asperperispomene/Alpha
+/Beta/Ksi/Delta/Epsilon/Phi/Gamma/Eta/Iota/cigmalunate/Kappa/Lambda/Mu/Nu
+/Omicron/Pi/Theta/Rho/Sigma/Tau/Upsilon/Digamma/Omega/Chi/Psi/Zeta
+/bracketleft/lenisperispomene/bracketright/lenisacute/lenisgrave
+/quotesnglleft/alpha/beta/ksi/delta/epsilon/phi/gamma/eta/iota/sigmafinal
+/kappa/lambda/mu/nu/omicron/pi/theta/rho/sigma/tau/upsilon/digamma/omega/chi
+/psi/zeta/guillemetsleft/iotasubscript/guillemetsright/perispomene/emdash
+/alphagrave/alphaasper/alphalenis/aspergrave/epsilonasperperispomene
+/omicronperispomene/Koppa/asperacute/alphaacute/alphaasperacute
+/alphalenisacute/alphaaspergrave/epsilonperispomene/omicronasperperispomene
+/koppa/sampi/alphaperispomene/alphaasperperispomene/alphalenisperispomene
+/alphalenisgrave/epsilonlenisperispomene/omicronlenisperispomene/Cigmalunate
+/.notdef/etagrave/etaasper/etalenis/etaaspergrave/dotI/dotJdlmnpqu/dotbt
+/dotchjz/etaacute/etaasperacute/etalenisacute/etalenisgrave/doti/dotGZ
+/dotkos/dotCEVaw/etaperispomene/etaasperperispomene/etalenisperispomene
+/quotedblleft/dote/dotH/dotBFLNPRSTW/quotedblright/omegagrave/omegaasper
+/omegalenis/omegaaspergrave/dotDK/dotfy/dotgx/dotkoppa/omegaacute
+/omegaasperacute/omegalenisacute/omegalenisgrave/dotAOQUXY/grave/acute/dotr
+/omegaperispomene/omegaasperperispomene/omegalenisperispomene/asper/dotM
+/breve/macron/lenis/iotagrave/iotaasper/iotalenis/iotaaspergrave
+/upsilongrave/upsilonasper/upsilonlenis/upsilonaspergrave/iotaacute
+/iotaasperacute/iotalenisacute/iotalenisgrave/upsilonacute/upsilonasperacute
+/upsilonlenisacute/upsilonlenisgrave/iotaperispomene/iotaasperperispomene
+/iotalenisperispomene/braceleft/upsilonperispomene/upsilonasperperispomene
+/upsilonlenisperispomene/braceright/epsilongrave/epsilonasper/epsilonlenis
+/epsilonlenisgrave/omicrongrave/omicronasper/omicronlenis/omicronaspergrave
+/epsilonacute/epsilonasperacute/epsilonlenisacute/epsilonaspergrave
+/omicronacute/omicronasperacute/omicronlenisacute/omicronlenisgrave
+/iotadieresis/iotadieresisgrave/iotadieresisacute/bracketleftbt
+/upsilondieresis/upsilondieresisgrave/upsilondieresisacute/bracketrightbt
+/iotasubalpha/iotasubeta/iotasubomega/rhoasper/rholenis/dagger/daggerdbl
+/aspirate]
+bthhsb:
+bthhsm:
+bthhwb:
+bthhwm:
+bthvsb:
+bthvsm:
+bthvwb:
+bthvwm:
+[32{/.notdef}repeat/space/exclam/quotedbl/numbersign/dollar/.notdef/.notdef
+/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less
+/equal/greater/question/at 3{/.notdef}repeat/D/E/F/G/H/.notdef/.notdef/K/L/M
+/N/.notdef/P/.notdef/.notdef/S/T 5{/.notdef}repeat/Z 5{/.notdef}repeat
+/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/.notdef/r/s/t/u/v/w/.notdef/y/z
+/.notdef/bar 3{/.notdef}repeat/Abreve/Aogonek/Cacute/Ccaron/Dcaron/Ecaron
+/Eogonek/Gbreve/Lacute/Lcaron/Lslash/Nacute/Ncaron/Eng/Ohungarumlaut/Racute
+/Rcaron/Sacute/Scaron/Scedilla/Tcaron/Tcedilla/Uhungarumlaut/Uring/Ydieresis
+/Zacute/Zcaron/Zdotaccent/IJ/Idotaccent/dcroat/section/abreve/aogonek/cacute
+/ccaron/dcaron/ecaron/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng
+/ohungarumlaut/racute/rcaron/sacute/scaron/scedilla/tcaron/tcedilla
+/uhungarumlaut/uring/ydieresis/zacute/zcaron/zdotaccent/ij/exclamdown
+/questiondown/sterling 8{/.notdef}repeat/Egrave/Eacute/Ecircumflex/Edieresis
+/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex 3{
+/.notdef}repeat/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis 3{/.notdef}repeat
+/agrave/aacute/acircumflex/atilde/adieresis 3{/.notdef}repeat/egrave/eacute
+/ecircumflex/edieresis/igrave 3{/.notdef}repeat/eth/ntilde/ograve/oacute
+/ocircumflex 10{/.notdef}repeat/germandbls]
+karta15:
+[32{/.notdef}repeat/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q
+/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
+/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar
+/braceright/asciitilde 34{/.notdef}repeat/degree/cent/sterling/section
+/bullet/paragraph/germandbls/registered/copyright/trademark/acute/dieresis
+/notequal/AE/Oslash/infinity/plusminus/lessequal/greaterequal/yen/mu
+/partialdiff/summation/product/pi/integral/ordfeminine/ordmasculine/Omega/ae
+/oslash/questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta
+/guillemotleft/guillemotright/ellipsis/nbspace/Agrave/Atilde/Otilde/OE/oe
+/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide
+/lozenge/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright
+/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
+/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex
+/Idieresis/Igrave/Oacute/Ocircumflex/apple/Ograve/Uacute/Ucircumflex/Ugrave
+/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla/hungarumlaut
+/ogonek/.notdef]
+cmccsc10:
+cmccsc8:
+cmccsc9:
+[30{/.notdef}repeat/guillemotright 31{/.notdef}repeat/afii10023/.notdef
+/afii10096/afii10065/afii10066/afii10088/afii10069/afii10070/afii10086
+/afii10068/afii10087/afii10074/afii10075/afii10076/afii10077/afii10078
+/afii10079/afii10080/afii10081/afii10097/afii10082/afii10083/afii10084
+/afii10085/afii10072/afii10067/afii10094/afii10093/afii10073/afii10090
+/afii10095/afii10091/afii10089/afii10092/afii10048/afii10017/afii10018
+/afii10040/afii10021/afii10022/afii10038/afii10020/afii10039/afii10026
+/afii10027/afii10028/afii10029/afii10030/afii10031/afii10032/afii10033
+/afii10049/afii10034/afii10035/afii10036/afii10037/afii10024/afii10019
+/afii10046/afii10045/afii10025/afii10042/afii10047/afii10043/afii10041
+/afii10044 128{/.notdef}repeat]
+cmcitt10:
+cmcti10:
+cmcti12:
+cmcti7:
+cmcti8:
+cmcti9:
+cmcu10:
+[25{/.notdef}repeat/afii61352 3{/.notdef}repeat/guillemotleft/guillemotright
+31{/.notdef}repeat/afii10023/.notdef/afii10096/afii10065/afii10066/afii10088
+/afii10069/afii10070/afii10086/afii10068/afii10087/afii10074/afii10075
+/afii10076/afii10077/afii10078/afii10079/afii10080/afii10081/afii10097
+/afii10082/afii10083/afii10084/afii10085/afii10072/afii10067/afii10094
+/afii10093/afii10073/afii10090/afii10095/afii10091/afii10089/afii10092
+/afii10048/afii10017/afii10018/afii10040/afii10021/afii10022/afii10038
+/afii10020/afii10039/afii10026/afii10027/afii10028/afii10029/afii10030
+/afii10031/afii10032/afii10033/afii10049/afii10034/afii10035/afii10036
+/afii10037/afii10024/afii10019/afii10046/afii10045/afii10025/afii10042
+/afii10047/afii10043/afii10041/afii10044 128{/.notdef}repeat]
+cmcb10:
+cmcbx10:
+cmcbx12:
+cmcbx5:
+cmcbx6:
+cmcbx7:
+cmcbx8:
+cmcbx9:
+cmcsl10:
+cmcsl12:
+cmcsl8:
+cmcsl9:
+cmcss10:
+cmcss12:
+cmcss17:
+cmcss8:
+cmcss9:
+cmcssi10:
+cmcssi12:
+cmcssi17:
+cmcssi8:
+cmcssi9:
+cmcssq8:
+cmcssqi8:
+cmctt10:
+cmctt12:
+cmctt8:
+cmctt9:
+cmcyr10:
+cmcyr12:
+cmcyr17:
+cmcyr5:
+cmcyr6:
+cmcyr7:
+cmcyr8:
+cmcyr9:
+[25{/.notdef}repeat/afii61352 3{/.notdef}repeat/guillemotleft/guillemotright
+29{/.notdef}repeat/afii10071/.notdef/afii10023/.notdef/afii10096/afii10065
+/afii10066/afii10088/afii10069/afii10070/afii10086/afii10068/afii10087
+/afii10074/afii10075/afii10076/afii10077/afii10078/afii10079/afii10080
+/afii10081/afii10097/afii10082/afii10083/afii10084/afii10085/afii10072
+/afii10067/afii10094/afii10093/afii10073/afii10090/afii10095/afii10091
+/afii10089/afii10092/afii10048/afii10017/afii10018/afii10040/afii10021
+/afii10022/afii10038/afii10020/afii10039/afii10026/afii10027/afii10028
+/afii10029/afii10030/afii10031/afii10032/afii10033/afii10049/afii10034
+/afii10035/afii10036/afii10037/afii10024/afii10019/afii10046/afii10045
+/afii10025/afii10042/afii10047/afii10043/afii10041/afii10044 128{/.notdef}
+repeat]
+fgerm10:
+[19{/.notdef}repeat/guillemotleft/guillemotright/endash/emdash/.notdef
+/.notdef/dotlessi 7{/.notdef}repeat/exclam/quotedbl 13{/.notdef}repeat/zero
+/one/two/three/four 12{/.notdef}repeat/A/B/C/D 6{/.notdef}repeat/K/L/M/N/O/P
+/Q/R/S/.notdef/U 13{/.notdef}repeat/c/.notdef/e/.notdef/.notdef/h/i 9{
+/.notdef}repeat/s 140{/.notdef}repeat]
+kmbx10:
+kmr10:
+kmss10:
+[18{/.notdef}repeat/quotedblbase/guillemotleft/guillemotright/endash/emdash
+/cwm/perthousand 7{/.notdef}repeat/space/exclam/quotedbl/numbersign/dollar
+/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma
+/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q
+/R/S/T/U/.notdef/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/.notdef/w/x
+/y/z/braceleft/bar/braceright/asciitilde/sfthyphen 16{/.notdef}repeat/Rcaron
+/.notdef/Scaron/Scedilla/Tcaron/Tcedilla/Uhungarumlaut 25{/.notdef}repeat
+/rcaron/.notdef/scaron/scedilla/tcaron/tcedilla/uhungarumlaut 13{/.notdef}
+repeat/Adieresis 6{/.notdef}repeat/Edieresis 3{/.notdef}repeat/Idieresis 6{
+/.notdef}repeat/Odieresis 5{/.notdef}repeat/Udieresis 7{/.notdef}repeat
+/adieresis 6{/.notdef}repeat/edieresis 3{/.notdef}repeat/idieresis 6{
+/.notdef}repeat/odieresis/.notdef/.notdef/ugrave/uacute/ucircumflex
+/udieresis 3{/.notdef}repeat]
+fgeit10:
+[17{/.notdef}repeat/quotedblright 52{/.notdef}repeat/F 31{/.notdef}repeat/f 9
+{/.notdef}repeat/p 143{/.notdef}repeat]
+esrelation10:
+[17{/.notdef}repeat/quotedblright/quotedblbase/guillemotleft/guillemotright
+/endash/emdash/cwm/perthousand 7{/.notdef}repeat/space/.notdef/.notdef
+/numbersign/dollar/percent/ampersand/.notdef/parenleft/parenright/asterisk
+213{/.notdef}repeat]
+yswab:
+[16{/.notdef}repeat/quotedblleft/quotedblright/quotedblbase/guillemotleft
+/guillemotright/endash/emdash/cwm/perthousand/.notdef/dotlessj 6{/.notdef}
+repeat/exclam/quotedbl/numbersign/.notdef/percent/.notdef/quoteright
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/colon/.notdef/less/equal/.notdef
+/question/.notdef/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z
+/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d
+/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright
+/asciitilde/.notdef/.notdef/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek
+/.notdef/.notdef/Lcaron/Lslash/.notdef/.notdef/Eng/.notdef/.notdef/Rcaron
+/Sacute 7{/.notdef}repeat/Zacute/Zcaron 3{/.notdef}repeat/dcroat/section 4{
+/.notdef}repeat/dcaron/.notdef/.notdef/gbreve 88{/.notdef}repeat]
+yfrak:
+[16{/.notdef}repeat/quotedblleft/quotedblright/quotedblbase/guillemotleft
+/guillemotright/endash/emdash/cwm/perthousand/.notdef/dotlessj 6{/.notdef}
+repeat/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/.notdef
+/question/.notdef/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z
+/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d
+/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright
+/asciitilde/.notdef/.notdef/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek
+/.notdef/.notdef/Lcaron/Lslash/Nacute/.notdef/Eng/.notdef/.notdef/Rcaron
+/Sacute 7{/.notdef}repeat/Zacute/Zcaron 3{/.notdef}repeat/dcroat/section 4{
+/.notdef}repeat/dcaron 36{/.notdef}repeat/Eacute 54{/.notdef}repeat]
+gmtr0500:
+gmtr0600:
+gmtr0700:
+gmtr0800:
+gmtr0900:
+gmtr1000:
+gmtr1095:
+gmtr1200:
+gmtr1440:
+gmtr1728:
+gmtr2074:
+gmtr2488:
+gmtr2986:
+gmtr3583:
+[13{/.notdef}repeat/uni03AB.alt/uni03B1.alt/.notdef/uni02CF/uni02CE/uni03DF
+/uni03D9/uni0020032E/uni03D8 4{/.notdef}repeat/uni0259/uni03E1 5{/.notdef}
+repeat/exclam 5{/.notdef}repeat/tonos/parenleft/parenright 16{/.notdef}
+repeat/colon/anoteleia/uni1FFE/.notdef/uni1FBF/semicolon/.notdef/Alpha/Beta
+/uni1FDD/uni0394/Epsilon/Phi/Gamma/Eta/Iota/Theta/Kappa 12{/.notdef}repeat
+/Xi/Psi/Zeta/bracketleft/.notdef/bracketright/uni1FCE/.notdef/uni1FEF
+/.notdef/beta/sigma1/delta/epsilon/phi/gamma/eta/iota/theta/kappa/lambda 6{
+/.notdef}repeat/sigma 4{/.notdef}repeat/xi/psi/zeta 133{/.notdef}repeat]
+cminb7:
+[12{/.notdef}repeat/fi/fl 24{/.notdef}repeat/ampersand/quoteright 4{/.notdef
+}repeat/comma/hyphen/period/.notdef/zero/one/two/three/four/five/six/seven
+/eight/nine/colon/semicolon 3{/.notdef}repeat/question/.notdef/A/B/C/D/E/F/G
+/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/.notdef/quotedblleft 3{/.notdef}
+repeat/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash
+/emdash 131{/.notdef}repeat]
+cminb17:
+[12{/.notdef}repeat/fi/fl 19{/.notdef}repeat/exclam/quotedblright 3{/.notdef
+}repeat/ampersand/quoteright 4{/.notdef}repeat/comma/hyphen/period/.notdef
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon 3{
+/.notdef}repeat/question/.notdef/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V
+/W/X/Y/Z/.notdef/quotedblleft 4{/.notdef}repeat/a/b/c/d/e/f/g/h/i/j/k/l/m/n
+/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash 131{/.notdef}repeat]
+cmin10:
+cmin17:
+cmin7:
+cminb10:
+[12{/.notdef}repeat/fi/fl 19{/.notdef}repeat/exclam/quotedblright 3{/.notdef
+}repeat/ampersand/quoteright 4{/.notdef}repeat/comma/hyphen/period/.notdef
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon 3{
+/.notdef}repeat/question/.notdef/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V
+/W/X/Y/Z/.notdef/quotedblleft 3{/.notdef}repeat/quoteleft/a/b/c/d/e/f/g/h/i
+/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash 131{/.notdef}repeat]
+xadf11:
+xadf13:
+xadf16:
+xadf20:
+xadf24:
+xadf29:
+[7{/.notdef}repeat/Upsilon/Phi/Psi 10{/.notdef}repeat/caron/breve 8{/.notdef
+}repeat/OE/Oslash/.notdef/exclam/quotedblright 50{/.notdef}repeat/U/V 169{
+/.notdef}repeat]
+cmsmfIPiXi10:
+cmsmfIPiXi12:
+cmsmfIPiXi17:
+cmsmfIPiXi8:
+cmsmfIPiXi9:
+cmsmfIPiXibx10:
+cmsmfIPiXibx12:
+cmsmfIPiXibx17:
+cmsmfIPiXibx8:
+cmsmfIPiXibx9:
+cmsmfIPiXii10:
+cmsmfIPiXii12:
+cmsmfIPiXii17:
+cmsmfIPiXii8:
+cmsmfIPiXii9:
+cmsmfIPiXixi10:
+cmsmfIPiXixi12:
+cmsmfIPiXixi17:
+cmsmfIPiXixi8:
+cmsmfIPiXixi9:
+[4{/.notdef}repeat/Xi/Pi 67{/.notdef}repeat/I 182{/.notdef}repeat]
+cmsmfIPiXibxcsc10:
+cmsmfIPiXicsc10:
+cmsmfIPiXicsc8:
+cmsmfIPiXicsc9:
+cmsmfIPiXicsci10:
+cmsmfIPiXicsci8:
+cmsmfIPiXicsci9:
+cmsmfIPiXixicsc10:
+[4{/.notdef}repeat/Xi/Pi 67{/.notdef}repeat/I 31{/.notdef}repeat/i 150{
+/.notdef}repeat]
+lasy10:
+lasy5:
+lasy6:
+lasy7:
+lasy8:
+lasy9:
+lasyb10:
+[/.notdef/a1/a2/a3/a4 35{/.notdef}repeat/a40/a41/a42/a43 4{/.notdef}repeat
+/a48/a49/a50/a51 6{/.notdef}repeat/a58/a59/a60/a61 194{/.notdef}repeat]
+llasy8:
+llasyb8:
+[/.notdef/acute/circumflex/tilde/dieresis 35{/.notdef}repeat/parenleft
+/parenright/asterisk/plus 4{/.notdef}repeat/zero/one/two/three 6{/.notdef}
+repeat/colon/semicolon/less/equal 194{/.notdef}repeat]
+assy:
+assyrb10:
+[/.notdef/acute/circumflex/tilde/dieresis/hungarumlaut/ring 5{/.notdef}
+repeat/ogonek/quotesinglbase 3{/.notdef}repeat/quotedblright/quotedblbase
+/guillemotleft/guillemotright/endash 4{/.notdef}repeat/dotlessj/ff 8{
+/.notdef}repeat/dollar/.notdef/ampersand 3{/.notdef}repeat/asterisk/.notdef
+/.notdef/hyphen 14{/.notdef}repeat/less/equal/greater/.notdef/at/A/B/.notdef
+/D/E/.notdef/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z 6{/.notdef}repeat/a/b
+/.notdef/d/e/.notdef/g/h/i/j/k/.notdef/m/n/o/p/q/r/s/t/u/v/.notdef/x/y/z
+/.notdef/bar 131{/.notdef}repeat]
+serto10:
+sertob10:
+[/.notdef/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve 3{
+/.notdef}repeat/ogonek/quotesinglbase 3{/.notdef}repeat/quotedblright
+/quotedblbase/guillemotleft/guillemotright/endash/.notdef/cwm/.notdef
+/.notdef/dotlessj/ff 5{/.notdef}repeat/exclam/quotedbl/numbersign/dollar
+/percent/ampersand 6{/.notdef}repeat/hyphen/period 11{/.notdef}repeat/colon 6
+{/.notdef}repeat/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z 4{
+/.notdef}repeat/underscore 9{/.notdef}repeat/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x
+/y/z 6{/.notdef}repeat/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve
+/Lacute/Lcaron/Lslash/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute
+/Scaron/Scedilla/Tcaron/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron
+/Zdotaccent/IJ/Idotaccent/dcroat/section/abreve 10{/.notdef}repeat/nacute
+/ncaron/eng 82{/.notdef}repeat]
+auncl10:
+aunclb10:
+[/.notdef/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve
+/macron/.notdef/cedilla/ogonek/.notdef/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/grave/dotaccent/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/hyphen
+/quotesinglbase/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/paragraph/Lacute
+/Lcaron/Lslash/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron
+/slong_t/Tcaron/r.half/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdot/IJ
+/Idot/dcroat/section/slong/aogonek/cacute/ccaron/dcaron/ecaron/eogonek/e_t
+/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute/rcaron/sacute
+/scaron/s_t/tcaron/c_t/uhungarumlaut/uring/ydieresis/zacute/zcaron/zdot/ij
+/exclamdown/questiondown/sterling/Agrave/Aacute/Acircumflex/Atilde/Adieresis
+/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute
+/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/OE/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/Germandbls
+/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute
+/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve
+/oacute/ocircumflex/otilde/odieresis/oe/oslash/ugrave/uacute/ucircumflex
+/udieresis/yacute/thorn/germandbls]
+esint10:
+ssesint10:
+ssesint7:
+ssesint8:
+ssesint9:
+[/.notdef/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve
+/macron/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase 4{/.notdef}repeat/cwm/perthousand
+/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam/quotedbl/numbersign/dollar
+/percent/ampersand 217{/.notdef}repeat]
+arssb10:
+arssbs10:
+arssr10:
+arsssl10:
+artmb10:
+artmbi10:
+artmbs10:
+artmi10:
+artmr10:
+artmsl10:
+[/.notdef/armabbrev/armnum/Armdza/Armghat/Armtche/Arme/Armat/Armto/Armzhe
+/Armsha/Armcha/Armra/Armtsa/Armpyur/Armo/.notdef/armdram/armeternity/armdza
+/armghat/armtche/arme/armat/armto/armzhe/armsha/armcha/armra/armtsa/armpyur
+/armo/armew/armexclam/quotedblright/numbersign/dollar/percent/ampersand
+/armapostrophe/armparenleft/armparenright/asterisk/plus/armcomma/armendash
+/armdot/slash/zero/one/two/three/four/five/six/seven/eight/nine/armfullstop
+/semicolon/armquotleft/equal/armquotright/armquestion/at/Armayb/Armben
+/Armtso/Armda/Armyech/Armfe/Armgim/Armho/Armini/Armje/Armken/Armlyun/Armmen
+/Armnu/Armvo/Armpe/Armke/Armre/Armse/Armtyun/Armvovyun/Armvev/Armvyun/Armkhe
+/Armhi/Armza/bracketleft/quotedblleft/bracketright/braceleft/braceright
+/armsep/armayb/armben/armtso/armda/armyech/armfe/armgim/armho/armini/armje
+/armken/armlyun/armmen/armnu/armvo/armpe/armke/armre/armse/armtyun/armvovyun
+/armvev/armvyun/armkhe/armhi/armza/armyentamna/armaccent/emdash/exclam
+/question 128{/.notdef}repeat]
+wasy10:
+wasy5:
+wasy6:
+wasy7:
+wasy8:
+wasy9:
+wasyb10:
+[/APLup/lhd/unlhd/rhd/unrhd/therefore/recorder/phone/checked/pointer/bell
+/eigthnote/quarternote/halfnote/fullnote/twonotes/LHD/RHD/lightning/ascnode
+/descnode/invdiameter/logof/aries/invneg/female/male/currency/clock/varprop
+/varangle/diameter/CIRCLE/rightturn/leftturn/Circle/leftmoon/rightmoon/earth
+/mercury/leftarrowhead/rightarrowhead/uparrowhead/downarrowhead/smiley
+/blacksmiley/sun/frownie/agemO/Bowtie/Box/Diamond/XBox/lozenge/kreuz/hexagon
+/octagon/varhexagon/AC/leadsto/sqsubset/sqsupset/apprle/apprge/VHF/hexstar
+/varhexstar/davidsstar/pentagon/pentastar/APLdown/LEFTCIRCLE/RIGHTCIRCLE
+/Leftcircle/Rightcircle/UParrow/DOWNarrow 3{/.notdef}repeat/gluonelement
+/gluonbelement/gluoneelement/.notdef/.notdef/inve/conjunction/opposition
+/jupiter/saturn/uranus/neptun/pluto/taurus/gemini/cancer/virgo/libra/scorpio
+/sagittarius/capricorn/aquarius/pisces/cent/permil/thorn/Thorn/dh/openo
+/ataribox/APLuparrowbox/APLdownarrowbox/APLleftarrowbox/APLrightarrowbox
+/varint/iint/iiint/varoint/oiint/dispvarint/dispiint/dispiiint/dispvaroint
+/dispoiint/brokenvert/APLinput/APLbox/APLcomment 128{/.notdef}repeat]
+bbold10:
+bbold12:
+bbold17:
+bbold5:
+bbold6:
+bbold7:
+bbold8:
+bbold9:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/alpha/beta
+/gamma/delta/epsilon/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma
+/tau/upsilon/phi/chi/psi/exclam/quotedblright/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period
+/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/periodcentered/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R
+/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/langle/rangle/quoteleft
+/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/bar/emdash
+/quotedbleright/omega 128{/.notdef}repeat]
+ccmi10:
+ccmic9:
+cmbrmb10:
+cmbrmi10:
+cmbrmi8:
+cmbrmi9:
+cmmi10:
+cmmi12:
+cmmi5:
+cmmi6:
+cmmi7:
+cmmi8:
+cmmi9:
+cmmib10:
+cmmib5:
+cmmib6:
+cmmib7:
+cmmib8:
+cmmib9:
+plmi10:
+plmi12:
+plmi5:
+plmi6:
+plmi7:
+plmi8:
+plmi9:
+plmib10:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/alpha/beta
+/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma
+/tau/upsilon/phi/chi/psi/omega/epsilon/theta1/pi1/rho1/sigma1/phi1
+/arrowlefttophalf/arrowleftbothalf/arrowrighttophalf/arrowrightbothalf
+/arrowhookleft/arrowhookright/triangleright/triangleleft/zerooldstyle
+/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle
+/sevenoldstyle/eightoldstyle/nineoldstyle/period/comma/less/slash/greater
+/star/partialdiff/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/flat
+/natural/sharp/slurbelow/slurabove/lscript/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q
+/r/s/t/u/v/w/x/y/z/dotlessi/dotlessj/weierstrass/vector/tie 128{/.notdef}
+repeat]
+cscsc10:
+csr5:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup
+/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute
+/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash
+/polishlcross/exclam/quotedblright/numbersign/dollar/percent/ampersand
+/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less
+/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y
+/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b
+/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut
+/tilde/dieresis 13{/.notdef}repeat/perthousand 10{/.notdef}repeat/Agrave 3{
+/.notdef}repeat/althyphen/ogonek/guillemotleft/guillemotright 5{/.notdef}
+repeat/Lcaron 3{/.notdef}repeat/Scaron/.notdef/Tcaron/.notdef/.notdef/Zcaron
+6{/.notdef}repeat/lcaron/.notdef/.notdef/agrave/scaron/.notdef/tcaron
+/.notdef/.notdef/zcaron/.notdef/Racute/Aacute/.notdef/.notdef/Adieresis
+/Lacute/.notdef/.notdef/Ccaron/Eacute/.notdef/.notdef/Ecaron/Iacute/.notdef
+/Dcaron/.notdef/.notdef/Ncaron/Oacute/Ocircumflex/.notdef/Odieresis/.notdef
+/Rcaron/Uring/Uacute/.notdef/Udieresis/Yacute/.notdef/.notdef/racute/aacute
+/.notdef/.notdef/adieresis/lacute/.notdef/.notdef/ccaron/eacute/.notdef
+/.notdef/ecaron/iacute/.notdef/dcaron/.notdef/.notdef/ncaron/oacute
+/ocircumflex/.notdef/odieresis/.notdef/rcaron/uring/uacute/.notdef/udieresis
+/yacute/quotedblbase/csquotedblright]
+cccsc10:
+ccr5:
+cmcsc10:
+cmcsc8:
+cmcsc9:
+cmr5:
+punk10:
+punk12:
+punk20:
+punkbx20:
+punkbxx20:
+punksl20:
+punkslx20:
+punkz20:
+ttmc10:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup
+/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute
+/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash
+/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand
+/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less
+/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y
+/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b
+/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut
+/tilde/dieresis 128{/.notdef}repeat]
+plcsc10:
+plr5:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup
+/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute
+/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash
+/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand
+/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less
+/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y
+/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b
+/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut
+/tilde/dieresis/.notdef/Aogonek/Cacute 3{/.notdef}repeat/Eogonek 3{/.notdef}
+repeat/Lslash/Nacute 5{/.notdef}repeat/Sacute 7{/.notdef}repeat/Zacute
+/.notdef/Zdotaccent 5{/.notdef}repeat/aogonek/cacute 3{/.notdef}repeat
+/eogonek 3{/.notdef}repeat/lslash/nacute/.notdef/.notdef/guillemotleft
+/guillemotright/.notdef/sacute 7{/.notdef}repeat/zacute/.notdef/zdotaccent 23
+{/.notdef}repeat/Oacute 31{/.notdef}repeat/oacute 11{/.notdef}repeat
+/quotedblbase]
+cmntt10:
+cmsltt10:
+cmsltt9:
+cmtcsc10:
+cmtt10:
+cmtt12:
+cmtt8:
+cmtt9:
+cmttsq14:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup
+/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute
+/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash
+/visiblespace/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater
+/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j
+/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/dieresis 128{/.notdef}repeat]
+cssltt10:
+cstcsc10:
+cstt10:
+cstt12:
+cstt8:
+cstt9:
+csvtt10:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup
+/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute
+/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash
+/visiblespace/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater
+/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j
+/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/dieresis 13{/.notdef}repeat/perthousand 10{/.notdef}repeat/Agrave 3{
+/.notdef}repeat/althyphen/ogonek/guillemotleft/guillemotright 5{/.notdef}
+repeat/Lcaron 3{/.notdef}repeat/Scaron/.notdef/Tcaron/.notdef/.notdef/Zcaron
+6{/.notdef}repeat/lcaron/.notdef/.notdef/agrave/scaron/.notdef/tcaron
+/.notdef/.notdef/zcaron/.notdef/Racute/Aacute/.notdef/.notdef/Adieresis
+/Lacute/.notdef/.notdef/Ccaron/Eacute/.notdef/.notdef/Ecaron/Iacute/.notdef
+/Dcaron/.notdef/.notdef/Ncaron/Oacute/Ocircumflex/.notdef/Odieresis/.notdef
+/Rcaron/Uring/Uacute/.notdef/Udieresis/Yacute/.notdef/.notdef/racute/aacute
+/.notdef/.notdef/adieresis/lacute/.notdef/.notdef/ccaron/eacute/.notdef
+/.notdef/ecaron/iacute/.notdef/dcaron/.notdef/.notdef/ncaron/oacute
+/ocircumflex/.notdef/odieresis/.notdef/rcaron/uring/uacute/.notdef/udieresis
+/yacute/quotedblbase/csquotedblright]
+plsltt10:
+pltcsc10:
+pltt10:
+pltt12:
+pltt8:
+pltt9:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup
+/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute
+/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash
+/visiblespace/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater
+/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j
+/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/dieresis/.notdef/Aogonek/Cacute 3{/.notdef}repeat/Eogonek 3{/.notdef}repeat
+/Lslash/Nacute 5{/.notdef}repeat/Sacute 7{/.notdef}repeat/Zacute/.notdef
+/Zdotaccent 5{/.notdef}repeat/aogonek/cacute 3{/.notdef}repeat/eogonek 3{
+/.notdef}repeat/lslash/nacute/.notdef/.notdef/guillemotleft/guillemotright
+/.notdef/sacute 7{/.notdef}repeat/zacute/.notdef/zdotaccent 23{/.notdef}
+repeat/Oacute 31{/.notdef}repeat/oacute 11{/.notdef}repeat/quotedblbase]
+cmitt10:
+cmitt12:
+cmitt9:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup
+/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute
+/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash
+/visiblespace/exclam/quotedbl/numbersign/sterling/percent/ampersand
+/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less
+/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y
+/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c
+/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright
+/asciitilde/dieresis 128{/.notdef}repeat]
+csitt10:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup
+/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute
+/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash
+/visiblespace/exclam/quotedbl/numbersign/sterling/percent/ampersand
+/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less
+/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y
+/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c
+/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright
+/asciitilde/dieresis 13{/.notdef}repeat/perthousand 10{/.notdef}repeat
+/Agrave 3{/.notdef}repeat/althyphen/ogonek/guillemotleft/guillemotright 5{
+/.notdef}repeat/Lcaron 3{/.notdef}repeat/Scaron/.notdef/Tcaron/.notdef
+/.notdef/Zcaron 6{/.notdef}repeat/lcaron/.notdef/.notdef/agrave/scaron
+/.notdef/tcaron/.notdef/.notdef/zcaron/.notdef/Racute/Aacute/.notdef/.notdef
+/Adieresis/Lacute/.notdef/.notdef/Ccaron/Eacute/.notdef/.notdef/Ecaron
+/Iacute/.notdef/Dcaron/.notdef/.notdef/Ncaron/Oacute/Ocircumflex/.notdef
+/Odieresis/.notdef/Rcaron/Uring/Uacute/.notdef/Udieresis/Yacute/.notdef
+/.notdef/racute/aacute/.notdef/.notdef/adieresis/lacute/.notdef/.notdef
+/ccaron/eacute/.notdef/.notdef/ecaron/iacute/.notdef/dcaron/.notdef/.notdef
+/ncaron/oacute/ocircumflex/.notdef/odieresis/.notdef/rcaron/uring/uacute
+/.notdef/udieresis/yacute/quotedblbase/csquotedblright]
+plitt10:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup
+/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute
+/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash
+/visiblespace/exclam/quotedbl/numbersign/sterling/percent/ampersand
+/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less
+/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y
+/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c
+/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright
+/asciitilde/dieresis/.notdef/Aogonek/Cacute 3{/.notdef}repeat/Eogonek 3{
+/.notdef}repeat/Lslash/Nacute 5{/.notdef}repeat/Sacute 7{/.notdef}repeat
+/Zacute/.notdef/Zdotaccent 5{/.notdef}repeat/aogonek/cacute 3{/.notdef}
+repeat/eogonek 3{/.notdef}repeat/lslash/nacute/.notdef/.notdef/guillemotleft
+/guillemotright/.notdef/sacute 7{/.notdef}repeat/zacute/.notdef/zdotaccent 23
+{/.notdef}repeat/Oacute 31{/.notdef}repeat/oacute 11{/.notdef}repeat
+/quotedblbase]
+csb10:
+csbx10:
+csbx12:
+csbx5:
+csbx6:
+csbx7:
+csbx8:
+csbx9:
+csbxsl10:
+csdunh10:
+csff10:
+csfib8:
+csr10:
+csr12:
+csr17:
+csr6:
+csr7:
+csr8:
+csr9:
+cssl10:
+cssl12:
+cssl8:
+cssl9:
+csss10:
+csss12:
+csss17:
+csss8:
+csss9:
+csssbx10:
+csssdc10:
+csssi10:
+csssi12:
+csssi17:
+csssi8:
+csssi9:
+csssq8:
+csssqi8:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi
+/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla
+/germandbls/ae/oe/oslash/AE/OE/Oslash/polishlcross/exclam/quotedblright
+/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright
+/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six
+/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at
+/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i
+/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis
+13{/.notdef}repeat/perthousand 10{/.notdef}repeat/Agrave 3{/.notdef}repeat
+/althyphen/ogonek/guillemotleft/guillemotright 5{/.notdef}repeat/Lcaron 3{
+/.notdef}repeat/Scaron/.notdef/Tcaron/.notdef/.notdef/Zcaron 6{/.notdef}
+repeat/lcaron/.notdef/.notdef/agrave/scaron/.notdef/tcaron/.notdef/.notdef
+/zcaron/.notdef/Racute/Aacute/.notdef/.notdef/Adieresis/Lacute/.notdef
+/.notdef/Ccaron/Eacute/.notdef/.notdef/Ecaron/Iacute/.notdef/Dcaron/.notdef
+/.notdef/Ncaron/Oacute/Ocircumflex/.notdef/Odieresis/.notdef/Rcaron/Uring
+/Uacute/.notdef/Udieresis/Yacute/.notdef/.notdef/racute/aacute/.notdef
+/.notdef/adieresis/lacute/.notdef/.notdef/ccaron/eacute/.notdef/.notdef
+/ecaron/iacute/.notdef/dcaron/.notdef/.notdef/ncaron/oacute/ocircumflex
+/.notdef/odieresis/.notdef/rcaron/uring/uacute/.notdef/udieresis/yacute
+/quotedblbase/csquotedblright]
+csbxti10:
+csfi10:
+csti10:
+csti12:
+csti7:
+csti8:
+csti9:
+csu10:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi
+/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla
+/germandbls/ae/oe/oslash/AE/OE/Oslash/polishlcross/exclam/quotedblright
+/numbersign/sterling/percent/ampersand/quoteright/parenleft/parenright
+/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six
+/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at
+/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i
+/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis
+13{/.notdef}repeat/perthousand 10{/.notdef}repeat/Agrave 3{/.notdef}repeat
+/althyphen/ogonek/guillemotleft/guillemotright 5{/.notdef}repeat/Lcaron 3{
+/.notdef}repeat/Scaron/.notdef/Tcaron/.notdef/.notdef/Zcaron 6{/.notdef}
+repeat/lcaron/.notdef/.notdef/agrave/scaron/.notdef/tcaron/.notdef/.notdef
+/zcaron/.notdef/Racute/Aacute/.notdef/.notdef/Adieresis/Lacute/.notdef
+/.notdef/Ccaron/Eacute/.notdef/.notdef/Ecaron/Iacute/.notdef/Dcaron/.notdef
+/.notdef/Ncaron/Oacute/Ocircumflex/.notdef/Odieresis/.notdef/Rcaron/Uring
+/Uacute/.notdef/Udieresis/Yacute/.notdef/.notdef/racute/aacute/.notdef
+/.notdef/adieresis/lacute/.notdef/.notdef/ccaron/eacute/.notdef/.notdef
+/ecaron/iacute/.notdef/dcaron/.notdef/.notdef/ncaron/oacute/ocircumflex
+/.notdef/odieresis/.notdef/rcaron/uring/uacute/.notdef/udieresis/yacute
+/quotedblbase/csquotedblright]
+ccn10:
+ccr10:
+ccr7:
+ccr8:
+ccr9:
+ccsl10:
+ccsl9:
+ccslc9:
+cmb10:
+cmbr10:
+cmbr17:
+cmbr8:
+cmbr9:
+cmbrbx10:
+cmbrsl10:
+cmbrsl17:
+cmbrsl8:
+cmbrsl9:
+cmbx10:
+cmbx12:
+cmbx5:
+cmbx6:
+cmbx7:
+cmbx8:
+cmbx9:
+cmbxcd10:
+cmbxsl10:
+cmdunh10:
+cmhFv:
+cmr10:
+cmr10mod:
+cmr12:
+cmr17:
+cmr6:
+cmr7:
+cmr8:
+cmr9:
+cmsl10:
+cmsl12:
+cmsl6:
+cmsl8:
+cmsl9:
+cmsltl10:
+cmss10:
+cmss12:
+cmss17:
+cmss8:
+cmss9:
+cmssbx10:
+cmssbxcsc10:
+cmssbxo10:
+cmsscsc10:
+cmsscsc8:
+cmsscsc9:
+cmsscsci10:
+cmsscsci8:
+cmsscsci9:
+cmssdc10:
+cmssi10:
+cmssi12:
+cmssi17:
+cmssi8:
+cmssi9:
+cmsslu30:
+cmssq8:
+cmssqi8:
+cmssu10:
+cmssxicsc10:
+cmtitl:
+cmtl10:
+cmvtt10:
+f36:
+geom10:
+lcmss8:
+lcmssb8:
+lcmssi8:
+pcmi10:
+xbmc10:
+xmas0:
+xmas1:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi
+/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla
+/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright
+/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright
+/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six
+/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at
+/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i
+/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis
+128{/.notdef}repeat]
+pccsc10:
+pcr10:
+pcr5:
+pcr6:
+pcr7:
+pcr8:
+pcr9:
+pcsl10:
+pcslc9:
+pcti10:
+plb10:
+plbx10:
+plbx12:
+plbx5:
+plbx6:
+plbx7:
+plbx8:
+plbx9:
+plbxsl10:
+pldunh10:
+plff10:
+plfib8:
+plr10:
+plr12:
+plr17:
+plr6:
+plr7:
+plr8:
+plr9:
+plsl10:
+plsl12:
+plsl8:
+plsl9:
+plss10:
+plss12:
+plss17:
+plss8:
+plss9:
+plssbi10:
+plssbx10:
+plssdc10:
+plssi10:
+plssi12:
+plssi17:
+plssi8:
+plssi9:
+plssq8:
+plssqi8:
+plvtt10:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi
+/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla
+/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright
+/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright
+/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six
+/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at
+/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i
+/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis
+/.notdef/Aogonek/Cacute 3{/.notdef}repeat/Eogonek 3{/.notdef}repeat/Lslash
+/Nacute 5{/.notdef}repeat/Sacute 7{/.notdef}repeat/Zacute/.notdef/Zdotaccent
+5{/.notdef}repeat/aogonek/cacute 3{/.notdef}repeat/eogonek 3{/.notdef}repeat
+/lslash/nacute/.notdef/.notdef/guillemotleft/guillemotright/.notdef/sacute 7
+{/.notdef}repeat/zacute/.notdef/zdotaccent 23{/.notdef}repeat/Oacute 31{
+/.notdef}repeat/oacute 11{/.notdef}repeat/quotedblbase]
+bible12:
+ccti10:
+cmbxti10:
+cmbxti12:
+cmbxti7:
+cmff10:
+cmfi10:
+cmfib8:
+cmti10:
+cmti12:
+cmti7:
+cmti8:
+cmti9:
+cmu10:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi
+/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla
+/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright
+/numbersign/sterling/percent/ampersand/quoteright/parenleft/parenright
+/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six
+/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at
+/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i
+/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis
+128{/.notdef}repeat]
+plbxti10:
+plfi10:
+plti10:
+plti12:
+plti7:
+plti8:
+plti9:
+plu10:
+[/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi
+/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla
+/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright
+/numbersign/sterling/percent/ampersand/quoteright/parenleft/parenright
+/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six
+/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at
+/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i
+/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis
+/.notdef/Aogonek/Cacute 3{/.notdef}repeat/Eogonek 3{/.notdef}repeat/Lslash
+/Nacute 5{/.notdef}repeat/Sacute 7{/.notdef}repeat/Zacute/.notdef/Zdotaccent
+5{/.notdef}repeat/aogonek/cacute 3{/.notdef}repeat/eogonek 3{/.notdef}repeat
+/lslash/nacute/.notdef/.notdef/guillemotleft/guillemotright/.notdef/sacute 7
+{/.notdef}repeat/zacute/.notdef/zdotaccent 23{/.notdef}repeat/Oacute 31{
+/.notdef}repeat/oacute 11{/.notdef}repeat/quotedblbase]
+tbbx10:
+tbmo10:
+tbmo17:
+tbmo8:
+tbmo9:
+tbmr10:
+tbmr17:
+tbmr8:
+tbmr9:
+tbso10:
+tbso17:
+tbso8:
+tbso9:
+tbsr10:
+tbsr17:
+tbsr8:
+tbsr9:
+tbtl10:
+tbto10:
+tcbi0500:
+tcbi0600:
+tcbi0700:
+tcbi0800:
+tcbi0900:
+tcbi1000:
+tcbi1095:
+tcbi1200:
+tcbi1440:
+tcbi1728:
+tcbi2074:
+tcbi2488:
+tcbi2986:
+tcbi3583:
+tcbl0500:
+tcbl0600:
+tcbl0700:
+tcbl0800:
+tcbl0900:
+tcbl1000:
+tcbl1095:
+tcbl1200:
+tcbl1440:
+tcbl1728:
+tcbl2074:
+tcbl2488:
+tcbl2986:
+tcbl3583:
+tcbx0500:
+tcbx0600:
+tcbx0700:
+tcbx0800:
+tcbx0900:
+tcbx1000:
+tcbx1095:
+tcbx1200:
+tcbx1440:
+tcbx1728:
+tcbx2074:
+tcbx2488:
+tcbx2986:
+tcbx3583:
+tcci0500:
+tcci0600:
+tcci0700:
+tcci0800:
+tcci0900:
+tcci1000:
+tcci1095:
+tcci1200:
+tcci1440:
+tcci1728:
+tcci2074:
+tcci2488:
+tcci2986:
+tcci3583:
+tcit0800:
+tcit0900:
+tcit1000:
+tcit1095:
+tcit1200:
+tcit1440:
+tcit1728:
+tcit2074:
+tcit2488:
+tcit2986:
+tcit3583:
+tcrb0500:
+tcrb0600:
+tcrb0700:
+tcrb0800:
+tcrb0900:
+tcrb1000:
+tcrb1095:
+tcrb1200:
+tcrb1440:
+tcrb1728:
+tcrb2074:
+tcrb2488:
+tcrb2986:
+tcrb3583:
+tcrm0500:
+tcrm0600:
+tcrm0700:
+tcrm0800:
+tcrm0900:
+tcrm1000:
+tcrm1095:
+tcrm1200:
+tcrm1440:
+tcrm1728:
+tcrm2074:
+tcrm2488:
+tcrm2986:
+tcrm3583:
+tcsi0500:
+tcsi0600:
+tcsi0700:
+tcsi0800:
+tcsi0900:
+tcsi1000:
+tcsi1095:
+tcsi1200:
+tcsi1440:
+tcsi1728:
+tcsi2074:
+tcsi2488:
+tcsi2986:
+tcsi3583:
+tcsl0500:
+tcsl0600:
+tcsl0700:
+tcsl0800:
+tcsl0900:
+tcsl1000:
+tcsl1095:
+tcsl1200:
+tcsl1440:
+tcsl1728:
+tcsl2074:
+tcsl2488:
+tcsl2986:
+tcsl3583:
+tcso0500:
+tcso0600:
+tcso0700:
+tcso0800:
+tcso0900:
+tcso1000:
+tcso1095:
+tcso1200:
+tcso1440:
+tcso1728:
+tcso2074:
+tcso2488:
+tcso2986:
+tcso3583:
+tcss0500:
+tcss0600:
+tcss0700:
+tcss0800:
+tcss0900:
+tcss1000:
+tcss1095:
+tcss1200:
+tcss1440:
+tcss1728:
+tcss2074:
+tcss2488:
+tcss2986:
+tcss3583:
+tcssdc10:
+tcst0800:
+tcst0900:
+tcst1000:
+tcst1095:
+tcst1200:
+tcst1440:
+tcst1728:
+tcst2074:
+tcst2488:
+tcst2986:
+tcst3583:
+tcsx0500:
+tcsx0600:
+tcsx0700:
+tcsx0800:
+tcsx0900:
+tcsx1000:
+tcsx1095:
+tcsx1200:
+tcsx1440:
+tcsx1728:
+tcsx2074:
+tcsx2488:
+tcsx2986:
+tcsx3583:
+tcti0500:
+tcti0600:
+tcti0700:
+tcti0800:
+tcti0900:
+tcti1000:
+tcti1095:
+tcti1200:
+tcti1440:
+tcti1728:
+tcti2074:
+tcti2488:
+tcti2986:
+tcti3583:
+tctt0800:
+tctt0900:
+tctt1000:
+tctt1095:
+tctt1200:
+tctt1440:
+tctt1728:
+tctt2074:
+tctt2488:
+tctt2986:
+tctt3583:
+tcui0500:
+tcui0600:
+tcui0700:
+tcui0800:
+tcui0900:
+tcui1000:
+tcui1095:
+tcui1200:
+tcui1440:
+tcui1728:
+tcui2074:
+tcui2488:
+tcui2986:
+tcui3583:
+tcvi0800:
+tcvi0900:
+tcvi1000:
+tcvi1095:
+tcvi1200:
+tcvi1440:
+tcvi1728:
+tcvi2074:
+tcvi2488:
+tcvi2986:
+tcvi3583:
+tcvt0800:
+tcvt0900:
+tcvt1000:
+tcvt1095:
+tcvt1200:
+tcvt1440:
+tcvt1728:
+tcvt2074:
+tcvt2488:
+tcvt2986:
+tcvt3583:
+torm10:
+torm5:
+torm6:
+torm7:
+torm8:
+torm9:
+tosl10:
+tosl5:
+tosl6:
+tosl7:
+tosl8:
+tosl9:
+toti10:
+[/Grave/Acute/Circumflex/Tilde/Dieresis/Hungarumlaut/Ring/Caron/Breve/Macron
+/Dotaccent/cedilla/ogonek/quotesinglbase.ts1 4{/.notdef}repeat
+/quotedblbase.ts1/.notdef/.notdef/twelveudash/threequartersemdash
+/afii61664.cap/arrowleft/arrowright/tieaccentlowercase/tieaccentcapital
+/tieaccentlowercase.new/tieaccentcapital.new/.notdef/afii61664.asc/uni2422 3
+{/.notdef}repeat/dollar/.notdef/.notdef/quotesingle/.notdef/.notdef
+/asteriskmath/.notdef/comma/hyphendbl/period/fraction/zerooldstyle
+/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle
+/sevenoldstyle/eightoldstyle/nineoldstyle/.notdef/.notdef/angleleft/minus
+/angleright 14{/.notdef}repeat/uni2127/.notdef/circle 7{/.notdef}repeat
+/Omega 3{/.notdef}repeat/uni301A/.notdef/uni301B/arrowup/arrowdown/grave.ts1
+/.notdef/born/divorced/died 7{/.notdef}repeat/leaf/married/musicalnote 15{
+/.notdef}repeat/tildelow/hyphendbl.alt/breve.ts1/caron.ts1/hungarumlaut.ts1
+/dblgrave.ts1/dagger/daggerdbl/uni2016/perthousand/bullet/uni2103
+/dollaroldstyle/centoldstyle/florin/colonmonetary/uni20A9/uni20A6/guarani
+/peso/lira/recipe/uni203D/gnaborretni/dong/trademark/uni2031/paragraph.alt
+/uni0E3F/afii61352/discount/estimated/openbullet/uni2120/uni2045/uni2046
+/cent/sterling/currency/yen/brokenbar/section/dieresis.ts1/copyright
+/ordfeminine/copyleft/logicalnot/uni2117/registered/macron.ts1/degree
+/plusminus/twosuperior/threesuperior/acute.ts1/mu/paragraph/periodcentered
+/uni203B/onesuperior/ordmasculine/radical/onequarter/onehalf/threequarters
+/Euro 22{/.notdef}repeat/multiply 31{/.notdef}repeat/divide 9{/.notdef}
+repeat]
+yrcmex10:
+[/NUL/Eth/eth/Lslash/lslash/Scaron/scaron/Yacute/yacute/HT/LF/Thorn/thorn/CR
+/Zcaron/zcaron/DLE/DC1/DC2/DC3/DC4/onehalf/onequarter/onesuperior
+/threequarters/threesuperior/twosuperior/brokenbar/minus/multiply/RS/US
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater
+/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l
+/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/DEL
+/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute/agrave
+/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave/ecircumflex
+/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute/ograve
+/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis/dagger
+/degree/cent/sterling/section/bullet/paragraph/germandbls/registered
+/copyright/trademark/acute/dieresis/notequal/AE/Oslash/infinity/plusminus
+/lessequal/greaterequal/yen/mu/partialdiff/summation/product/pi/integral
+/ordfeminine/ordmasculine/Omega/ae/oslash/questiondown/exclamdown/logicalnot
+/radical/florin/approxequal/Delta/guillemotleft/guillemotright/ellipsis
+/nbspace/Agrave/Atilde/Otilde/OE/oe/endash/emdash/quotedblleft/quotedblright
+/quoteleft/quoteright/divide/lozenge/ydieresis/Ydieresis/fraction/currency
+/guilsinglleft/guilsinglright/fi/fl/daggerdbl/periodcentered/quotesinglbase
+/quotedblbase/perthousand/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave
+/Iacute/Icircumflex/Idieresis/Igrave/Oacute/Ocircumflex/apple/Ograve/Uacute
+/Ucircumflex/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring
+/cedilla/hungarumlaut/ogonek/caron]
+wncyb10:
+wncyb5:
+wncyb6:
+wncyb7:
+wncyb8:
+wncyb9:
+wncyi10:
+wncyi5:
+wncyi6:
+wncyi7:
+wncyi8:
+wncyi9:
+wncyr10:
+wncyr5:
+wncyr6:
+wncyr7:
+wncyr8:
+wncyr9:
+wncysc10:
+wncyss10:
+wncyss8:
+wncyss9:
+[/Nj/Lj/Dzh/Ze/Iroman/Ye/Dj/Tsoft/nj/lj/dzh/ze/iroman/ye/dj/tsoft/Yu/Zhe
+/Ishort/Yo/Izhitsa/Fita/Zelo/Ya/yu/zhe/ishort/yo/izhitsa/fita/zelo/ya
+/dieresis/exclam/quotedblright/Yatz/breve1/percent/acute/quoteright
+/parenleft/parenright/asterisk/yatz/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/colon/semicolon/guillemotleft/dotlessi
+/guillemotright/question/breve/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W
+/X/Y/Z/bracketleft/quotedblleft/bracketright/Soft/Hard/quoteleft/a/b/c/d/e/f
+/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/number/soft/hard 128{
+/.notdef}repeat]
+line10:
+linew10:
+[/a0/a1/a2/a3/a4/a5/.notdef/.notdef/a8/a9/a10/a11/a12/a13/a14/a15/a16/a17
+/a18/a19/a20/a21/.notdef/a23/a24/a25/a26/a27/a28/a29/a30/.notdef/a32/a33/a34
+/a35/.notdef/a37/.notdef/.notdef/a40/a41/a42/a43/a44/a45/.notdef/a47/.notdef
+/a49/.notdef/a51/.notdef/.notdef/a54/a55/.notdef/a57/a58/.notdef/.notdef/a61
+/a62/a63/a64/a65/a66/a67/a68/a69/.notdef/.notdef/a72/a73/a74/a75/a76/a77/a78
+/a79/a80/a81/a82/a83/a84/a85/.notdef/a87/a88/a89/a90/.notdef/a92/a93/a94
+/.notdef/a96/a97/a98/a99/.notdef/a101/.notdef/.notdef/a104/a105/a106/a107
+/a108/.notdef/.notdef/a111/.notdef/a113/.notdef/a115 3{/.notdef}repeat/a119
+/.notdef/a121/a122/.notdef/.notdef/a125/a126 129{/.notdef}repeat]
+lcircle10:
+lcirclew10:
+[/a0/a1/a2/a3/a4/a5/a6/a7/a8/a9/a10/a11/a12/a13/a14/a15/a16/a17/a18/a19/a20
+/a21/a22/a23/a24/a25/a26/a27/a28/a29/a30/a31/a32/a33/a34/a35/a36/a37/a38/a39
+56{/.notdef}repeat/a96/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107
+/a108/a109/a110/.notdef/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121
+/a122/a123/a124/a125/a126 129{/.notdef}repeat]
+xydash10:
+[/a0/a1/a2/a3/a4/a5/a6/a7/a8/a9/a10/a11/a12/a13/a14/a15/a16/a17/a18/a19/a20
+/a21/a22/a23/a24/a25/a26/a27/a28/a29/a30/a31/a32/a33/a34/a35/a36/a37/a38/a39
+/a40/a41/a42/a43/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58
+/a59/a60/a61/a62/a63/a64/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74/a75/a76/a77
+/a78/a79/a80/a81/a82/a83/a84/a85/a86/a87/a88/a89/a90/a91/a92/a93/a94/a95/a96
+/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111
+/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122/a123/a124/a125/a126
+/a127 128{/.notdef}repeat]
+MnSymbolA-Bold10:
+MnSymbolA-Bold12:
+MnSymbolA-Bold5:
+MnSymbolA-Bold6:
+MnSymbolA-Bold7:
+MnSymbolA-Bold8:
+MnSymbolA-Bold9:
+MnSymbolA10:
+MnSymbolA12:
+MnSymbolA5:
+MnSymbolA6:
+MnSymbolA7:
+MnSymbolA8:
+MnSymbolA9:
+[/arrowright/arrowup/arrowleft/arrowdown/arrowupright/arrowupleft
+/arrowdownleft/arrowdownright/arrowdblright/arrowdblup/arrowdblleft
+/arrowdbldown/uni21D7/uni21D6/uni21D9/uni21D8/arrowboth/arrowupdn/uni2921
+/uni2922/arrowdblboth/uni21D5/Neswarrow/Nwsearrow/uni21A0/uni219F/uni219E
+/uni21A1/twoheadnearrow/twoheadnwarrow/twoheadswarrow/twoheadsearrow/uni21A3
+/uparrowtail/uni21A2/downarrowtail/nearrowtail/nwarrowtail/swarrowtail
+/searrowtail/uni21A6/uni21A5/uni21A4/uni21A7/nemapsto/nwmapsto/swmapsto
+/semapsto/uni21AA/lhookuparrow/lhookleftarrow/lhookdownarrow/lhooknearrow
+/uni2923/lhookswarrow/uni2925/rhookrightarrow/rhookuparrow/uni21A9
+/rhookdownarrow/uni2924/rhooknwarrow/uni2926/rhooksearrow/harpoonrightbarbup
+/uni21BF/uni21BD/uni21C2/neharpoonup/nwharpoonup/swharpoonup/seharpoonup
+/uni21C1/uni21BE/harpoonleftbarbup/uni21C3/neharpoondown/nwharpoondown
+/swharpoondown/seharpoondown/uni294B/updownharpoonleftright/neswharpoonnwse
+/senwharpoonnesw/uni294A/updownharpoonrightleft/neswharpoonsenw
+/nwseharpoonswne/uni21CC/uni296E/neswharpoons/senwharpoons/uni21CB/uni296F
+/swneharpoons/nwseharpoons/arrowdashright/arrowdashup/arrowdashleft
+/arrowdashdown/dashednearrow/dashednwarrow/dashedswarrow/dashedsearrow
+/uni22B8/uni2AEF/uni27DC/uni2AF0/nespoon/nwspoon/swspoon/sespoon
+/rightfilledspoon/upfilledspoon/leftfilledspoon/downfilledspoon
+/nefilledspoon/nwfilledspoon/swfilledspoon/sefilledspoon/rightfootline
+/upfootline/leftfootline/downfootline/nefootline/nwfootline/swfootline
+/sefootline/rightfree/upfree/leftfree/uni2ADD/nefree/nwfree/swfree/sefree
+/rightpitchfork/uni22D4/leftpitchfork/uni2ADB/nepitchfork/nwpitchfork
+/swpitchfork/sepitchfork/uni21C9/uni21C8/uni21C7/uni21CA/nenearrows
+/nwnwarrows/swswarrows/sesearrows/arrowrightoverleft/updownarrows/neswarrows
+/nwsearrows/uni21C6/downuparrows/swnearrows/senwarrows/uni219D/uplsquigarrow
+/leftlsquigarrow/downlsquigarrow/nelsquigarrow/nwlsquigarrow/swlsquigarrow
+/selsquigarrow/rightrsquigarrow/uprsquigarrow/uni219C/downrsquigarrow
+/nersquigarrow/nwrsquigarrow/swrsquigarrow/sersquigarrow/uni21AD
+/squigarrowupdown/squigarrowrightleft/squigarrowdownup/squigarrownesw
+/squigarrownwse/squigarrowswne/squigarrowsenw/uni21B7/lcurvearrowup
+/lcurvearrowleft/uni2938/lcurvearrowne/lcurvearrownw/lcurvearrowsw
+/lcurvearrowse/rcurvearrowright/rcurvearrowup/uni21B6/uni2939/rcurvearrowne
+/rcurvearrownw/rcurvearrowsw/rcurvearrowse/curvearrowleftright
+/curvearrowupdown/curvearrowrightleft/curvearrowdownup/curvearrownesw
+/curvearrownwse/curvearrowswne/curvearrowsenw/leftrightline/divides/neswline
+/nwseline/Leftrightline/parallel/Neswline/Nwseline/uni22A2/perpendicular
+/uni22A3/uni22A4/nevdash/nwvdash/swvdash/sevdash/uni22A7/upmodels/leftmodels
+/downmodels/nemodels/nwmodels/swmodels/semodels/uni22A9/uni234A/leftVdash
+/uni2351/neVdash/nwVdash/swVdash/seVdash/uni22AB/upModels/leftModels
+/downModels/neModels/nwModels/swModels/seModels/uni293F/uni21BA/uni27F2
+/rcirclearrowdown/uni27F3/uni21BB/uni293E/lcirclearrowdown]
+FdSymbolC-Bold:
+FdSymbolC-Book:
+FdSymbolC-Medium:
+FdSymbolC-Regular:
+MdSymbolC-Bold:
+MdSymbolC-Light:
+MdSymbolC-Regular:
+MdSymbolC-Semibold:
+[/arrowright/arrowup/arrowleft/arrowdown/uni2197/uni2196/uni2199/uni2198
+/arrowdblright/arrowdblup/arrowdblleft/arrowdbldown/uni21D7/uni21D6/uni21D9
+/uni21D8/arrowboth/arrowupdn/uni2921/uni2922/arrowdblboth/uni21D5/sym030
+/sym031/uni21A0/uni219F/uni219E/uni21A1/sym033/sym032/sym035/sym034/uni21A3
+/sym036/uni21A2/sym037/sym039/sym038/sym03B/sym03A/uni21A6/uni21A5/uni21A4
+/uni21A7/uni2907/sym03C/uni2906/sym03D/uni21AA/sym03E/uni21A9.alt/sym03F.alt
+/uni2924.alt/uni2923/uni2926.alt/uni2925/uni21AA.alt/sym03E.alt/uni21A9
+/sym03F/uni2924/uni2923.alt/uni2926/uni2925.alt/uni21C0/uni21BF/uni21BD
+/uni21C2/sym041/sym040/sym043/sym042/uni21C1/uni21BE/uni21BC/uni21C3/sym045
+/sym044/sym047/sym046/uni294B/uni294D/sym049/sym048/uni294A/uni294C/sym04B
+/sym04A/uni21CC/uni296E/sym04D/sym04C/uni21CB/uni296F/sym04F/sym04E/uni21E2
+/uni21E1/uni21E0/uni21E3/sym051/sym050/sym053/sym052/uni22B8/uni2AEF/uni27DC
+/uni2AF0/sym054/sym056/sym055/sym057/uni29DF/sym058/uni22B7/uni22B6/sym05A
+/uni22D4/sym05B/sym059/uni21C9/uni21C8/uni21C7/uni21CA/sym05D/sym05C/sym05F
+/sym05E/uni21C4/uni21C5/sym061/sym060/uni21C6/uni21F5/sym063/sym062/uni219D
+/sym064.alt/uni219C.alt/sym065/uni219D.alt/sym064/uni219C/sym065.alt/uni21AD
+/sym066.alt/uni21AD.alt/sym066/sym069/sym068/sym067/uni2938/sym06C/sym06B
+/uni2936/uni2935/uni293B/sym06A/uni293A/uni2939/uni2934/sym06D/sym06E
+/uni2937/sym06F/sym070/sym071/sym072/sym074/sym073/sym076/sym075/sym077
+/sym078/sym079/uni21BA/uni27F2/sym07C/uni27F3/uni21BB/sym07A/sym07B/uni21DB
+/uni290A/uni21DA/uni290B/uni27F6/uni27F5/uni27F9/uni27F8/uni27F7/uni27FA
+/uni27FC/uni27FB/uni27FE/uni27FD/uni27FF/uni2B33/uni27DD/uni27DE/uni21B0
+/uni21B1/uni21B2/uni21B3/uni21AC/uni21AB 18{/.notdef}repeat/uni22A2/uni22A5
+/uni22A3/uni22A4/uni22A6/uni2AE0/uni2ADE/uni2ADF/uni22A8/uni2AEB/uni2AE4
+/uni2AEA/uni22A7/sym07E/sym07D/sym07F/uni22A9/uni234A/uni2AE3/uni2351
+/uni22A9.alt/uni2AE8/uni2AE3.alt/uni2AE7/uni22AB/sym080/uni2AE5/sym081
+/uni22AA/sym082/uni2AE2/sym083]
+MnSymbolE-Bold10:
+MnSymbolE-Bold12:
+MnSymbolE-Bold5:
+MnSymbolE-Bold6:
+MnSymbolE-Bold7:
+MnSymbolE-Bold8:
+MnSymbolE-Bold9:
+MnSymbolE10:
+MnSymbolE12:
+MnSymbolE5:
+MnSymbolE6:
+MnSymbolE7:
+MnSymbolE8:
+MnSymbolE9:
+[/bracketleft/bracketleft.alt1/bracketleft.alt2/bracketleft.alt3
+/bracketleft.alt4/bracketright/bracketright.alt/bracketright.alt2
+/bracketright.alt3/bracketright.alt4/uni230A/uni230A.alt1/uni230A.alt2
+/uni230A.alt3/uni230A.alt4/uni230B/uni230B.alt1/uni230B.alt2/uni230B.alt3
+/uni230B.alt4/uni2308/uni2308.alt1/uni2308.alt2/uni2308.alt3/uni2308.alt4
+/uni2309/uni2309.alt1/uni2309.alt2/uni2309.alt3/uni2309.alt4/uni231C.alt1
+/uni231C.alt2/uni231C.alt3/uni231C.alt4/uni231C.alt5/uni231D.alt1
+/uni231D.alt2/uni231D.alt3/uni231D.alt4/uni231D.alt5/uni231E.alt1
+/uni231E.alt2/uni231E.alt3/uni231E.alt4/uni231E.alt5/uni231F.alt1
+/uni231F.alt2/uni231F.alt3/uni231F.alt4/uni231F.alt5/ullcorner
+/ullcorner.alt1/ullcorner.alt2/ullcorner.alt3/ullcorner.alt4/ulrcorner
+/ulrcorner.alt1/ulrcorner.alt2/ulrcorner.alt3/ulrcorner.alt4/uni23A1/uni23A4
+/uni23A3/uni23A6/uni23A2/uni23A5/uni27E6/uni27E6.alt1/uni27E6.alt2
+/uni27E6.alt3/uni27E6.alt4/uni27E7/uni27E7.alt1/uni27E7.alt2/uni27E7.alt3
+/uni27E7.alt4/lsemtop/rsemtop/lsembot/rsembot/lsemmod/rsemmod/arrowvert
+/divides.alt0/divides.alt1/divides.alt2/divides.alt3/divides.alt4/Arrowvert
+/parallel.alt1/parallel.alt2/parallel.alt3/parallel.alt4/parallel.alt5/wavy
+/Wavy/uni27E8/uni27E8.alt/uni27E8.alt2/uni27E8.alt3/uni27E8.alt4/uni27E9
+/uni27E9.alt1/uni27E9.alt2/uni27E9.alt3/uni27E9.alt4/anglebar.left
+/anglebar.left.alt1/anglebar.left.alt2/anglebar.left.alt3/anglebar.left.alt4
+/anglebar.right/anglebar.right.alt1/anglebar.right.alt2/anglebar.right.alt3
+/anglebar.right.alt4/uni27EA/uni27EA.alt1/uni27EA.alt2/uni27EA.alt3
+/uni27EA.alt4/uni27EB/uni27EB.alt1/uni27EB.alt2/uni27EB.alt3/uni27EB.alt4
+/slash.left/slash.left.alt1/slash.left.alt2/slash.left.alt3/slash.left.alt4
+/slash.right/slash.right.alt1/slash.right.alt2/slash.right.alt3
+/slash.right.alt4/parenleft/parenleft.alt1/parenleft.alt2/parenleft.alt3
+/parenleft.alt4/parenright/parenright.alt1/parenright.alt2/parenright.alt3
+/parenright.alt4/uni239B/uni239E/uni239D/uni23A0/uni239C/uni239F/braceleft
+/braceleft.alt1/braceleft.alt2/braceleft.alt3/braceleft.alt4/braceright
+/braceright.alt1/braceright.alt2/braceright.alt3/braceright.alt4/uni23A7
+/uni23AB/uni23A9/uni23AD/uni23A8/uni23AC/uni23AA/ucurly/ucurly.alt1
+/ucurly.alt2/ucurly.alt3/ucurly.alt4/dcurly/dcurly.alt1/dcurly.alt2
+/dcurly.alt3/dcurly.alt4/ucurlyleft/dcurlyleft/ucurlyright/dcurlyright
+/ucurlymid/dcurlymid/udcurlymod/radical/radical.alt1/radical.alt2
+/radical.alt3/radical.alt4/roottop/rootbot/rootmod/circumflexcmb
+/circumflexcmb.alt1/circumflexcmb.alt2/circumflexcmb.alt3/circumflexcmb.alt4
+/tildecomb/tildecomb.alt1/tildecomb.alt2/tildecomb.alt3/tildecomb.alt4
+/wideparen1/wideparen2/wideparen3/wideparen4/wideparen5/uni20D7/uni0335
+/uni0337/uni0338/uparrow/downarrow/arrowmod/uparrowdbl/downarrowdbl
+/arrowmoddbl 37{/.notdef}repeat]
+xycirc10:
+[/c0/c1/c2/c3/c4/c5/c6/c7/c8/c9/c10/c11/c12/c13/c14/c15/c16/c17/c18/c19/c20
+/c21/c22/c23/c24/c25/c26/c27/c28/c29/c30/c31/c32/c33/c34/c35/c36/c37/c38/c39
+/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c50/c51/c52/c53/c54/c55/c56/c57/c58
+/c59/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c70/c71/c72/c73/c74/c75/c76/c77
+/c78/c79/c80/c81/c82/c83/c84/c85/c86/c87/c88/c89/c90/c91/c92/c93/c94/c95/c96
+/c97/c98/c99/c100/c101/c102/c103/c104/c105/c106/c107/c108/c109/c110/c111
+/c112/c113/c114/c115/c116/c117/c118/c119/c120/c121/c122/c123/c124/c125/c126
+/c127 128{/.notdef}repeat]
+manfnt:
+[/char00/char01/char02/char03/char04/char05/char06/char07/char08/char09
+/char0a/char0b/char0c/char0d/char0e/char0f/char10/char11/char12/char13
+/char14/char15/char16/char17/.notdef/char19/char1a/char1b/char1c/char1d
+/char1e/char1f/char20/char21/char22/char23/char24/char25/char26/char27
+/char28/char29/char2a/char2b/char2c/char2d/char2e/char2f/char30/char31
+/char32/char33/char34/char35/char36/char37/char38/char39/char3a/char3b
+/char3c/char3d/char3e/char3f/.notdef/char41/char42/char43/char44/char45
+/char46/char47/char48/char49/char4a/char4b/char4c/char4d/char4e/char4f
+/char50/char51/char52/char53/char54/char55/char56/char57/char58/char59
+/char5a/char5b/char5c/char5d/char5e/char5f/char60/char61/char62/char63
+/char64/char65/char66/char67/char68/char69/char6a/char6b/char6c/char6d
+/char6e/char6f/char70/char71/char72/char73/char74/char75/char76/char77
+/char78/char79 4{/.notdef}repeat/char7e/char7f 128{/.notdef}repeat]
+xnsh14:
+xnsh14bf:
+[/char00/char01/char02/char03/char04/char05/char06/char07/char08/char09
+/char0a/char0b/char0c/char0d/char0e/char0f/char10/char11/char12/char13
+/char14/char15/char16/char17/char18/char19/char1a/char1b/char1c/char1d
+/char1e/char1f/char20/char21/char22/char23/char24/char25/char26/char27
+/char28/char29/char2a/char2b/char2c/char2d/char2e/char2f/char30/char31
+/char32/char33/char34/char35/char36/char37/char38/char39/char3a/char3b
+/char3c/char3d/char3e/char3f/char40/char41/char42/char43/char44/char45
+/char46/char47/char48/char49/char4a/char4b/char4c/char4d/char4e/char4f
+/char50/char51/char52/char53/char54/.notdef/char56/char57/char58/char59
+/char5a/char5b/char5c/char5d/char5e/char5f 3{/.notdef}repeat/char63/char64
+/char65/char66/char67/char68/char69/char6a/char6b/char6c/char6d/char6e
+/char6f/char70/char71/char72/char73/char74/char75/char76/char77 8{/.notdef}
+repeat/char80/char81/char82/char83/char84/char85/char86/char87 8{/.notdef}
+repeat/char90/char91/char92/char93/char94/char95/char96/char97/char98/char99
+/char9a/char9b/char9c/char9d/char9e/char9f/chara0/chara1/chara2/chara3
+/chara4/chara5/chara6/chara7/chara8/chara9/charaa/charab/charac/charad
+/charae/charaf/charb0/charb1/charb2/charb3/charb4/charb5/charb6/charb7
+/charb8/charb9/charba/charbb/charbc/charbd/charbe/charbf/charc0/charc1
+/charc2/charc3/charc4/charc5/charc6/charc7/charc8/charc9/charca/charcb
+/charcc/charcd/charce/charcf/chard0/chard1/chard2/chard3/chard4/chard5
+/chard6/chard7/chard8/chard9/.notdef/chardb/chardc/chardd/charde/chardf
+/chare0/chare1/chare2/chare3/chare4/chare5/chare6/chare7/chare8/chare9
+/charea/chareb/charec/chared/charee/charef/charf0/charf1/.notdef/.notdef
+/charf4/charf5/charf6/charf7/charf8/charf9/charfa/charfb/charfc/charfd
+/charfe/charff]
+xyatip10:
+xybsql10:
+xybtip10:
+xycmat10:
+xycmat11:
+xycmat12:
+xycmbt10:
+xycmbt11:
+xycmbt12:
+xyeuat10:
+xyeuat11:
+xyeuat12:
+xyeubt10:
+xyeubt11:
+xyeubt12:
+xyluat10:
+xyluat11:
+xyluat12:
+xylubt10:
+xylubt11:
+xylubt12:
+[/d0/d1/d2/d3/d4/d5/d6/d7/d8/d9/d10/d11/d12/d13/d14/d15/d16/d17/d18/d19/d20
+/d21/d22/d23/d24/d25/d26/d27/d28/d29/d30/d31/d32/d33/d34/d35/d36/d37/d38/d39
+/d40/d41/d42/d43/d44/d45/d46/d47/d48/d49/d50/d51/d52/d53/d54/d55/d56/d57/d58
+/d59/d60/d61/d62/d63/d64/d65/d66/d67/d68/d69/d70/d71/d72/d73/d74/d75/d76/d77
+/d78/d79/d80/d81/d82/d83/d84/d85/d86/d87/d88/d89/d90/d91/d92/d93/d94/d95/d96
+/d97/d98/d99/d100/d101/d102/d103/d104/d105/d106/d107/d108/d109/d110/d111
+/d112/d113/d114/d115/d116/d117/d118/d119/d120/d121/d122/d123/d124/d125/d126
+/d127 128{/.notdef}repeat]
+cmntex10:
+cmtex10:
+cmtex8:
+cmtex9:
+pltex10:
+pltex8:
+pltex9:
+[/dotmath/arrowdown/alpha/beta/logicaland/logicalnot/element/pi/lambda/gamma
+/delta/arrowup/plusminus/circleplus/infinity/partialdiff/propersubset
+/propersuperset/intersection/union/universal/existential/circlemultiply
+/arrowboth/arrowleft/arrowright/notequal/lozenge/lessequal/greaterequal
+/equivalence/logicalor/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/minus/period
+/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V
+/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft
+/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar
+/braceright/asciitilde/integral 128{/.notdef}repeat]
+MnSymbolC-Bold10:
+MnSymbolC-Bold12:
+MnSymbolC-Bold5:
+MnSymbolC-Bold6:
+MnSymbolC-Bold7:
+MnSymbolC-Bold8:
+MnSymbolC-Bold9:
+MnSymbolC10:
+MnSymbolC12:
+MnSymbolC5:
+MnSymbolC6:
+MnSymbolC7:
+MnSymbolC8:
+MnSymbolC9:
+[/dotmath/hdotdot/ratio/udotdot/ddotdot/uni22EF/ellipsisvertical/uni22F0
+/uni22F1/righttherefore/therefore/lefttherefore/because/diamonddots
+/proportion/fivedots/minus/divides.alt/divisionslash/uni2216/plus/multiply
+/plusminus/minusplus/dotminus/dotmedvert/minusdot/medvertdot/divide/slashdiv
+/vertdiv/backslashdiv/logicalnot/revlogicalnot/dtimes/uni22CA/utimes/uni22C9
+/bowtie/uni29D6/rightY/upY/leftY/downY/logicaland/logicalor/wedgedot/veedot
+/uni2A55/uni2A54/curlyand/curlyor/curlywedgedot/curlyveedot/doublecurlywedge
+/doublecurlyvee/union/intersection/uni22D3/uni22D2/uni228D/uni2A40/uni228E
+/capplus/uni2294/uni2293/uni2A4F/uni2A4E/sqcupdot/sqcapdot/sqcupplus
+/sqcapplus/whiterightpointingsmalltriangle/whiteuppointingsmalltriangle
+/whiteleftpointingsmalltriangle/whitedownpointingsmalltriangle/uni25B8
+/blackuppointingsmalltriangle/uni25C2/uni25BE/whiterightpointingtriangle
+/whiteuppointingtriangle/whiteleftpointingtriangle/whitedownpointingtriangle
+/whiterightpointingtriangle.alt1/whiteuppointingtriangle.alt1
+/whiteleftpointingtriangle.alt1/whitedownpointingtriangle.alt1/circle
+/blackcircle/largecircle/largecircle.alt1/minuscircle/uni29B6/uni2298
+/uni29B8/circleplus/circlemultiply/circleot/uni229A/otriangle/uni229B
+/uni235F/uni2205/uni25FD/uni25FE/uni25FB/uni25FB.alt1/whitediamond
+/blackdiamond/whitediamond.alt1/whitediamond.alt2/uni229F/boxvert/uni29C4
+/uni29C5/uni229E/uni22A0/uni22A1/uni29C8/diamondminus/diamondvert
+/diamondslash/diamondbackslash/diamondplus/diamondtimes/uni27D0
+/diamonddiamond/whitestar/blackstar/whitestar.alt1/whitestar.alt2/pentagram
+/largepentagram/uni22C6/asteriskmath/hbipropto/neswbipropto/vbipropto
+/nwsebipropto/proportional/downpropto/rightpropto/uppropto/hcrossing
+/neswcrossing/vcrossing/nwsecrossing/between/separated/bot/uni22BA/uni2240
+/angle/uni2221/uni2222/minute/primereversed/product.small/uni2210.small
+/checkmark/uni2607/diamondsuitwhite/heartsuitwhite/spade/club/universal
+/existential/uni2204/gradient/infinity/integral.small/musicflatsign/uni266E
+/musicsharpsign/aleph/uni2136/uni2137/uni2138/weierstrass/weierstrass.alt
+/uni2A3C/uni2A3D/uni231E/uni231F/uni231C/uni231D/closedsucc/closedcurlywedge
+/closedprec/closedcurlyvee/uni2AA7/upslice/uni2AA6/downslice/lozenge/uni29EB
+/lozenge.alt1/uni29EB.alt1/lozenge.alt2/blackrightpointingtriangle
+/blackuppointingtriangle/blackleftpointingtriangle/blackdownpointingtriangle
+/uni220E/uni2600/uni2721/uni2721.alt/uni2720 11{/.notdef}repeat/closedequal
+/equalclosed/equivclosed/uni2272/uni2273/uni2A85/uni2A86/uni2A95/uni2A96
+/uni22DE/uni22DF/uni21DB/uni21DA/closedequal_uni0338/equalclosed_uni0338
+/equivclosed_uni0338/uni2274/uni2275/uni2A89/uni2A8A/uni2A950338/uni2A960338
+/uni22DE0338/uni22DF0338/uni21DB0338/uni21DA0338/uni21B1/uni21B0/uni21AC
+/uni21AB/uni22CB/uni22CC/uni22AA/uni2224.short/parallel.short
+/notparallel.short]
+FdSymbolA-Bold:
+FdSymbolA-Book:
+FdSymbolA-Medium:
+FdSymbolA-Regular:
+[/dotmath/sym000/uni2236/sym001/sym002/uni22EF/uni22EE/uni22F0/uni22F1
+/sym003/therefore/sym004/uni2235/uni2237/minus/uni2215/uni2216/plus/multiply
+/uni2238/uni2A2A/divide/uni2A2B/uni2A2C/uni223A/plusminus/uni2213/uni2214
+/uni2A25/uni2A30/uni2A31/uni22C7/logicalnot/revlogicalnot/uni2A3C/uni2A3D
+/uni22CB/uni22CC/uni2A32/uni22CA/sym005/uni22C9/uni22C8/uni29D6/sym006
+/sym007/sym008/sym009/logicaland/logicalor/uni27D1/uni27C7/uni2A55/uni2A56
+/uni22CF/uni22CE/uni22BC/uni22BB/uni2A5E/uni2A63/union/intersection/uni22D3
+/uni22D2/uni228D/uni2A40/uni228E/sym00A/uni2294/uni2293/uni2A4F/uni2A4E
+/sym00B/sym00C/sym00D/sym00E/uni27D3/uni27D4/uni25B9/uni25B5/uni25C3/uni25BF
+/uni25B8/uni25B4/uni25C2/uni25BE/uni25B7/uni25B3/uni25C1/uni25BD/uni25B6
+/uni25B2/uni25C0/uni25BC/sym00F/sym010/openbullet/bullet/circle/uni25CF
+/uni2296/uni29B6/uni2298/uni29B8/circleplus/circlemultiply/uni2299/uni229A
+/uni229B/uni229D/uni229C/emptyset/uni29B0/uni25EF/uni2B24/uni25AB/uni25AA
+/uni25A1/uni25A0/uni229F/uni25EB/uni29C4/uni29C5/uni229E/uni22A0/uni22A1
+/uni29C8/uni2B1C/uni2B1B/uni22C4/uni2B29/uni25C7/uni25C6/sym011/sym012
+/sym013/sym014/sym015/sym016/uni27D0/sym017/uni2B2B/uni2B2A/lozenge/uni29EB
+/uni27E0/uni2B52/uni22C6/uni2B50/uni2B51/uni2606/uni2605/asteriskmath
+/infinity/proportional/sym018/sym019/uni226C/uni22BA/uni2240/angle/uni29A3
+/uni2221/uni299B/uni2222/uni29A1/uni29A0/sym01A/uni221F/uni22BE/uni299C
+/uni299D/minute/uni2035/product.small/product.sf.small/uni2A3F/uni2A3F.sf
+/integral.small/uni2713/uni21AF/uni2662/diamond/uni2661/heart/spade/club
+/uni2720/uni2721/uni2314/universal/existential/uni2204/uni2132/uni2141
+/uni2201/uni266D/uni266E/uni266F/aleph/uni2136/uni2137/uni2138/weierstrass 52
+{/.notdef}repeat]
+MdSymbolA-Bold:
+MdSymbolA-Light:
+MdSymbolA-Regular:
+MdSymbolA-Semibold:
+[/dotmath/sym000/uni2236/sym001/sym002/uni22EF/uni22EE/uni22F0/uni22F1
+/sym003/therefore/sym004/uni2235/uni2237/minus/uni2215/uni2216/plus/multiply
+/uni2238/uni2A2A/divide/uni2A2B/uni2A2C/uni223A/plusminus/uni2213/uni2214
+/uni2A25/uni2A30/uni2A31/uni22C7/logicalnot/revlogicalnot/uni2A3C/uni2A3D
+/uni22CB/uni22CC/uni2A32/uni22CA/sym005/uni22C9/uni22C8/uni29D6/sym006
+/sym007/sym008/sym009/logicaland/logicalor/uni27D1/uni27C7/uni2A55/uni2A56
+/uni22CF/uni22CE/uni22BC/uni22BB/uni2A5E/uni2A63/union/intersection/uni22D3
+/uni22D2/uni228D/uni2A40/uni228E/sym00A/uni2294/uni2293/uni2A4F/uni2A4E
+/sym00B/sym00C/sym00D/sym00E/uni27D3/uni27D4/uni25B9/uni25B5/uni25C3/uni25BF
+/uni25B8/uni25B4/uni25C2/uni25BE/uni25B7/uni25B3/uni25C1/uni25BD/uni25B6
+/uni25B2/uni25C0/uni25BC/sym00F/sym010/openbullet/bullet/circle/uni25CF
+/uni2296/uni29B6/uni2298/uni29B8/circleplus/circlemultiply/uni2299/uni229A
+/uni229B/uni229D/uni229C/emptyset/uni29B0/uni25EF/uni2B24/uni25AB/uni25AA
+/uni25A1/uni25A0/uni229F/uni25EB/uni29C4/uni29C5/uni229E/uni22A0/uni22A1
+/uni29C8/uni2B1C/uni2B1B/uni22C4/uni2B29/uni25C7/uni25C6/sym011/sym012
+/sym013/sym014/sym015/sym016/uni27D0/sym017/uni2B2B/uni2B2A/lozenge/uni29EB
+/uni27E0/uni2B52/uni22C6/uni2B50/uni2B51/uni2606/uni2605/asteriskmath
+/infinity/proportional/sym018/sym019/uni226C/uni22BA/uni2240/angle/uni29A3
+/uni2221/uni299B/uni2222/uni29A1/uni29A0/sym01A/uni221F/uni22BE/uni299C
+/uni299D/minute/uni2035/product.small/uni2A3F/integral.small/uni2713/uni21AF
+/uni2662/diamond/uni2661/heart/spade/club/uni2720/uni2721/uni2314/universal
+/existential/uni2204/uni2132/uni2141/uni2201/uni266D/uni266E/uni266F/aleph
+/uni2136/uni2137/uni2138/weierstrass/uni2207/sym01B/sym01C 51{/.notdef}
+repeat]
+etha10:
+etha6:
+etha7:
+etha8:
+ethab10:
+ethab11:
+ethab12:
+ethab14:
+ethab18:
+ethab24:
+ethab36:
+ethab9:
+ethas10:
+ethasb10:
+ethasb11:
+ethasb12:
+ethasb14:
+ethasb18:
+ethasb24:
+ethasb36:
+ethasb9:
+ethatt10:
+ethb10:
+ethb6:
+ethb7:
+ethb8:
+ethbb10:
+ethbb11:
+ethbb12:
+ethbb14:
+ethbb18:
+ethbb24:
+ethbb36:
+ethbb9:
+ethbs10:
+ethbsb10:
+ethbsb11:
+ethbsb12:
+ethbsb14:
+ethbsb18:
+ethbsb24:
+ethbsb36:
+ethbsb9:
+ethbtt10:
+[/dummya/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash/ogonek/ring
+/dummyb/breve/minus/dummyc/Zcaron/zcaron/caron/dotlessi/dotlessj/ff/ffi/ffl
+/notequal/infinity/lessequal/greaterequal/partialdiff/summation/product/pi
+/grave/quotesingle/space/exclam/quotedbl/numbersign/dollar/percent/ampersand
+/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less
+/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y
+/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c
+/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright
+/asciitilde/dummyd/Euro/integral/quotesinglbase/florin/quotedblbase/ellipsis
+/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/Omega
+/radical/approxequal/dummye/dummyf/dummyg/quotedblleft/quotedblright/bullet
+/endash/emdash/tilde/trademark/scaron/guilsinglright/oe/Delta/lozenge
+/Ydieresis/dummyh/exclamdown/cent/sterling/currency/yen/brokenbar/section
+/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/oldhy/registered
+/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph
+/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter
+/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde
+/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave
+/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde
+/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth
+/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave
+/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]
+umranda:
+[/enc-0/enc-1/enc-2/enc-3/enc-4/enc-5/enc-6/enc-7/enc-8/enc-9/enc-10/enc-11
+/enc-12/enc-13/enc-14/enc-15/enc-16/enc-17/enc-18/enc-19/enc-20/enc-21
+/enc-22/enc-23/enc-24/enc-25/enc-26/enc-27/enc-28/enc-29/enc-30/enc-31
+/enc-32/enc-33/enc-34/enc-35/enc-36/enc-37/enc-38/enc-39/enc-40/enc-41
+/enc-42/enc-43/enc-44/enc-45/enc-46/enc-47/enc-48/enc-49/enc-50/enc-51
+/enc-52/enc-53/enc-54/enc-55/enc-56/enc-57/enc-58/enc-59/enc-60/enc-61
+/enc-62/enc-63/enc-64/enc-65/enc-66/enc-67/enc-68/enc-69/enc-70/enc-71
+/enc-72/enc-73/enc-74/enc-75/enc-76/enc-77/enc-78/enc-79/enc-80/enc-81
+/enc-82/enc-83/enc-84/enc-85/enc-86/enc-87/enc-88/enc-89/enc-90/enc-91
+/enc-92/enc-93/enc-94/enc-95/enc-96/enc-97/enc-98/enc-99/enc-100/enc-101 154
+{/.notdef}repeat]
+bbding10:
+umrandb:
+[/enc-0/enc-1/enc-2/enc-3/enc-4/enc-5/enc-6/enc-7/enc-8/enc-9/enc-10/enc-11
+/enc-12/enc-13/enc-14/enc-15/enc-16/enc-17/enc-18/enc-19/enc-20/enc-21
+/enc-22/enc-23/enc-24/enc-25/enc-26/enc-27/enc-28/enc-29/enc-30/enc-31
+/enc-32/enc-33/enc-34/enc-35/enc-36/enc-37/enc-38/enc-39/enc-40/enc-41
+/enc-42/enc-43/enc-44/enc-45/enc-46/enc-47/enc-48/enc-49/enc-50/enc-51
+/enc-52/enc-53/enc-54/enc-55/enc-56/enc-57/enc-58/enc-59/enc-60/enc-61
+/enc-62/enc-63/enc-64/enc-65/enc-66/enc-67/enc-68/enc-69/enc-70/enc-71
+/enc-72/enc-73/enc-74/enc-75/enc-76/enc-77/enc-78/enc-79/enc-80/enc-81
+/enc-82/enc-83/enc-84/enc-85/enc-86/enc-87/enc-88/enc-89/enc-90/enc-91
+/enc-92/enc-93/enc-94/enc-95/enc-96/enc-97/enc-98/enc-99/enc-100/enc-101
+/enc-102/enc-103/enc-104/enc-105/enc-106/enc-107/enc-108/enc-109/enc-110
+/enc-111/enc-112/enc-113/enc-114/enc-115/enc-116/enc-117/enc-118/enc-119
+/enc-120/enc-121/enc-122/enc-123 132{/.notdef}repeat]
+grxn1200:
+[/endash/uni0020032F/u10144/u10145/u10146/u10147/uni03DB/uni03DB.var/uni1FBE
+/uni1FBC/uni1FCC/uni1FFC/uni0391.alt/uni03AB.alt/uni03B1.alt/uni03CB.alt
+/uni02CF/uni02CE/uni03DF/uni03D9/uni0020032E/uni03D8/uni03DA.var/uni03E0
+/Euro/perthousand/uni0259/uni03E1/quoteleft/quoteright/breve/macron/uni1FC1
+/exclam/dieresis/dieresistonos/uni1FED/percent/periodcentered/tonos
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/colon/anoteleia/uni1FFE/equal/uni1FBF
+/semicolon/uni1FDF/Alpha/Beta/uni1FDD/uni0394/Epsilon/Phi/Gamma/Eta/Iota
+/Theta/Kappa/Lambda/Mu/Nu/Omicron/Pi/Chi/Rho/Sigma/Tau/Upsilon/uni1FDE
+/uni03A9/Xi/Psi/Zeta/bracketleft/uni1FCF/bracketright/uni1FCE/uni1FCD
+/uni1FEF/alpha/beta/sigma1/delta/epsilon/phi/gamma/eta/iota/theta/kappa
+/lambda/uni03BC/nu/omicron/pi/chi/rho/sigma/tau/upsilon/.notdef/omega/xi/psi
+/zeta/guillemotleft/uni037A/guillemotright/uni1FC0/emdash/uni1F70/uni1F01
+/uni1F00/uni1F03/uni1FB2/uni1F81/uni1F80/uni1F83/alphatonos/uni1F05/uni1F04
+/uni1F02/uni1FB4/uni1F85/uni1F84/uni1F82/uni1FB6/uni1F07/uni1F06/uni03DD
+/uni1FB7/uni1F87/uni1F86/uni0020035D/uni1F74/uni1F21/uni1F20/.notdef/uni1FC2
+/uni1F91/uni1F90/.notdef/etatonos/uni1F25/uni1F24/uni1F23/uni1FC4/uni1F95
+/uni1F94/uni1F93/uni1FC6/uni1F27/uni1F26/uni1F22/uni1FC7/uni1F97/uni1F96
+/uni1F92/uni1F7C/uni1F61/uni1F60/uni1F63/uni1FF2/uni1FA1/uni1FA0/uni1FA3
+/omegatonos/uni1F65/uni1F64/uni1F62/uni1FF4/uni1FA5/uni1FA4/uni1FA2/uni1FF6
+/uni1F67/uni1F66/uni03DC/uni1FF7/uni1FA7/uni1FA6/.notdef/uni1F76/uni1F31
+/uni1F30/uni1F33/uni1F7A/uni1F51/uni1F50/uni1F53/iotatonos/uni1F35/uni1F34
+/uni1F32/upsilontonos/uni1F55/uni1F54/uni1F52/uni1FD6/uni1F37/uni1F36
+/Iotadieresis/uni1FE6/uni1F57/uni1F56/Upsilondieresis/uni1F72/uni1F11
+/uni1F10/uni1F13/uni1F78/uni1F41/uni1F40/uni1F43/epsilontonos/uni1F15
+/uni1F14/uni1F12/omicrontonos/uni1F45/uni1F44/uni1F42/iotadieresis/uni1FD2
+/iotadieresistonos/uni1FD7/upsilondieresis/uni1FE2/upsilondieresistonos
+/uni1FE7/uni1FB3/uni1FC3/uni1FF3/uni1FE5/uni1FE4/.notdef/uni0374/uni0375]
+glic0700:
+glic0800:
+glic1000:
+glic1200:
+glic1382:
+glic1659:
+glic1991:
+glic2389:
+glic2866:
+glic3440:
+glic4128:
+glii0700:
+glii0800:
+glii1000:
+glii1200:
+glii1382:
+glii1659:
+glii1991:
+glii2389:
+glii2866:
+glii3440:
+glii4128:
+glin0700:
+glin0800:
+glin1000:
+glin1200:
+glin1382:
+glin1659:
+glin1991:
+glin2389:
+glin2866:
+glin3440:
+glin4128:
+glio0700:
+glio0800:
+glio1000:
+glio1200:
+glio1382:
+glio1659:
+glio1991:
+glio2389:
+glio2866:
+glio3440:
+glio4128:
+gliu0700:
+gliu0800:
+gliu1000:
+gliu1200:
+gliu1382:
+gliu1659:
+gliu1991:
+gliu2389:
+gliu2866:
+gliu3440:
+gliu4128:
+gljc0700:
+gljc0800:
+gljc1000:
+gljc1200:
+gljc1382:
+gljc1659:
+gljc1991:
+gljc2389:
+gljc2866:
+gljc3440:
+gljc4128:
+gljn0700:
+gljn0800:
+gljn1000:
+gljn1200:
+gljn1382:
+gljn1659:
+gljn1991:
+gljn2389:
+gljn2866:
+gljn3440:
+gljn4128:
+gljo0700:
+gljo0800:
+gljo1000:
+gljo1200:
+gljo1382:
+gljo1659:
+gljo1991:
+gljo2389:
+gljo2866:
+gljo3440:
+gljo4128:
+glmc0700:
+glmc0800:
+glmc1000:
+glmc1200:
+glmc1382:
+glmc1659:
+glmc1991:
+glmc2389:
+glmc2866:
+glmc3440:
+glmc4128:
+glmi0700:
+glmi0800:
+glmi1000:
+glmi1200:
+glmi1382:
+glmi1659:
+glmi1991:
+glmi2389:
+glmi2866:
+glmi3440:
+glmi4128:
+glmn0700:
+glmn0800:
+glmn1000:
+glmn1200:
+glmn1382:
+glmn1659:
+glmn1991:
+glmn2389:
+glmn2866:
+glmn3440:
+glmn4128:
+glmo0700:
+glmo0800:
+glmo1000:
+glmo1200:
+glmo1382:
+glmo1659:
+glmo1991:
+glmo2389:
+glmo2866:
+glmo3440:
+glmo4128:
+glmu0700:
+glmu0800:
+glmu1000:
+glmu1200:
+glmu1382:
+glmu1659:
+glmu1991:
+glmu2389:
+glmu2866:
+glmu3440:
+glmu4128:
+gltc0700:
+gltc0800:
+gltc1000:
+gltc1200:
+gltc1382:
+gltc1659:
+gltc1991:
+gltc2389:
+gltc2866:
+gltc3440:
+gltc4128:
+gltn0700:
+gltn0800:
+gltn1000:
+gltn1200:
+gltn1382:
+gltn1659:
+gltn1991:
+gltn2389:
+gltn2866:
+gltn3440:
+gltn4128:
+glto0700:
+glto0800:
+glto1000:
+glto1200:
+glto1382:
+glto1659:
+glto1991:
+glto2389:
+glto2866:
+glto3440:
+glto4128:
+glwc0700:
+glwc0800:
+glwc1000:
+glwc1200:
+glwc1382:
+glwc1659:
+glwc1991:
+glwc2389:
+glwc2866:
+glwc3440:
+glwc4128:
+glwi0700:
+glwi0800:
+glwi1000:
+glwi1200:
+glwi1382:
+glwi1659:
+glwi1991:
+glwi2389:
+glwi2866:
+glwi3440:
+glwi4128:
+glwn0700:
+glwn0800:
+glwn1000:
+glwn1200:
+glwn1382:
+glwn1659:
+glwn1991:
+glwn2389:
+glwn2866:
+glwn3440:
+glwn4128:
+glwo0700:
+glwo0800:
+glwo1000:
+glwo1200:
+glwo1382:
+glwo1659:
+glwo1991:
+glwo2389:
+glwo2866:
+glwo3440:
+glwo4128:
+glwu0700:
+glwu0800:
+glwu1000:
+glwu1200:
+glwu1382:
+glwu1659:
+glwu1991:
+glwu2389:
+glwu2866:
+glwu3440:
+glwu4128:
+glxc0700:
+glxc0800:
+glxc1000:
+glxc1200:
+glxc1382:
+glxc1659:
+glxc1991:
+glxc2389:
+glxc2866:
+glxc3440:
+glxc4128:
+glxi0700:
+glxi0800:
+glxi1000:
+glxi1200:
+glxi1382:
+glxi1659:
+glxi1991:
+glxi2389:
+glxi2866:
+glxi3440:
+glxi4128:
+glxn0700:
+glxn0800:
+glxn1000:
+glxn1200:
+glxn1382:
+glxn1659:
+glxn1991:
+glxn2389:
+glxn2866:
+glxn3440:
+glxn4128:
+glxo0700:
+glxo0800:
+glxo1000:
+glxo1200:
+glxo1382:
+glxo1659:
+glxo1991:
+glxo2389:
+glxo2866:
+glxo3440:
+glxo4128:
+glxu0700:
+glxu0800:
+glxu1000:
+glxu1200:
+glxu1382:
+glxu1659:
+glxu1991:
+glxu2389:
+glxu2866:
+glxu3440:
+glxu4128:
+gmmn0500:
+gmmn0600:
+gmmn0700:
+gmmn0800:
+gmmn0900:
+gmmn1000:
+gmmn1095:
+gmmn1200:
+gmmn1440:
+gmmn1728:
+gmmn2074:
+gmmn2488:
+gmmn2986:
+gmmn3583:
+gmmo0500:
+gmmo0600:
+gmmo0700:
+gmmo0800:
+gmmo0900:
+gmmo1000:
+gmmo1095:
+gmmo1200:
+gmmo1440:
+gmmo1728:
+gmmo2074:
+gmmo2488:
+gmmo2986:
+gmmo3583:
+gmxn0500:
+gmxn0600:
+gmxn0700:
+gmxn0800:
+gmxn0900:
+gmxn1000:
+gmxn1095:
+gmxn1200:
+gmxn1440:
+gmxn1728:
+gmxn2074:
+gmxn2488:
+gmxn2986:
+gmxn3583:
+gmxo0500:
+gmxo0600:
+gmxo0700:
+gmxo0800:
+gmxo0900:
+gmxo1000:
+gmxo1095:
+gmxo1200:
+gmxo1440:
+gmxo1728:
+gmxo2074:
+gmxo2488:
+gmxo2986:
+gmxo3583:
+gomc0500:
+gomc0600:
+gomc0700:
+gomc0800:
+gomc0900:
+gomc1000:
+gomc1095:
+gomc1200:
+gomc1440:
+gomc1728:
+gomc2074:
+gomc2488:
+gomc2986:
+gomc3583:
+gomi0500:
+gomi0600:
+gomi0700:
+gomi0800:
+gomi0900:
+gomi1000:
+gomi1095:
+gomi1200:
+gomi1440:
+gomi1728:
+gomi2074:
+gomi2488:
+gomi2986:
+gomi3583:
+gomn0500:
+gomn0600:
+gomn0700:
+gomn0800:
+gomn0900:
+gomn1000:
+gomn1095:
+gomn1200:
+gomn1440:
+gomn1728:
+gomn2074:
+gomn2488:
+gomn2986:
+gomn3583:
+gomo0500:
+gomo0600:
+gomo0700:
+gomo0800:
+gomo0900:
+gomo1000:
+gomo1095:
+gomo1200:
+gomo1440:
+gomo1728:
+gomo2074:
+gomo2488:
+gomo2986:
+gomo3583:
+gomu0500:
+gomu0600:
+gomu0700:
+gomu0800:
+gomu0900:
+gomu1000:
+gomu1095:
+gomu1200:
+gomu1440:
+gomu1728:
+gomu2074:
+gomu2488:
+gomu2986:
+gomu3583:
+goxc0500:
+goxc0600:
+goxc0700:
+goxc0800:
+goxc0900:
+goxc1000:
+goxc1095:
+goxc1200:
+goxc1440:
+goxc1728:
+goxc2074:
+goxc2488:
+goxc2986:
+goxc3583:
+goxi0500:
+goxi0600:
+goxi0700:
+goxi0800:
+goxi0900:
+goxi1000:
+goxi1095:
+goxi1200:
+goxi1440:
+goxi1728:
+goxi2074:
+goxi2488:
+goxi2986:
+goxi3583:
+goxn0500:
+goxn0600:
+goxn0700:
+goxn0800:
+goxn0900:
+goxn1000:
+goxn1095:
+goxn1200:
+goxn1440:
+goxn1728:
+goxn2074:
+goxn2488:
+goxn2986:
+goxn3583:
+goxo0500:
+goxo0600:
+goxo0700:
+goxo0800:
+goxo0900:
+goxo1000:
+goxo1095:
+goxo1200:
+goxo1440:
+goxo1728:
+goxo2074:
+goxo2488:
+goxo2986:
+goxo3583:
+goxu0500:
+goxu0600:
+goxu0700:
+goxu0800:
+goxu0900:
+goxu1000:
+goxu1095:
+goxu1200:
+goxu1440:
+goxu1728:
+goxu2074:
+goxu2488:
+goxu2986:
+goxu3583:
+grbl0500:
+grbl0600:
+grbl0700:
+grbl0800:
+grbl0900:
+grbl1000:
+grbl1095:
+grbl1200:
+grbl1440:
+grbl1728:
+grbl2074:
+grbl2488:
+grbl2986:
+grbl3583:
+grmc0500:
+grmc0600:
+grmc0700:
+grmc0800:
+grmc0900:
+grmc1000:
+grmc1095:
+grmc1200:
+grmc1440:
+grmc1728:
+grmc2074:
+grmc2488:
+grmc2986:
+grmc3583:
+grmi0500:
+grmi0600:
+grmi0700:
+grmi0800:
+grmi0900:
+grmi1000:
+grmi1095:
+grmi1200:
+grmi1440:
+grmi1728:
+grmi2074:
+grmi2488:
+grmi2986:
+grmi3583:
+grml0500:
+grml0600:
+grml0700:
+grml0800:
+grml0900:
+grml1000:
+grml1095:
+grml1200:
+grml1440:
+grml1728:
+grml2074:
+grml2488:
+grml2986:
+grml3583:
+grmn0500:
+grmn0600:
+grmn0700:
+grmn0800:
+grmn0900:
+grmn1000:
+grmn1095:
+grmn1200:
+grmn1440:
+grmn1728:
+grmn2074:
+grmn2488:
+grmn2986:
+grmn3583:
+grmo0500:
+grmo0600:
+grmo0700:
+grmo0800:
+grmo0900:
+grmo1000:
+grmo1095:
+grmo1200:
+grmo1440:
+grmo1728:
+grmo2074:
+grmo2488:
+grmo2986:
+grmo3583:
+grmu0500:
+grmu0600:
+grmu0700:
+grmu0800:
+grmu0900:
+grmu1000:
+grmu1095:
+grmu1200:
+grmu1440:
+grmu1728:
+grmu2074:
+grmu2488:
+grmu2986:
+grmu3583:
+grxc0500:
+grxc0600:
+grxc0700:
+grxc0800:
+grxc0900:
+grxc1000:
+grxc1095:
+grxc1200:
+grxc1440:
+grxc1728:
+grxc2074:
+grxc2488:
+grxc2986:
+grxc3583:
+grxi0500:
+grxi0600:
+grxi0700:
+grxi0800:
+grxi0900:
+grxi1000:
+grxi1095:
+grxi1200:
+grxi1440:
+grxi1728:
+grxi2074:
+grxi2488:
+grxi2986:
+grxi3583:
+grxl0500:
+grxl0600:
+grxl0700:
+grxl0800:
+grxl0900:
+grxl1000:
+grxl1095:
+grxl1200:
+grxl1440:
+grxl1728:
+grxl2074:
+grxl2488:
+grxl2986:
+grxl3583:
+grxn0500:
+grxn0600:
+grxn0700:
+grxn0800:
+grxn0900:
+grxn1000:
+grxn1095:
+grxn1440:
+grxn1728:
+grxn2074:
+grxn2488:
+grxn2986:
+grxn3583:
+grxo0500:
+grxo0600:
+grxo0700:
+grxo0800:
+grxo0900:
+grxo1000:
+grxo1095:
+grxo1200:
+grxo1440:
+grxo1728:
+grxo2074:
+grxo2488:
+grxo2986:
+grxo3583:
+grxu0500:
+grxu0600:
+grxu0700:
+grxu0800:
+grxu0900:
+grxu1000:
+grxu1095:
+grxu1200:
+grxu1440:
+grxu1728:
+grxu2074:
+grxu2488:
+grxu2986:
+grxu3583:
+gsma0500:
+gsma0600:
+gsma0700:
+gsma0800:
+gsma0900:
+gsma1000:
+gsma1095:
+gsma1200:
+gsma1440:
+gsma1728:
+gsma2074:
+gsma2488:
+gsma2986:
+gsma3583:
+gsmc0500:
+gsmc0600:
+gsmc0700:
+gsmc0800:
+gsmc0900:
+gsmc1000:
+gsmc1095:
+gsmc1200:
+gsmc1440:
+gsmc1728:
+gsmc2074:
+gsmc2488:
+gsmc2986:
+gsmc3583:
+gsme0500:
+gsme0600:
+gsme0700:
+gsme0800:
+gsme0900:
+gsme1000:
+gsme1095:
+gsme1200:
+gsme1440:
+gsme1728:
+gsme2074:
+gsme2488:
+gsme2986:
+gsme3583:
+gsmi0500:
+gsmi0600:
+gsmi0700:
+gsmi0800:
+gsmi0900:
+gsmi1000:
+gsmi1095:
+gsmi1200:
+gsmi1440:
+gsmi1728:
+gsmi2074:
+gsmi2488:
+gsmi2986:
+gsmi3583:
+gsmn0500:
+gsmn0600:
+gsmn0700:
+gsmn0800:
+gsmn0900:
+gsmn1000:
+gsmn1095:
+gsmn1200:
+gsmn1440:
+gsmn1728:
+gsmn2074:
+gsmn2488:
+gsmn2986:
+gsmn3583:
+gsmo0500:
+gsmo0600:
+gsmo0700:
+gsmo0800:
+gsmo0900:
+gsmo1000:
+gsmo1095:
+gsmo1200:
+gsmo1440:
+gsmo1728:
+gsmo2074:
+gsmo2488:
+gsmo2986:
+gsmo3583:
+gsmu0500:
+gsmu0600:
+gsmu0700:
+gsmu0800:
+gsmu0900:
+gsmu1000:
+gsmu1095:
+gsmu1200:
+gsmu1440:
+gsmu1728:
+gsmu2074:
+gsmu2488:
+gsmu2986:
+gsmu3583:
+gsxa0500:
+gsxa0600:
+gsxa0700:
+gsxa0800:
+gsxa0900:
+gsxa1000:
+gsxa1095:
+gsxa1200:
+gsxa1440:
+gsxa1728:
+gsxa2074:
+gsxa2488:
+gsxa2986:
+gsxa3583:
+gsxc0500:
+gsxc0600:
+gsxc0700:
+gsxc0800:
+gsxc0900:
+gsxc1000:
+gsxc1095:
+gsxc1200:
+gsxc1440:
+gsxc1728:
+gsxc2074:
+gsxc2488:
+gsxc2986:
+gsxc3583:
+gsxe0500:
+gsxe0600:
+gsxe0700:
+gsxe0800:
+gsxe0900:
+gsxe1000:
+gsxe1095:
+gsxe1200:
+gsxe1440:
+gsxe1728:
+gsxe2074:
+gsxe2488:
+gsxe2986:
+gsxe3583:
+gsxi0500:
+gsxi0600:
+gsxi0700:
+gsxi0800:
+gsxi0900:
+gsxi1000:
+gsxi1095:
+gsxi1200:
+gsxi1440:
+gsxi1728:
+gsxi2074:
+gsxi2488:
+gsxi2986:
+gsxi3583:
+gsxn0500:
+gsxn0600:
+gsxn0700:
+gsxn0800:
+gsxn0900:
+gsxn1000:
+gsxn1095:
+gsxn1200:
+gsxn1440:
+gsxn1728:
+gsxn2074:
+gsxn2488:
+gsxn2986:
+gsxn3583:
+gsxo0500:
+gsxo0600:
+gsxo0700:
+gsxo0800:
+gsxo0900:
+gsxo1000:
+gsxo1095:
+gsxo1200:
+gsxo1440:
+gsxo1728:
+gsxo2074:
+gsxo2488:
+gsxo2986:
+gsxo3583:
+gsxu0500:
+gsxu0600:
+gsxu0700:
+gsxu0800:
+gsxu0900:
+gsxu1000:
+gsxu1095:
+gsxu1200:
+gsxu1440:
+gsxu1728:
+gsxu2074:
+gsxu2488:
+gsxu2986:
+gsxu3583:
+gttc0500:
+gttc0600:
+gttc0700:
+gttc0800:
+gttc0900:
+gttc1000:
+gttc1095:
+gttc1200:
+gttc1440:
+gttc1728:
+gttc2074:
+gttc2488:
+gttc2986:
+gttc3583:
+gtti0500:
+gtti0600:
+gtti0700:
+gtti0800:
+gtti0900:
+gtti1000:
+gtti1095:
+gtti1200:
+gtti1440:
+gtti1728:
+gtti2074:
+gtti2488:
+gtti2986:
+gtti3583:
+gttn0500:
+gttn0600:
+gttn0700:
+gttn0800:
+gttn0900:
+gttn1000:
+gttn1095:
+gttn1200:
+gttn1440:
+gttn1728:
+gttn2074:
+gttn2488:
+gttn2986:
+gttn3583:
+gtto0500:
+gtto0600:
+gtto0700:
+gtto0800:
+gtto0900:
+gtto1000:
+gtto1095:
+gtto1200:
+gtto1440:
+gtto1728:
+gtto2074:
+gtto2488:
+gtto2986:
+gtto3583:
+gttu0500:
+gttu0600:
+gttu0700:
+gttu0800:
+gttu0900:
+gttu1000:
+gttu1095:
+gttu1200:
+gttu1440:
+gttu1728:
+gttu2074:
+gttu2488:
+gttu2986:
+gttu3583:
+[/endash/uni0020032F/u10144/u10145/u10146/u10147/uni03DB/uni03DB.var/uni1FBE
+/uni1FBC/uni1FCC/uni1FFC/uni0391.alt/uni03AB.alt/uni03B1.alt/uni03CB.alt
+/uni02CF/uni02CE/uni03DF/uni03D9/uni0020032E/uni03D8/uni03DA.var/uni03E0
+/Euro/perthousand/uni0259/uni03E1/quoteleft/quoteright/breve/macron/uni1FC1
+/exclam/dieresis/dieresistonos/uni1FED/percent/periodcentered/tonos
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/colon/anoteleia/uni1FFE/equal/uni1FBF
+/semicolon/uni1FDF/Alpha/Beta/uni1FDD/uni0394/Epsilon/Phi/Gamma/Eta/Iota
+/Theta/Kappa/Lambda/Mu/Nu/Omicron/Pi/Chi/Rho/Sigma/Tau/Upsilon/uni1FDE
+/uni03A9/Xi/Psi/Zeta/bracketleft/uni1FCF/bracketright/uni1FCE/uni1FCD
+/uni1FEF/alpha/beta/sigma1/delta/epsilon/phi/gamma/eta/iota/theta/kappa
+/lambda/uni03BC/nu/omicron/pi/chi/rho/sigma/tau/upsilon/internalchar2/omega
+/xi/psi/zeta/guillemotleft/uni037A/guillemotright/uni1FC0/emdash/uni1F70
+/uni1F01/uni1F00/uni1F03/uni1FB2/uni1F81/uni1F80/uni1F83/alphatonos/uni1F05
+/uni1F04/uni1F02/uni1FB4/uni1F85/uni1F84/uni1F82/uni1FB6/uni1F07/uni1F06
+/uni03DD/uni1FB7/uni1F87/uni1F86/uni0020035D/uni1F74/uni1F21/uni1F20/.notdef
+/uni1FC2/uni1F91/uni1F90/internalchar1/etatonos/uni1F25/uni1F24/uni1F23
+/uni1FC4/uni1F95/uni1F94/uni1F93/uni1FC6/uni1F27/uni1F26/uni1F22/uni1FC7
+/uni1F97/uni1F96/uni1F92/uni1F7C/uni1F61/uni1F60/uni1F63/uni1FF2/uni1FA1
+/uni1FA0/uni1FA3/omegatonos/uni1F65/uni1F64/uni1F62/uni1FF4/uni1FA5/uni1FA4
+/uni1FA2/uni1FF6/uni1F67/uni1F66/uni03DC/uni1FF7/uni1FA7/uni1FA6/.notdef
+/uni1F76/uni1F31/uni1F30/uni1F33/uni1F7A/uni1F51/uni1F50/uni1F53/iotatonos
+/uni1F35/uni1F34/uni1F32/upsilontonos/uni1F55/uni1F54/uni1F52/uni1FD6
+/uni1F37/uni1F36/Iotadieresis/uni1FE6/uni1F57/uni1F56/Upsilondieresis
+/uni1F72/uni1F11/uni1F10/uni1F13/uni1F78/uni1F41/uni1F40/uni1F43
+/epsilontonos/uni1F15/uni1F14/uni1F12/omicrontonos/uni1F45/uni1F44/uni1F42
+/iotadieresis/uni1FD2/iotadieresistonos/uni1FD7/upsilondieresis/uni1FE2
+/upsilondieresistonos/uni1FE7/uni1FB3/uni1FC3/uni1FF3/uni1FE5/uni1FE4
+/.notdef/uni0374/uni0375]
+MnSymbolD-Bold10:
+MnSymbolD-Bold12:
+MnSymbolD-Bold5:
+MnSymbolD-Bold6:
+MnSymbolD-Bold7:
+MnSymbolD-Bold8:
+MnSymbolD-Bold9:
+MnSymbolD10:
+MnSymbolD12:
+MnSymbolD5:
+MnSymbolD6:
+MnSymbolD7:
+MnSymbolD8:
+MnSymbolD9:
+[/equal/equivalence/similar/uni223D/approxequal/backapprox/uni224B
+/backtriplesim/uni2243/uni22CD/uni2242/backeqsim/congruent/uni224C/uni224A
+/backapproxeq/uni224F/eqbump/uni224E/uni2250/uni2A66/uni2251/uni2252/uni2253
+/uni2323/uni2322/doublesmile/doublefrown/triplesmile/triplefrown/uni224D
+/frownsmile/smileeq/frowneq/eqsmile/eqfrown/doublesmileeq/doublefrowneq
+/smileeqfrown/frowneqsmile/smilefrowneq/frownsmileeq/sqsmile/sqfrown
+/sqdoublesmile/sqdoublefrown/sqtriplesmile/sqtriplefrown/sqsmilefrown
+/sqfrownsmile/sqsmileeq/sqfrowneq/sqeqsmile/sqeqfrown/sqdoublesmileeq
+/sqdoublefrowneq/sqsmileeqfrown/sqfrowneqsmile/uni2256/uni2257/uni225C
+/uni2259/element/suchthat/less/greater/lessequal/greaterequal/uni2A7D
+/uni2A7E/uni2266/uni2267/uni2276/uni2277/uni22DA/uni22DB/uni2A8B/uni2A8C
+/lesseqgtrslant/gtreqlessslant/uni226A/uni226B/uni22D8/uni22D9/uni22B2
+/uni22B3/uni22B4/uni22B5/uni228F/uni2290/uni2291/uni2292/sqsubseteqq
+/sqsupseteqq/Sqsubset/Sqsupset/propersubset/propersuperset/reflexsubset
+/reflexsuperset/uni2AC5/uni2AC6/uni22D0/uni22D1/uni227A/uni227B/uni2AAF
+/uni2AB0/uni227C/uni227D/uni227E/uni227F/uni2AB7/uni2AB8/uni22D6/uni22D7
+/leqdot/geqdot/uni2A7F/uni2A80/notequal/uni2262/uni2241/uni223D0338/uni2249
+/backapprox_uni0338/uni224B0338/backtriplesim_uni0338/uni2244/uni22CD0338
+/uni22420338/backeqsim_uni0338/uni2247/uni224C0338/uni224A0338
+/backapproxeq_uni0338/uni224F0338/eqbump_uni0338/uni224E0338/uni22500338
+/uni2A660338/uni22510338/uni22520338/uni22530338/uni23230338/uni23220338
+/doublesmile_uni0338/doublefrown_uni0338/triplesmile_uni0338
+/triplefrown_uni0338/uni226D/frownsmile_uni0338/smileeq_uni0338
+/frowneq_uni0338/eqsmile_uni0338/eqfrown_uni0338/doublesmileeq_uni0338
+/doublefrowneq_uni0338/smileeqfrown_uni0338/frowneqsmile_uni0338
+/smilefrowneq_uni0338/frownsmileeq_uni0338/sqsmile_uni0338/sqfrown_uni0338
+/sqdoublesmile_uni0338/sqdoublefrown_uni0338/sqtriplesmile_uni0338
+/sqtriplefrown_uni0338/sqsmilefrown_uni0338/sqfrownsmile_uni0338
+/sqsmileeq_uni0338/sqfrowneq_uni0338/sqeqsmile_uni0338/sqeqfrown_uni0338
+/sqdoublesmileeq_uni0338/sqdoublefrowneq_uni0338/sqsmileeqfrown_uni0338
+/sqfrowneqsmile_uni0338/uni22560338/uni22570338/uni225C0338/uni22590338
+/notelement/uni220C/uni226E/uni226F/uni2270/uni2271/uni2270.alt1
+/uni2271.alt1/uni22660338/uni22670338/uni2278/uni2279/uni22DA0338
+/uni22DB0338/uni2A8B0338/uni2A8C0338/lesseqgtrslant_uni0338
+/gtreqlessslant_uni0338/uni226A0338/uni226B0338/uni22D80338/uni22D90338
+/uni22EA/uni22EB/uni22EC/uni22ED/uni228F0338/uni22900338/uni22E2/uni22E3
+/sqsubseteqq_uni0338/sqsupseteqq_uni0338/Sqsubset_uni0338/Sqsupset_uni0338
+/notsubset/uni2285/uni2288/uni2289/uni2AC50338/uni2AC60338/uni22D00338
+/uni22D10338/uni2280/uni2281/uni2AAF0338/uni2AB00338/uni22E0/uni22E1
+/uni227E0338/uni227F0338/uni2AB70338/uni2AB80338/uni22D60338/uni22D70338
+/leqdot_uni0338/geqdot_uni0338/uni2A7F0338/uni2A800338/uni2268/uni2269
+/lessneqqgtr/gtrneqqless/uni22E4/uni22E5/sqsubsetneqq/sqsupsetneqq/uni228A
+/uni228B/uni2ACB/uni2ACC/uni22E8/uni22E9/uni2AB9/uni2ABA]
+FdSymbolB-Bold:
+FdSymbolB-Book:
+FdSymbolB-Medium:
+FdSymbolB-Regular:
+MdSymbolB-Bold:
+MdSymbolB-Light:
+MdSymbolB-Regular:
+MdSymbolB-Semibold:
+[/equal/uni2261/similar/uni223D/approxequal/uni224B/uni2243/uni22CD/uni2242
+/congruent/uni224C/uni224A/uni224F/uni2AAE/uni224E/uni2250/uni2A66/uni2251
+/uni2252/uni2253/uni2254/uni2255/uni2323/uni2322/uni224D/uni2050/sym020
+/uni2258/uni2256/uni2257/uni2259/uni225A/uni225B/uni225C/element/uni220B
+/less/greater/lessequal/greaterequal/uni2A7D/uni2A7E/uni2266/uni2267/uni2272
+/uni2273/uni2A85/uni2A86/uni2276/uni2277/uni22DA/uni22DB/uni2A8B/uni2A8C
+/uni22DA.alt/uni22DB.alt/uni226A/uni226B/uni22D8/uni22D9/uni22B2/uni22B3
+/uni22B4/uni22B5/uni2AA6/uni2AA7/uni2AA8/uni2AA9/uni228F/uni2290/uni2291
+/uni2292/sym021/sym022/sym023/sym024/propersubset/propersuperset
+/reflexsubset/reflexsuperset/uni2AC5/uni2AC6/uni22D0/uni22D1/uni227A/uni227B
+/uni2AAF/uni2AB0/uni227C/uni227D/uni2AB3/uni2AB4/uni227E/uni227F/uni2AB7
+/uni2AB8/uni22D6/uni22D7/sym025/sym026/uni2A7F/uni2A80/uni2A95/uni2A96
+/uni22DE/uni22DF/notequal/uni2262/uni2241/uni223D0338/uni2249/uni224B0338
+/uni2244/uni22CD0338/uni22420338/uni2247/uni224C0338/uni224A0338/uni224F0338
+/uni2AAE0338/uni224E0338/uni22500338/uni2A660338/uni22510338/uni22520338
+/uni22530338/uni23230338/uni23220338/uni226D/uni20500338/sym020_uni0338
+/uni22580338/uni22560338/uni22570338/uni22590338/uni225A0338/uni225B0338
+/uni225C0338/notelement/uni220C/uni226E/uni226F/uni2270/uni2271/uni2A7D0338
+/uni2A7E0338/uni22660338/uni22670338/uni2274/uni2275/uni2A850338/uni2A860338
+/uni2278/uni2279/uni22DA0338/uni22DB0338/uni2A8B0338/uni2A8C0338
+/uni22DA0338.alt/uni22DB0338.alt/uni226A0338/uni226B0338/uni22D80338
+/uni22D90338/uni22EA/uni22EB/uni22EC/uni22ED/uni2AA60338/uni2AA70338
+/uni2AA80338/uni2AA90338/uni228F0338/uni22900338/uni22E2/uni22E3
+/sym021_uni0338/sym022_uni0338/sym023_uni0338/sym024_uni0338/notsubset
+/uni2285/uni2288/uni2289/uni2AC50338/uni2AC60338/uni22D00338/uni22D10338
+/uni2280/uni2281/uni2AAF0338/uni2AB00338/uni22E0/uni22E1/uni2AB30338
+/uni2AB40338/uni227E0338/uni227F0338/uni2AB70338/uni2AB80338/uni22D60338
+/uni22D70338/sym025_uni0338/sym026_uni0338/uni2A7F0338/uni2A800338
+/uni2A950338/uni2A960338/uni22DE0338/uni22DF0338/uni2246/sym027/uni2A87
+/uni2A88/uni2268/uni2269/uni22E6/uni22E7/uni2A89/uni2A8A/uni22E4/uni22E5
+/sym028/sym029/uni228A/uni228B/uni2ACB/uni2ACC/uni2AB1/uni2AB2/uni2AB5
+/uni2AB6/uni22E8/uni22E9/uni2AB9/uni2ABA 20{/.notdef}repeat]
+feybl10:
+feybo10:
+feybr10:
+feyml10:
+feymo10:
+feymr10:
+[/grave 31{/.notdef}repeat/space 32{/.notdef}repeat/A/B/C 33{/.notdef}repeat
+/e 154{/.notdef}repeat]
+bicighb:
+bicighm:
+bicigvb:
+bicigvm:
+[/grave 31{/.notdef}repeat/space/exclam/quotedbl 4{/.notdef}repeat
+/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less
+/equal/greater/question/at/A/B/C/.notdef/E/F/G/.notdef/I/.notdef/K/L/M/N/O/P
+/Q/R/S/T/U/V/W/X/Y/Z 5{/.notdef}repeat/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n
+/o/p/q/r/s/t/u/v/w/x/y/z/.notdef/bar 8{/.notdef}repeat/Ecaron/Eogonek/Gbreve
+/Lacute/Lcaron/.notdef/Nacute/Ncaron/Eng/Ohungarumlaut 4{/.notdef}repeat
+/Scedilla/Tcaron/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron
+/.notdef/IJ 14{/.notdef}repeat/nacute 3{/.notdef}repeat/racute/rcaron 10{
+/.notdef}repeat/zdotaccent 12{/.notdef}repeat/Egrave/.notdef/Ecircumflex
+/.notdef/Igrave/.notdef/Icircumflex/Idieresis/Eth/.notdef/Ograve/.notdef
+/Ocircumflex/.notdef/Odieresis/OE/Oslash/.notdef/Uacute/.notdef/Udieresis
+/.notdef/Thorn/SS/agrave/.notdef/acircumflex/.notdef/adieresis/.notdef/ae
+/ccedilla/egrave/.notdef/ecircumflex/.notdef/igrave/.notdef/icircumflex
+/idieresis/eth/.notdef/ograve/.notdef/ocircumflex/.notdef/odieresis/oe 7{
+/.notdef}repeat/germandbls]
+mxsk:
+[/grave/acute 62{/.notdef}repeat/at/A 62{/.notdef}repeat/Abreve/Aogonek 62{
+/.notdef}repeat/Agrave/Aacute 62{/.notdef}repeat]
+mathc10:
+[/grave/acute/circumflex/tilde 12{/.notdef}repeat/quotedblleft/quotedblright
+/quotedblbase/guillemotleft/guillemotright/endash/emdash/cwm/perthousand
+/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/.notdef/exclam/quotedbl/numbersign
+/.notdef/.notdef/ampersand/quoteright/parenleft/parenright/asterisk/plus
+/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine
+/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z
+/braceleft/bar/braceright/asciitilde/sfthyphen/.notdef/Aogonek/Cacute/Ccaron
+/.notdef/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash/Nacute/Ncaron/Eng
+/.notdef/Racute/Rcaron/Sacute/.notdef/Scedilla/.notdef/.notdef/Uhungarumlaut
+10{/.notdef}repeat/aogonek/cacute/ccaron/.notdef/ecaron/.notdef/gbreve
+/lacute/lcaron/.notdef/nacute/ncaron/.notdef/.notdef/racute/rcaron/sacute
+/.notdef/.notdef/tcaron/tcedilla/uhungarumlaut/uring/.notdef/.notdef/zcaron
+/.notdef/.notdef/exclamdown/.notdef/sterling/Agrave/Aacute/Acircumflex
+/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis
+/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex
+/Otilde/Odieresis/OE/Oslash/Ugrave/Uacute 5{/.notdef}repeat/agrave/aacute
+/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex
+/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute
+/ocircumflex/otilde/odieresis/oe/oslash/ugrave/uacute 5{/.notdef}repeat]
+knitn_sc_in:
+knitn_sc_out:
+knitnl:
+knitnn:
+knitnp:
+knitnr:
+[/grave/acute/circumflex/tilde/dieresis/.notdef/.notdef/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/compwordmark/perthousandzero/dotlessi/dotlessj/ff/fi/fl/ffi/ffl
+/.notdef/exclam/quotedbl/numbersign/.notdef/.notdef/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater
+/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/.notdef/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k
+/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/.notdef
+/Abreve/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron
+/Lslash/Nacute/Ncaron/Eng/Odblacute/Racute/Rcaron/Sacute/Scaron/Scedilla
+/Tcaron/Tcedilla/Udblacute/Uring 102{/.notdef}repeat/thorn/germandbls]
+callig15:
+[/grave/acute/circumflex/tilde/dieresis/.notdef/ring/.notdef/breve/.notdef
+/dotaccent 3{/.notdef}repeat/guilsinglleft/guilsinglright/quotedblleft
+/quotedblright/quotedblbase/guillemotleft/guillemotright/.notdef/emdash 5{
+/.notdef}repeat/fi/fl 3{/.notdef}repeat/exclam/quotedbl/numbersign/dollar
+/percent/ampersand/quoteright/parenleft/parenright/asterisk/.notdef/comma
+/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon 3{/.notdef}repeat/question/.notdef/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/.notdef/bracketright/asciicircum
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z
+/braceleft/.notdef/braceright/asciitilde/sfthyphen 24{/.notdef}repeat
+/Ydieresis 31{/.notdef}repeat/ydieresis 4{/.notdef}repeat/exclamdown
+/questiondown/sterling/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/.notdef/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/OE
+/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis 3{/.notdef}repeat/agrave/aacute
+/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex
+/edieresis/igrave/iacute/icircumflex/idieresis/.notdef/ntilde/ograve/oacute
+/ocircumflex/otilde/odieresis/oe/oslash/ugrave/uacute/ucircumflex/udieresis
+/.notdef/.notdef/germandbls]
+vnb10:
+vnbx10:
+vnbx12:
+vnbx5:
+vnbx6:
+vnbx7:
+vnbx8:
+vnbx9:
+vnbxsl10:
+vnbxti10:
+vncsc10:
+vndunh10:
+vnff10:
+vnfi10:
+vnfib8:
+vnitt10:
+vnr10:
+vnr12:
+vnr17:
+vnr5:
+vnr6:
+vnr7:
+vnr8:
+vnr9:
+vnsl10:
+vnsl12:
+vnsl8:
+vnsl9:
+vnsltt10:
+vnss10:
+vnss12:
+vnss8:
+vnss9:
+vnssbx10:
+vnssdc10:
+vnssi10:
+vnssi12:
+vnssi8:
+vnssi9:
+vnssq8:
+vnssqi8:
+vntcsc10:
+vnti10:
+vnti12:
+vnti7:
+vnti8:
+vnti9:
+vntt10:
+vntt12:
+vntt8:
+vntt9:
+vnu10:
+vnvtt10:
+[/grave/acute/circumflex/tilde/dieresis/dotbelow/ring/caron/breve/macron
+/dotaccent/cedilla/hookabove/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/.notdef/zeroinferior/dotlessi/uni1EF6/uni1EF7/uni1EF4/uni1EF5/Dcroat
+/dcroat/uni2423/exclam/quotedbl/numbersign/dollar/percent/ampersand
+/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less
+/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y
+/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c
+/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright
+/asciitilde/sfthyphen/Agrave/Aacute/Atilde/uni1EA2/uni1EA0/Acircumflex
+/uni1EA6/uni1EA4/uni1EAA/uni1EA8/uni1EAC/Abreve/uni1EB0/uni1EAE/uni1EB4
+/uni1EB2/uni1EB6/Egrave/Eacute/uni1EBC/uni1EBA/uni1EB8/Ecircumflex/uni1EC0
+/uni1EBE/uni1EC4/uni1EC2/uni1EC6/Igrave/Iacute/Itilde/uni1EC8/agrave/aacute
+/atilde/uni1EA3/uni1EA1/acircumflex/uni1EA7/uni1EA5/uni1EAB/uni1EA9/uni1EAD
+/abreve/uni1EB1/uni1EAF/uni1EB5/uni1EB3/uni1EB7/egrave/eacute/uni1EBD
+/uni1EBB/uni1EB9/ecircumflex/uni1EC1/uni1EBF/uni1EC5/uni1EC3/uni1EC7/igrave
+/iacute/itilde/uni1EC9/uni1ECA/Ograve/Oacute/Otilde/uni1ECE/uni1ECC
+/Ocircumflex/uni1ED2/uni1ED0/uni1ED6/uni1ED4/uni1ED8/Ohorn/uni1EDC/uni1EDA
+/uni1EE0/uni1EDE/uni1EE2/Ugrave/Uacute/Utilde/uni1EE6/uni1EE4/Uhorn/uni1EEA
+/uni1EE8/uni1EEE/uni1EEC/uni1EF0/Ygrave/Yacute/uni1EF8/uni1ECB/ograve/oacute
+/otilde/uni1ECF/uni1ECD/ocircumflex/uni1ED3/uni1ED1/uni1ED7/uni1ED5/uni1ED9
+/ohorn/uni1EDD/uni1EDB/uni1EE1/uni1EDF/uni1EE3/ugrave/uacute/utilde/uni1EE7
+/uni1EE5/uhorn/uni1EEB/uni1EE9/uni1EEF/uni1EED/uni1EF1/ygrave/yacute/uni1EF9
+]
+vnss17:
+vnssi17:
+[/grave/acute/circumflex/tilde/dieresis/dotbelow/ring/caron/breve/macron
+/dotaccent/cedilla/hookabove/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/zeroinferior/dotlessi/uni1EF6/uni1EF7/uni1EF4/uni1EF5/Dcroat
+/dcroat/uni2423/exclam/quotedbl/numbersign/dollar/percent/ampersand
+/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less
+/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y
+/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c
+/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright
+/asciitilde/sfthyphen/Agrave/Aacute/Atilde/uni1EA2/uni1EA0/Acircumflex
+/uni1EA6/uni1EA4/uni1EAA/uni1EA8/uni1EAC/Abreve/uni1EB0/uni1EAE/uni1EB4
+/uni1EB2/uni1EB6/Egrave/Eacute/uni1EBC/uni1EBA/uni1EB8/Ecircumflex/uni1EC0
+/uni1EBE/uni1EC4/uni1EC2/uni1EC6/Igrave/Iacute/Itilde/uni1EC8/agrave/aacute
+/atilde/uni1EA3/uni1EA1/acircumflex/uni1EA7/uni1EA5/uni1EAB/uni1EA9/uni1EAD
+/abreve/uni1EB1/uni1EAF/uni1EB5/uni1EB3/uni1EB7/egrave/eacute/uni1EBD
+/uni1EBB/uni1EB9/ecircumflex/uni1EC1/uni1EBF/uni1EC5/uni1EC3/uni1EC7/igrave
+/iacute/itilde/uni1EC9/uni1ECA/Ograve/Oacute/Otilde/uni1ECE/uni1ECC
+/Ocircumflex/uni1ED2/uni1ED0/uni1ED6/uni1ED4/uni1ED8/Ohorn/uni1EDC/uni1EDA
+/uni1EE0/uni1EDE/uni1EE2/Ugrave/Uacute/Utilde/uni1EE6/uni1EE4/Uhorn/uni1EEA
+/uni1EE8/uni1EEE/uni1EEC/uni1EF0/Ygrave/Yacute/uni1EF8/uni1ECB/ograve/oacute
+/otilde/uni1ECF/uni1ECD/ocircumflex/uni1ED3/uni1ED1/uni1ED7/uni1ED5/uni1ED9
+/ohorn/uni1EDD/uni1EDB/uni1EE1/uni1EDF/uni1EE3/ugrave/uacute/utilde/uni1EE7
+/uni1EE5/uhorn/uni1EEB/uni1EE9/uni1EEF/uni1EED/uni1EF1/ygrave/yacute/uni1EF9
+]
+knitg_sc_in:
+knitg_sc_out:
+knitgg:
+knitgn:
+knitgp:
+knitwg:
+knitwn:
+knitwp:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring 10{/.notdef}repeat
+/quotedblright/quotedblbase/guillemotleft/guillemotright/endash/emdash
+/compwordmark/perthousandzero/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/.notdef
+/exclam/quotedbl/numbersign/.notdef/.notdef/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/.notdef
+/bracketright/.notdef/.notdef/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r
+/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/.notdef/Abreve/Aogonek
+/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash/Nacute
+/Ncaron/Eng/Odblacute/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron/Tcedilla
+/Udblacute/Uring/Ydieresis/Zacute/Zcaron/Zdot/IJ/Idot/dmacron/section/abreve
+/aogonek/cacute/ccaron/dcaron/ecaron/eogonek/gbreve/lacute/lcaron/lslash
+/nacute/ncaron/eng/odblacute/racute/rcaron/sacute/scaron/scedilla/tcaron
+/tcedilla/udblacute/uring/ydieresis/zacute/zcaron/zdot/ij/exclamdown
+/questiondown/sterling/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/OE/Oslash
+/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/Germandbls/agrave/aacute
+/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex
+/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute
+/ocircumflex/otilde/odieresis/oe/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/germandbls]
+vect10:
+vect5:
+vect6:
+vect7:
+vect8:
+vect9:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve 7{
+/.notdef}repeat/quotedblleft/quotedblright/quotedblbase/guillemotleft
+/guillemotright/endash/emdash/cwm/perthousand 7{/.notdef}repeat/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash 208{/.notdef}repeat]
+hcaption:
+hclassic:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+23{/.notdef}repeat/exclam 10{/.notdef}repeat/comma/hyphen/period 11{/.notdef
+}repeat/colon 64{/.notdef}repeat/braceleft/bar 3{/.notdef}repeat/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash
+/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron
+/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron 101{/.notdef}repeat]
+tipx10:
+tipx12:
+tipx17:
+tipx8:
+tipx9:
+tipxb10:
+tipxbs10:
+tipxbx10:
+tipxbx12:
+tipxbx8:
+tipxbx9:
+tipxsb10:
+tipxsi10:
+tipxsl10:
+tipxsl12:
+tipxsl8:
+tipxsl9:
+tipxss10:
+tipxss12:
+tipxss17:
+tipxss8:
+tipxss9:
+tipxts10:
+tipxtt10:
+tipxtt12:
+tipxtt8:
+tipxtt9:
+xipx10:
+xipxb10:
+xipxbs10:
+xipxsb10:
+xipxsi10:
+xipxsl10:
+xipxss10:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent 21{/.notdef}repeat/visiblespace/exclam/quotedbl/numbersign/dollar
+/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma
+/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I 6{/.notdef}
+repeat/P/Q/R/S/T/U/V 25{/.notdef}repeat/p/q/r/s/t/u/v/w/x/y/z/braceleft 132{
+/.notdef}repeat]
+xuc10:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/.notdef/ogonek/quotesinglbase/guilsinglleft/.notdef/quotedblleft
+/quotedblright/quotedblbase/guillemotleft/guillemotright/endash/emdash/cwm
+/perthousand/.notdef/dotlessj/.notdef/fi/fl/ffi/.notdef/.notdef/exclam 5{
+/.notdef}repeat/quoteright/parenleft/parenright/.notdef/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/.notdef/equal/.notdef/question/.notdef/A/B/C/D/E/.notdef/G/H/I/J
+/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/.notdef/Z/bracketleft/backslash/bracketright 3{
+/.notdef}repeat/a/b/c/d/e/.notdef/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x
+/.notdef/z/braceleft/bar 131{/.notdef}repeat]
+ltclb8:
+ltcli8:
+ltclo8:
+ltclq8:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase 4{/.notdef}repeat/quotedblbase
+/.notdef/.notdef/endash/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl
+/.notdef/ffl/space 3{/.notdef}repeat/dollar/.notdef/.notdef/quoteright
+/.notdef/.notdef/asterisk/.notdef/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/.notdef/.notdef/less/equal/greater 14{
+/.notdef}repeat/M/.notdef/O 7{/.notdef}repeat/W 3{/.notdef}repeat
+/bracketleft/.notdef/bracketright/asciicircum/underscore/quoteleft/.notdef/b
+/c/d 7{/.notdef}repeat/l/m/n 15{/.notdef}repeat/asciitilde/sfthyphen/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash
+/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron
+/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent/IJ
+/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron/dcaron/ecaron
+/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute
+/rcaron/sacute/scaron/scedilla/tcaron/tcedilla/uhungarumlaut/uring/ydieresis
+/zacute/zcaron/zdotaccent/ij/exclamdown/questiondown/sterling 22{/.notdef}
+repeat/Odieresis 31{/.notdef}repeat/odieresis 9{/.notdef}repeat]
+mxedc10:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/.notdef/.notdef
+/quotedblright 4{/.notdef}repeat/emdash 10{/.notdef}repeat/exclam 5{/.notdef
+}repeat/quoteright/parenleft/parenright/.notdef/plus/comma/hyphen/period
+/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/.notdef/equal/.notdef/question 27{/.notdef}repeat/bracketleft/backslash
+/bracketright/asciicircum/.notdef/.notdef/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q
+/r/s/t/u/v/w/x/y/z/braceleft/bar/.notdef/.notdef/sfthyphen 128{/.notdef}
+repeat]
+mxed10:
+mxedbf10:
+mxedi10:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/.notdef/quotedblleft
+/quotedblright 4{/.notdef}repeat/emdash 10{/.notdef}repeat/exclam 5{/.notdef
+}repeat/quoteright/parenleft/parenright/.notdef/plus/comma/hyphen/period
+/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/.notdef/equal/.notdef/question 27{/.notdef}repeat/bracketleft/backslash
+/bracketright/asciicircum/.notdef/.notdef/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q
+/r/s/t/u/v/w/x/y/z/braceleft/bar/.notdef/.notdef/sfthyphen 128{/.notdef}
+repeat]
+mathastrotest10:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/.notdef/quotedblleft
+/quotedblright/quotedblbase/guillemotleft/guillemotright/endash/emdash/cwm
+/perthousand/.notdef/dotlessj/ff 4{/.notdef}repeat/visualspace/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/.notdef/zero/one/two/three
+/four/five/six/seven/eight/.notdef/colon/semicolon 4{/.notdef}repeat/at/A/B
+/C/D/E/F/G/H/I/J/K/L/M/N/.notdef/P/Q/R/S/T/U/V/W/X/.notdef/Z/bracketleft 4{
+/.notdef}repeat/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/.notdef/p/q/r/s/t/u/v
+/w/x/.notdef/z/braceleft 4{/.notdef}repeat/Abreve/Aogonek/Cacute/Ccaron
+/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash/Nacute/Ncaron/Eng
+/Ohungarumlaut/.notdef/Rcaron/Sacute/Scaron/Scedilla/Tcaron/Tcedilla
+/Uhungarumlaut/Uring/Ydieresis/.notdef/Zcaron/Zdotaccent 4{/.notdef}repeat
+/abreve/aogonek/cacute/ccaron/dcaron/ecaron/eogonek/gbreve/lacute/lcaron
+/lslash/nacute/ncaron/eng/ohungarumlaut/.notdef/rcaron/sacute/scaron
+/scedilla/tcaron/tcedilla/uhungarumlaut/uring/ydieresis/.notdef/zcaron
+/zdotaccent 4{/.notdef}repeat/Agrave/Aacute/Acircumflex/Atilde/Adieresis
+/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute
+/Icircumflex/.notdef/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/OE/Oslash/.notdef/Uacute/Ucircumflex 4{/.notdef}repeat/agrave/aacute
+/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex
+/edieresis/igrave/iacute/icircumflex/.notdef/eth/ntilde/ograve/oacute
+/ocircumflex/otilde/odieresis/oe/oslash/.notdef/uacute/ucircumflex 4{
+/.notdef}repeat]
+cmllbx10:
+cmllbx12:
+cmllbx5:
+cmllbx6:
+cmllbx7:
+cmllbx8:
+cmllbx9:
+cmllr10:
+cmllr12:
+cmllr17:
+cmllr5:
+cmllr6:
+cmllr7:
+cmllr8:
+cmllr9:
+cmllss10:
+cmllss12:
+cmllss17:
+cmllss8:
+cmllss9:
+cmllssbx10:
+eullbx10:
+eullbx5:
+eullbx6:
+eullbx7:
+eullbx8:
+eullbx9:
+eullr10:
+eullr5:
+eullr6:
+eullr7:
+eullr8:
+eullr9:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase 237{/.notdef}repeat]
+xgreg11:
+xgreg13:
+xgreg16:
+xgreg20:
+xgreg24:
+xgreg29:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase 79{/.notdef}repeat/b 19{/.notdef}
+repeat/v/w/x/y/z/.notdef/.notdef/braceright/asciitilde 129{/.notdef}repeat]
+ebbx10:
+ebmo10:
+ebmo17:
+ebmo8:
+ebmo9:
+ebmr10:
+ebmr17:
+ebmr8:
+ebmr9:
+ebso10:
+ebso17:
+ebso8:
+ebso9:
+ebsr10:
+ebsr17:
+ebsr8:
+ebsr9:
+ebtl10:
+ebto10:
+ecbi0500:
+ecbi0600:
+ecbi0700:
+ecbi0800:
+ecbi0900:
+ecbi1000:
+ecbi1095:
+ecbi1200:
+ecbi1440:
+ecbi1728:
+ecbi2074:
+ecbi2488:
+ecbi2986:
+ecbi3583:
+ecbl0500:
+ecbl0600:
+ecbl0700:
+ecbl0800:
+ecbl0900:
+ecbl1000:
+ecbl1095:
+ecbl1200:
+ecbl1440:
+ecbl1728:
+ecbl2074:
+ecbl2488:
+ecbl2986:
+ecbl3583:
+ecbx0500:
+ecbx0600:
+ecbx0700:
+ecbx0800:
+ecbx0900:
+ecbx1000:
+ecbx1095:
+ecbx1200:
+ecbx1440:
+ecbx1728:
+ecbx2074:
+ecbx2488:
+ecbx2986:
+ecbx3583:
+eccc0500:
+eccc0600:
+eccc0700:
+eccc0800:
+eccc0900:
+eccc1000:
+eccc1095:
+eccc1200:
+eccc1440:
+eccc1728:
+eccc2074:
+eccc2488:
+eccc2986:
+eccc3583:
+ecci0500:
+ecci0600:
+ecci0700:
+ecci0800:
+ecci0900:
+ecci1000:
+ecci1095:
+ecci1200:
+ecci1440:
+ecci1728:
+ecci2074:
+ecci2488:
+ecci2986:
+ecci3583:
+ecdh0500:
+ecdh0600:
+ecdh0700:
+ecdh0800:
+ecdh0900:
+ecdh1000:
+ecdh1095:
+ecdh1200:
+ecdh1440:
+ecdh1728:
+ecdh2074:
+ecdh2488:
+ecdh2986:
+ecdh3583:
+ecit0800:
+ecit0900:
+ecit1000:
+ecit1095:
+ecit1200:
+ecit1440:
+ecit1728:
+ecit2074:
+ecit2488:
+ecit2986:
+ecit3583:
+eclb8:
+ecli8:
+eclo8:
+eclq8:
+ecltt8:
+ecoc0500:
+ecoc0600:
+ecoc0700:
+ecoc0800:
+ecoc0900:
+ecoc1000:
+ecoc1095:
+ecoc1200:
+ecoc1440:
+ecoc1728:
+ecoc2074:
+ecoc2488:
+ecoc2986:
+ecoc3583:
+ecrb0500:
+ecrb0600:
+ecrb0700:
+ecrb0800:
+ecrb0900:
+ecrb1000:
+ecrb1095:
+ecrb1200:
+ecrb1440:
+ecrb1728:
+ecrb2074:
+ecrb2488:
+ecrb2986:
+ecrb3583:
+ecrm0500:
+ecrm0600:
+ecrm0700:
+ecrm0800:
+ecrm0900:
+ecrm1000:
+ecrm1095:
+ecrm1200:
+ecrm1440:
+ecrm1728:
+ecrm2074:
+ecrm2488:
+ecrm2986:
+ecrm3583:
+ecsc0500:
+ecsc0600:
+ecsc0700:
+ecsc0800:
+ecsc0900:
+ecsc1000:
+ecsc1095:
+ecsc1200:
+ecsc1440:
+ecsc1728:
+ecsc2074:
+ecsc2488:
+ecsc2986:
+ecsc3583:
+ecsi0500:
+ecsi0600:
+ecsi0700:
+ecsi0800:
+ecsi0900:
+ecsi1000:
+ecsi1095:
+ecsi1200:
+ecsi1440:
+ecsi1728:
+ecsi2074:
+ecsi2488:
+ecsi2986:
+ecsi3583:
+ecsl0500:
+ecsl0600:
+ecsl0700:
+ecsl0800:
+ecsl0900:
+ecsl1000:
+ecsl1095:
+ecsl1200:
+ecsl1440:
+ecsl1728:
+ecsl2074:
+ecsl2488:
+ecsl2986:
+ecsl3583:
+ecso0500:
+ecso0600:
+ecso0700:
+ecso0800:
+ecso0900:
+ecso1000:
+ecso1095:
+ecso1200:
+ecso1440:
+ecso1728:
+ecso2074:
+ecso2488:
+ecso2986:
+ecso3583:
+ecss0500:
+ecss0600:
+ecss0700:
+ecss0800:
+ecss0900:
+ecss1000:
+ecss1095:
+ecss1200:
+ecss1440:
+ecss1728:
+ecss2074:
+ecss2488:
+ecss2986:
+ecss3583:
+ecst0800:
+ecst0900:
+ecst1000:
+ecst1095:
+ecst1200:
+ecst1440:
+ecst1728:
+ecst2074:
+ecst2488:
+ecst2986:
+ecst3583:
+ecsx0500:
+ecsx0600:
+ecsx0700:
+ecsx0800:
+ecsx0900:
+ecsx1000:
+ecsx1095:
+ecsx1200:
+ecsx1440:
+ecsx1728:
+ecsx2074:
+ecsx2488:
+ecsx2986:
+ecsx3583:
+ectc0800:
+ectc0900:
+ectc1000:
+ectc1095:
+ectc1200:
+ectc1440:
+ectc1728:
+ectc2074:
+ectc2488:
+ectc2986:
+ectc3583:
+ecti0500:
+ecti0600:
+ecti0700:
+ecti0800:
+ecti0900:
+ecti1000:
+ecti1095:
+ecti1200:
+ecti1440:
+ecti1728:
+ecti2074:
+ecti2488:
+ecti2986:
+ecti3583:
+ectt0800:
+ectt0900:
+ectt1000:
+ectt1095:
+ectt1200:
+ectt1440:
+ectt1728:
+ectt2074:
+ectt2488:
+ectt2986:
+ectt3583:
+ecui0500:
+ecui0600:
+ecui0700:
+ecui0800:
+ecui0900:
+ecui1000:
+ecui1095:
+ecui1200:
+ecui1440:
+ecui1728:
+ecui2074:
+ecui2488:
+ecui2986:
+ecui3583:
+ecvi0800:
+ecvi0900:
+ecvi1000:
+ecvi1095:
+ecvi1200:
+ecvi1440:
+ecvi1728:
+ecvi2074:
+ecvi2488:
+ecvi2986:
+ecvi3583:
+ecvt0800:
+ecvt0900:
+ecvt1000:
+ecvt1095:
+ecvt1200:
+ecvt1440:
+ecvt1728:
+ecvt2074:
+ecvt2488:
+ecvt2986:
+ecvt3583:
+ecxc0500:
+ecxc0600:
+ecxc0700:
+ecxc0800:
+ecxc0900:
+ecxc1000:
+ecxc1095:
+ecxc1200:
+ecxc1440:
+ecxc1728:
+ecxc2074:
+ecxc2488:
+ecxc2986:
+ecxc3583:
+eocc10:
+eorm10:
+eorm5:
+eorm6:
+eorm7:
+eorm8:
+eorm9:
+eosl10:
+eosl5:
+eosl6:
+eosl7:
+eosl8:
+eosl9:
+eoti10:
+ieclb8:
+iecli8:
+ieclo8:
+ieclq8:
+iecltt8:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/afii61664/perthousandzero/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/uni2423
+/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/hyphen.alt/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash
+/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron
+/Tcommaaccent/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent/IJ
+/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron/dcaron/ecaron
+/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute
+/rcaron/sacute/scaron/scedilla/tcaron/tcommaaccent/uhungarumlaut/uring
+/ydieresis/zacute/zcaron/zdotaccent/ij/exclamdown/questiondown/sterling
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute
+/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve
+/Oacute/Ocircumflex/Otilde/Odieresis/OE/Oslash/Ugrave/Uacute/Ucircumflex
+/Udieresis/Yacute/Thorn/SS/agrave/aacute/acircumflex/atilde/adieresis/aring
+/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex
+/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/oe/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/germandbls]
+mathb10:
+mathb12:
+mathb5:
+mathb6:
+mathb7:
+mathb8:
+mathb9:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/.notdef/.notdef
+/visualspace/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater
+/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/.notdef/T/.notdef/V/W/X/Y/Z
+/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d
+/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright
+/asciitilde/sfthyphen/Abreve/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek
+/Gbreve/Lacute/Lcaron/Lslash/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron
+/Sacute/Scaron/Scedilla/Tcaron/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute
+/Zcaron/Zdotaccent/IJ/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron
+/dcaron/ecaron/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng
+/ohungarumlaut/racute/rcaron/sacute/scaron/scedilla/tcaron/tcedilla
+/uhungarumlaut/uring/ydieresis/zacute/zcaron/zdotaccent/ij/exclamdown
+/questiondown/sterling/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/OE/Oslash
+/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/SS/agrave/aacute
+/acircumflex/atilde/adieresis/aring/.notdef/.notdef/egrave/eacute
+/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve
+/oacute/ocircumflex/otilde/odieresis/oe/oslash/ugrave/uacute/.notdef
+/udieresis/yacute/thorn/germandbls]
+frcbx10:
+frcbx14:
+frcbx6:
+frcc10:
+frcc14:
+frcc6:
+frcf10:
+frcf14:
+frcf6:
+frcr10:
+frcr14:
+frcr6:
+frcsl10:
+frcsl14:
+frcsl6:
+frcslbx10:
+frcslbx14:
+frcslbx6:
+frcslc10:
+frcslc14:
+frcslc6:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/.notdef/exclam
+/quotedbl 3{/.notdef}repeat/ampersand/quoteright/parenleft/parenright
+/.notdef/.notdef/comma/hyphen/period/slash/zero/one/two/three/four/five/six
+/seven/eight/nine/colon/semicolon/less/.notdef/greater/question/.notdef/A/B
+/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/.notdef/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p
+/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/.notdef/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash
+/Nacute/Ncaron/.notdef/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla
+/Tcaron/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent
+/.notdef/Idotaccent/.notdef/.notdef/abreve/aogonek/cacute/ccaron/dcaron
+/ecaron/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/.notdef
+/ohungarumlaut/racute/rcaron/sacute/scaron/scedilla/tcaron/tcedilla
+/uhungarumlaut/uring/ydieresis/zacute/zcaron/zdotaccent/.notdef/exclamdown
+/questiondown/.notdef/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring
+/.notdef/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute
+/Icircumflex/Idieresis/.notdef/Ntilde/Ograve/Oacute/Ocircumflex/Otilde
+/Odieresis/.notdef/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/.notdef
+/.notdef/agrave/aacute/acircumflex/atilde/adieresis/aring/.notdef/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/.notdef/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/oe/oslash/ugrave
+/uacute/ucircumflex/udieresis/yacute/.notdef/.notdef]
+ygoth:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/.notdef/exclam
+/quotedbl/numbersign/dollar/.notdef/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question
+/.notdef/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j
+/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar 131{/.notdef}repeat]
+ssmsbm10:
+ssmsbm5:
+ssmsbm6:
+ssmsbm7:
+ssmsbm8:
+ssmsbm9:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/.notdef/quoteleft/a 4{/.notdef}repeat/f/g/h/i/j/k
+/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/sfthyphen
+128{/.notdef}repeat]
+xslhz20:
+xslhz20d:
+xtie20:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c 28{/.notdef}repeat
+/Abreve/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron
+/Lslash/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla
+/Tcaron/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent/IJ
+/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron/dcaron/ecaron
+/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute
+/rcaron/sacute/scaron/scedilla/tcaron/tcedilla/uhungarumlaut/uring/ydieresis
+/zacute/zcaron/zdotaccent/ij/exclamdown/questiondown/sterling/Agrave/Aacute
+/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex
+/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute
+/Ocircumflex/Otilde/Odieresis/OE/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis
+/Yacute/Thorn/SS/agrave/aacute/acircumflex/atilde 28{/.notdef}repeat]
+xslz20:
+xslz20d:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k 148{
+/.notdef}repeat]
+musix24:
+musix29:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/.notdef/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash
+/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron
+/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent/IJ
+/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron/dcaron/ecaron
+/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute
+/rcaron/sacute/scaron/scedilla/tcaron/tcedilla/uhungarumlaut/uring/ydieresis
+/zacute/zcaron/zdotaccent 4{/.notdef}repeat/Agrave/Aacute/Acircumflex/Atilde
+/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave
+/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde
+/Odieresis/OE/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/SS
+/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute
+/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve
+/oacute/ocircumflex/otilde/odieresis/oe/oslash/ugrave/uacute/ucircumflex 4{
+/.notdef}repeat]
+cmssex10:
+cmssex7:
+cmssex8:
+cmssex9:
+cmssmi10:
+cmssmi5:
+cmssmi6:
+cmssmi7:
+cmssmi8:
+cmssmi9:
+cmssmib10:
+cmssmib5:
+cmssmib6:
+cmssmib7:
+cmssmib8:
+cmssmib9:
+lcmbsy8:
+lcmex8:
+lcmmi8:
+lcmmib8:
+lcmsy8:
+llcmss8:
+llcmssb8:
+llcmssi8:
+llcmsso8:
+ssmsam10:
+ssmsam5:
+ssmsam6:
+ssmsam7:
+ssmsam8:
+ssmsam9:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/sfthyphen 128{
+/.notdef}repeat]
+ocrb10:
+ocrb5:
+ocrb6:
+ocrb7:
+ocrb8:
+ocrb9:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/sfthyphen/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron 118{
+/.notdef}repeat]
+musix11:
+musix13:
+musix16:
+musix20:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/sfthyphen/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash
+/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron
+/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent/IJ
+/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron/dcaron/ecaron
+/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute
+/rcaron/sacute/scaron/scedilla/tcaron/tcedilla/uhungarumlaut/uring/ydieresis
+/zacute/zcaron/zdotaccent 4{/.notdef}repeat/Agrave/Aacute/Acircumflex/Atilde
+/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave
+/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde
+/Odieresis/OE/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/SS
+/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute
+/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve
+/oacute/ocircumflex/otilde/odieresis/oe/oslash/ugrave/uacute/ucircumflex 4{
+/.notdef}repeat]
+musixsps:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/sfthyphen/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash
+/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron
+/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent/IJ
+/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron/dcaron/ecaron
+/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute
+/rcaron/sacute/scaron/scedilla/tcaron/tcedilla/uhungarumlaut/uring/ydieresis
+/zacute/zcaron/zdotaccent/ij/exclamdown/questiondown/sterling/Agrave/Aacute
+/Acircumflex/Atilde 60{/.notdef}repeat]
+bxghsb:
+bxghsm:
+bxghwb:
+bxghwm:
+bxgvsb:
+bxgvsm:
+bxgvwb:
+bxgvwm:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/sfthyphen/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash
+/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron
+/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent/IJ
+/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron/dcaron/ecaron
+/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute
+/rcaron/sacute/scaron/scedilla/tcaron/tcedilla/uhungarumlaut/uring/ydieresis
+/zacute/zcaron/zdotaccent/ij/exclamdown/questiondown/sterling/Agrave/Aacute
+/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex
+/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute
+/Ocircumflex/Otilde/Odieresis/OE/Oslash/Ugrave/Uacute/Ucircumflex 35{
+/.notdef}repeat/germandbls]
+musixspx:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/sfthyphen/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash
+/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron
+/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent/IJ
+/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron/dcaron/ecaron
+/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute
+/rcaron/sacute/scaron/scedilla/tcaron/tcedilla/uhungarumlaut/uring/ydieresis
+/zacute/zcaron/zdotaccent/ij/exclamdown/questiondown/sterling/Agrave/Aacute
+/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex
+/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute
+/Ocircumflex/Otilde/Odieresis/OE/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis
+/Yacute/Thorn/SS/agrave/aacute/acircumflex/atilde/adieresis/aring/ae
+/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex
+/idieresis/eth/ntilde/ograve/oacute 12{/.notdef}repeat]
+eczi0500:
+eczi0600:
+eczi0700:
+eczi0800:
+eczi0900:
+eczi1000:
+eczi1095:
+eczi1200:
+eczi1440:
+eczi1728:
+eczi2074:
+eczi2488:
+eczi2986:
+eczi3583:
+eczo0500:
+eczo0600:
+eczo0700:
+eczo0800:
+eczo0900:
+eczo1000:
+eczo1095:
+eczo1200:
+eczo1440:
+eczo1728:
+eczo2074:
+eczo2488:
+eczo2986:
+eczo3583:
+eczx0500:
+eczx0600:
+eczx0700:
+eczx0800:
+eczx0900:
+eczx1000:
+eczx1095:
+eczx1200:
+eczx1440:
+eczx1728:
+eczx2074:
+eczx2488:
+eczx2986:
+eczx3583:
+eczz0500:
+eczz0600:
+eczz0700:
+eczz0800:
+eczz0900:
+eczz1000:
+eczz1095:
+eczz1200:
+eczz1440:
+eczz1728:
+eczz2074:
+eczz2488:
+eczz2986:
+eczz3583:
+leclb8:
+lecli8:
+leclo8:
+leclq8:
+tipa10:
+tipa12:
+tipa17:
+tipa8:
+tipa9:
+tipab10:
+tipabs10:
+tipabx10:
+tipabx12:
+tipabx8:
+tipabx9:
+tipasb10:
+tipasi10:
+tipasl10:
+tipasl12:
+tipasl8:
+tipasl9:
+tipass10:
+tipass12:
+tipass17:
+tipass8:
+tipass9:
+tipats10:
+tipatt10:
+tipatt12:
+tipatt8:
+tipatt9:
+xipa10:
+xipab10:
+xipabs10:
+xipasb10:
+xipasi10:
+xipasl10:
+xipass10:
+xsld11:
+xsld11d:
+xsld13:
+xsld13d:
+xsld16:
+xsld16d:
+xsld20:
+xsld20d:
+xsld24:
+xsld24d:
+xsld29:
+xsld29d:
+xsldd20:
+xsldu20:
+xslhd11:
+xslhd11d:
+xslhd13:
+xslhd13d:
+xslhd16:
+xslhd16d:
+xslhd20:
+xslhd20d:
+xslhd24:
+xslhd24d:
+xslhd29:
+xslhd29d:
+xslhu11:
+xslhu11d:
+xslhu13:
+xslhu13d:
+xslhu16:
+xslhu16d:
+xslhu20:
+xslhu20d:
+xslhu24:
+xslhu24d:
+xslhu29:
+xslhu29d:
+xslu11:
+xslu11d:
+xslu13:
+xslu13d:
+xslu16:
+xslu16d:
+xslu20:
+xslu20d:
+xslu24:
+xslu24d:
+xslu29:
+xslu29d:
+xslud20:
+xslup20:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/space/exclam
+/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/sfthyphen/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash
+/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron
+/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent/IJ
+/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron/dcaron/ecaron
+/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute
+/rcaron/sacute/scaron/scedilla/tcaron/tcedilla/uhungarumlaut/uring/ydieresis
+/zacute/zcaron/zdotaccent/ij/exclamdown/questiondown/sterling/Agrave/Aacute
+/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex
+/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute
+/Ocircumflex/Otilde/Odieresis/OE/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis
+/Yacute/Thorn/SS/agrave/aacute/acircumflex/atilde/adieresis/aring/ae
+/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex
+/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/oe/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/germandbls]
+matha10:
+matha12:
+matha5:
+matha6:
+matha7:
+matha8:
+matha9:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/visualspace
+/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/sfthyphen/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash
+/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron
+/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent/IJ
+/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron/dcaron/ecaron
+/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute
+/rcaron/sacute/scaron/scedilla/tcaron/tcedilla/uhungarumlaut/uring/ydieresis
+/zacute/zcaron/zdotaccent/ij/exclamdown/questiondown/sterling/Agrave/Aacute
+/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex
+/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute
+/Ocircumflex/Otilde/Odieresis/OE/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis
+/Yacute/Thorn/SS/agrave/aacute/acircumflex/atilde/adieresis/aring/ae
+/ccedilla/egrave/eacute/ecircumflex/edieresis 4{/.notdef}repeat/eth/ntilde
+/ograve/oacute/ocircumflex/otilde/odieresis/oe/oslash/ugrave/uacute
+/ucircumflex 4{/.notdef}repeat]
+mathx10:
+mathx12:
+mathx5:
+mathx6:
+mathx7:
+mathx8:
+mathx9:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/cwm/perthousand/dotlessi/dotlessj/ff/fi/fl/ffi/ffl/visualspace
+/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
+/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
+/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A
+/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
+/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o
+/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/sfthyphen/Abreve
+/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute/Lcaron/Lslash
+/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron/Scedilla/Tcaron
+/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron/Zdotaccent/IJ
+/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron/dcaron/ecaron
+/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut/racute
+/rcaron/sacute/scaron/scedilla/tcaron/tcedilla/uhungarumlaut/uring/ydieresis
+/zacute/zcaron/zdotaccent/ij/exclamdown/questiondown/sterling/Agrave/Aacute
+/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex
+/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute
+/Ocircumflex/Otilde/Odieresis/OE/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis
+/Yacute/Thorn/SS/agrave/aacute/acircumflex/atilde/adieresis/aring/ae
+/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex
+/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/oe/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/germandbls]
+ffmb10:
+ffmb8:
+ffmb9:
+ffmbc40:
+ffmbco40:
+ffmbo10:
+ffmbo8:
+ffmbo9:
+ffmbw10:
+ffmbwo10:
+ffmc10:
+ffmco10:
+ffmh10:
+ffmh8:
+ffmh9:
+ffmho10:
+ffmho8:
+ffmho9:
+ffmhw10:
+ffmhwo10:
+ffml10:
+ffmlc10:
+ffmlco10:
+ffmlo10:
+ffmlq10:
+ffmlqo10:
+ffmlw10:
+ffmlwo10:
+ffmo10:
+ffmo8:
+ffmo9:
+ffmr10:
+ffmr8:
+ffmr9:
+ffmw10:
+ffmwo10:
+[/grave/acute/circumflex/tilde/dieresis/hungarumlaut/ring/caron/breve/macron
+/dotaccent/cedilla/ogonek/quotesinglbase/guilsinglleft/guilsinglright
+/quotedblleft/quotedblright/quotedblbase/guillemotleft/guillemotright/endash
+/emdash/zerowidthspace/uniE000/dotlessi/dotlessj/ff/fi/fl/ffi/ffl
+/visiblespace/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two
+/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater
+/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
+/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j
+/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/hyphentwo/Abreve/Aogonek/Cacute/Ccaron/Dcaron/Ecaron/Eogonek/Gbreve/Lacute
+/Lcaron/Lslash/Nacute/Ncaron/Eng/Ohungarumlaut/Racute/Rcaron/Sacute/Scaron
+/Scedilla/Tcaron/Tcedilla/Uhungarumlaut/Uring/Ydieresis/Zacute/Zcaron
+/Zdotaccent/IJ/Idotaccent/dcroat/section/abreve/aogonek/cacute/ccaron/dcaron
+/ecaron/eogonek/gbreve/lacute/lcaron/lslash/nacute/ncaron/eng/ohungarumlaut
+/racute/rcaron/sacute/scaron/scedilla/tcaron/tcedilla/uhungarumlaut/uring
+/ydieresis/zacute/zcaron/zdotaccent/ij/exclamdown/questiondown/sterling
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute
+/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve
+/Oacute/Ocircumflex/Otilde/Odieresis/OE/Oslash/Ugrave/Uacute/Ucircumflex
+/Udieresis/Yacute/Thorn/uni1E9E/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute
+/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis
+/oe/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/germandbls]
+cmbrbs10:
+cmbrbs8:
+cmbrbs9:
+lmsbm8:
+msbm10:
+msbm5:
+msbm6:
+msbm7:
+msbm8:
+msbm9:
+[/lessornotequal/greaterornotequal/notlessequal/notgreaterequal/notless
+/notgreater/notprecedes/notfollows/lessornotdbleql/greaterornotdbleql
+/notlessorslnteql/notgreaterorslnteql/lessnotequal/greaternotequal
+/notprecedesoreql/notfollowsoreql/precedeornoteqvlnt/followornoteqvlnt
+/lessornotsimilar/greaterornotsimilar/notlessdblequal/notgreaterdblequal
+/precedenotslnteql/follownotslnteql/precedenotdbleqv/follownotdbleqv
+/lessnotdblequal/greaternotdblequal/notsimilar/notapproxequal/upslope
+/downslope/notsubsetoreql/notsupersetoreql/notsubsetordbleql
+/notsupersetordbleql/subsetornotdbleql/supersetornotdbleql/subsetornoteql
+/supersetornoteql/subsetnoteql/supersetnoteql/notsubseteql/notsuperseteql
+/notparallel/notbar/notshortbar/notshortparallel/notturnstile/notforces
+/notsatisfies/notforcesextra/nottriangeqlright/nottriangeqlleft
+/nottriangleleft/nottriangleright/notarrowleft/notarrowright/notdblarrowleft
+/notdblarrowright/notdblarrowboth/notarrowboth/dividemultiply/emptyset
+/notexistential/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/hatwide
+/hatwider/tildewide/tildewider/.notdef/Finv/Gmir 4{/.notdef}repeat/Omegainv
+/eth/equalorsimilar/beth/gimel/daleth/lessdot/greaterdot/multicloseleft
+/multicloseright/barshort/parallelshort/integerdivide/similar/approxequal
+/approxorequal/followsorequal/precedesorequal/archleftdown/archrightdown
+/Digamma/kappa/k/planckover2pi/planckover2pi1/epsiloninv 128{/.notdef}repeat
+]
+cmbrsy10:
+cmbrsy8:
+cmbrsy9:
+cmbsy10:
+cmbsy5:
+cmbsy6:
+cmbsy7:
+cmbsy8:
+cmbsy9:
+cmssbsy10:
+cmssbsy5:
+cmssbsy6:
+cmssbsy7:
+cmssbsy8:
+cmssbsy9:
+cmsssy10:
+cmsssy5:
+cmsssy6:
+cmsssy7:
+cmsssy8:
+cmsssy9:
+cmsy10:
+cmsy5:
+cmsy6:
+cmsy7:
+cmsy8:
+cmsy9:
+cmsytt10:
+euxm10:
+euxm7:
+[/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus
+/minusplus/circleplus/circleminus/circlemultiply/circledivide/circledot
+/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset
+/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar
+/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes
+/follows/arrowleft/arrowright/arrowup/arrowdown/arrowboth/arrownortheast
+/arrowsoutheast/similarequal/arrowdblleft/arrowdblright/arrowdblup
+/arrowdbldown/arrowdblboth/arrownorthwest/arrowsouthwest/proportional/prime
+/infinity/element/owner/triangle/triangleinv/negationslash/mapsto/universal
+/existential/logicalnot/emptyset/Rfractur/Ifractur/latticetop/perpendicular
+/aleph/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/union
+/intersection/unionmulti/logicaland/logicalor/turnstileleft/turnstileright
+/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright
+/angbracketleft/angbracketright/bar/bardbl/arrowbothv/arrowdblbothv
+/backslash/wreathproduct/radical/coproduct/nabla/integral/unionsq
+/intersectionsq/subsetsqequal/supersetsqequal/section/dagger/daggerdbl
+/paragraph/club/diamond/heart/spade 128{/.notdef}repeat]
+plbsy10:
+plsy10:
+plsy5:
+plsy6:
+plsy7:
+plsy8:
+plsy9:
+[/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus
+/minusplus/circleplus/circleminus/circlemultiply/circledivide/circledot
+/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset
+/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar
+/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes
+/follows/arrowleft/arrowright/arrowup/arrowdown/arrowboth/arrownortheast
+/arrowsoutheast/similarequal/arrowdblleft/arrowdblright/arrowdblup
+/arrowdbldown/arrowdblboth/arrownorthwest/arrowsouthwest/proportional/prime
+/infinity/element/owner/triangle/triangleinv/negationslash/mapsto/universal
+/existential/logicalnot/emptyset/Rfractur/Ifractur/latticetop/perpendicular
+/aleph/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/union
+/intersection/unionmulti/logicaland/logicalor/turnstileleft/turnstileright
+/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright
+/angbracketleft/angbracketright/bar/bardbl/arrowbothv/arrowdblbothv
+/backslash/wreathproduct/radical/coproduct/nabla/integral/unionsq
+/intersectionsq/subsetsqequal/supersetsqequal/section/dagger/daggerdbl
+/paragraph/club/diamond/heart/spade 44{/.notdef}repeat/xlessequal
+/xgreaterequal 82{/.notdef}repeat]
+FdSymbolF-Bold:
+FdSymbolF-Book:
+FdSymbolF-Medium:
+FdSymbolF-Regular:
+MdSymbolF-Bold:
+MdSymbolF-Light:
+MdSymbolF-Regular:
+MdSymbolF-Semibold:
+[/parenleft/parenleft.big1/parenleft.big2/parenleft.big3/parenleft.big4
+/parenleft.big5/parenright/parenright.big1/parenright.big2/parenright.big3
+/parenright.big4/parenright.big5/uni239B/uni239E/uni239D/uni23A0/uni239C
+/uni239F/bracketleft/bracketleft.big1/bracketleft.big2/bracketleft.big3
+/bracketleft.big4/bracketleft.big5/bracketright/bracketright.big1
+/bracketright.big2/bracketright.big3/bracketright.big4/bracketright.big5
+/uni230A/uni230A.big1/uni230A.big2/uni230A.big3/uni230A.big4/uni230A.big5
+/uni230B/uni230B.big1/uni230B.big2/uni230B.big3/uni230B.big4/uni230B.big5
+/uni2308/uni2308.big1/uni2308.big2/uni2308.big3/uni2308.big4/uni2308.big5
+/uni2309/uni2309.big1/uni2309.big2/uni2309.big3/uni2309.big4/uni2309.big5
+/uni231C/uni231C.big1/uni231C.big2/uni231C.big3/uni231C.big4/uni231C.big5
+/uni231D/uni231D.big1/uni231D.big2/uni231D.big3/uni231D.big4/uni231D.big5
+/uni231E/uni231E.big1/uni231E.big2/uni231E.big3/uni231E.big4/uni231E.big5
+/uni231F/uni231F.big1/uni231F.big2/uni231F.big3/uni231F.big4/uni231F.big5
+/sym0A0/sym0A0.big1/sym0A0.big2/sym0A0.big3/sym0A0.big4/sym0A0.big5/sym0A1
+/sym0A1.big1/sym0A1.big2/sym0A1.big3/sym0A1.big4/sym0A1.big5/uni23A1/uni23A4
+/uni23A3/uni23A6/uni23A2/uni23A5/uni27E6/uni27E6.big1/uni27E6.big2
+/uni27E6.big3/uni27E6.big4/uni27E6.big5/uni27E7/uni27E7.big1/uni27E7.big2
+/uni27E7.big3/uni27E7.big4/uni27E7.big5/sym0A2/sym0A5/sym0A4/sym0A7/sym0A3
+/sym0A6/braceleft/braceleft.big1/braceleft.big2/braceleft.big3
+/braceleft.big4/braceleft.big5/braceright/braceright.big1/braceright.big2
+/braceright.big3/braceright.big4/braceright.big5/uni23A7/uni23AB/uni23A9
+/uni23AD/uni23A8/uni23AC/uni23AA/uni27E8/uni27E8.big1/uni27E8.big2
+/uni27E8.big3/uni27E8.big4/uni27E8.big5/uni27E9/uni27E9.big1/uni27E9.big2
+/uni27E9.big3/uni27E9.big4/uni27E9.big5/uni27EA/uni27EA.big1/uni27EA.big2
+/uni27EA.big3/uni27EA.big4/uni27EA.big5/uni27EB/uni27EB.big1/uni27EB.big2
+/uni27EB.big3/uni27EB.big4/uni27EB.big5/uni2991/uni2991.big1/uni2991.big2
+/uni2991.big3/uni2991.big4/uni2991.big5/uni2992/uni2992.big1/uni2992.big2
+/uni2992.big3/uni2992.big4/uni2992.big5/slash/slash.big1/slash.big2
+/slash.big3/slash.big4/slash.big5/backslash/backslash.big1/backslash.big2
+/backslash.big3/backslash.big4/backslash.big5/uni2223.short/uni2223
+/uni2223.big1/uni2224.short/uni2224/uni2224.big1/sym0A8/uni2225.short
+/uni2225/uni2225.big1/uni2226.short/uni2226/uni2226.big1/sym0A9/uni2980
+/uni2980.big1/sym0AA/arrowup.short/arrowdown.short/sym0AB/arrowdblup.short
+/arrowdbldown.short/sym0AC/sym0AD/sym0AF/sym0AE/sym0B0/sym0B2/sym0B3/sym0B1
+/radical.tex/radical.tex.big1/radical.tex.big2/radical.tex.big3
+/radical.tex.big4/radical.tex.big5/radical.tex.top/uni23B7.tex/radical.ex
+/radical/radical.big1/radical.big2/radical.big3/radical.big4/radical.big5
+/radical.top/uni23B7 28{/.notdef}repeat]
+cmex10:
+cmex7:
+cmex8:
+cmex9:
+cmexb10:
+plex10:
+[/parenleftbig/parenrightbig/bracketleftbig/bracketrightbig/floorleftbig
+/floorrightbig/ceilingleftbig/ceilingrightbig/braceleftbig/bracerightbig
+/angbracketleftbig/angbracketrightbig/vextendsingle/vextenddouble/slashbig
+/backslashbig/parenleftBig/parenrightBig/parenleftbigg/parenrightbigg
+/bracketleftbigg/bracketrightbigg/floorleftbigg/floorrightbigg
+/ceilingleftbigg/ceilingrightbigg/braceleftbigg/bracerightbigg
+/angbracketleftbigg/angbracketrightbigg/slashbigg/backslashbigg
+/parenleftBigg/parenrightBigg/bracketleftBigg/bracketrightBigg/floorleftBigg
+/floorrightBigg/ceilingleftBigg/ceilingrightBigg/braceleftBigg
+/bracerightBigg/angbracketleftBigg/angbracketrightBigg/slashBigg
+/backslashBigg/slashBig/backslashBig/parenlefttp/parenrighttp/bracketlefttp
+/bracketrighttp/bracketleftbt/bracketrightbt/bracketleftex/bracketrightex
+/bracelefttp/bracerighttp/braceleftbt/bracerightbt/braceleftmid
+/bracerightmid/braceex/arrowvertex/parenleftbt/parenrightbt/parenleftex
+/parenrightex/angbracketleftBig/angbracketrightBig/unionsqtext
+/unionsqdisplay/contintegraltext/contintegraldisplay/circledottext
+/circledotdisplay/circleplustext/circleplusdisplay/circlemultiplytext
+/circlemultiplydisplay/summationtext/producttext/integraltext/uniontext
+/intersectiontext/unionmultitext/logicalandtext/logicalortext
+/summationdisplay/productdisplay/integraldisplay/uniondisplay
+/intersectiondisplay/unionmultidisplay/logicalanddisplay/logicalordisplay
+/coproducttext/coproductdisplay/hatwide/hatwider/hatwidest/tildewide
+/tildewider/tildewidest/bracketleftBig/bracketrightBig/floorleftBig
+/floorrightBig/ceilingleftBig/ceilingrightBig/braceleftBig/bracerightBig
+/radicalbig/radicalBig/radicalbigg/radicalBigg/radicalbt/radicalvertex
+/radicaltp/arrowvertexdbl/arrowtp/arrowbt/bracehtipdownleft
+/bracehtipdownright/bracehtipupleft/bracehtipupright/arrowdbltp/arrowdblbt
+128{/.notdef}repeat]
+MnSymbolF-Bold10:
+MnSymbolF-Bold12:
+MnSymbolF-Bold5:
+MnSymbolF-Bold6:
+MnSymbolF-Bold7:
+MnSymbolF-Bold8:
+MnSymbolF-Bold9:
+MnSymbolF10:
+MnSymbolF12:
+MnSymbolF5:
+MnSymbolF6:
+MnSymbolF7:
+MnSymbolF8:
+MnSymbolF9:
+[/plus.big/plus.big.disp/uni2A09/uni2A09.disp/uni22C0/uni22C0.disp/uni22C1
+/uni22C1.disp/wedgedot.big/wedgedot.big.disp/veedot.big/veedot.big.disp
+/uni2A55.big/uni2A55.big.disp/uni2A54.big/uni2A54.big.disp/curlyand.big
+/curlyand.big.disp/curlyor.big/curlyor.big.disp/curlywedgedot.big
+/curlywedgedot.big.disp/curlyveedot.big/curlyveedot.big.disp
+/doublecurlywedge.big/doublecurlywedge.big.disp/doublecurlyvee.big
+/doublecurlyvee.big.disp/uni22C2/uni22C2.disp/uni22C3/uni22C3.disp
+/uni2A40.big/uni2A40.big.disp/uni228D.big/uni228D.big.disp/capplus.big
+/capplus.big.disp/uni228E.big/uni228E.big.disp/uni2293.big/uni2293.big.disp
+/uni2294.big/uni2294.big.disp/sqcapdot.big/sqcapdot.big.disp/sqcupdot.big
+/sqcupdot.big.disp/sqcapplus.big/sqcapplus.big.disp/sqcupplus.big
+/sqcupplus.big.disp/uni25EF.big/uni25EF.big.disp/uni2296.big
+/uni2296.big.disp/uni29B6.big/uni29B6.big.disp/uni2298.big/uni2298.big.disp
+/uni29B8.big/uni29B8.big.disp/uni2295.big/uni2295.big.disp/uni2297.big
+/uni2297.big.disp/uni2299.big/uni2299.big.disp/uni229A.big/uni229A.big.disp
+/otriangle.big/otriangle.big.disp/uni229B.big/uni229B.big.disp/uni235F.big
+/uni235F.big.disp/product/product.disp/uni2210/uni2210.disp/summation
+/summation.disp/integral/integral.disp/uni222C/uni222C.disp/uni222D
+/uni222D.disp/uni2A0C/uni2A0C.disp/uni222B2026222B/uni222B2026222B.disp
+/uni2A19/uni2A19.disp/uni2A1A/uni2A1A.disp/uni2A0F/uni2A0F.disp/uni222E
+/uni222E.disp/uni222F/uni222F.disp/uni2233/uni2233.disp/uni2232.alt1
+/uni2232.disp.alt1/uni2233.alt1/uni2233.disp.alt1/uni2232/uni2232.disp
+/uni2A0B/uni2A0B.disp/uni222B2026222B.part/uni222B2026222B.part.disp
+/uni2A19.part/uni2A19.part.disp/uni2A1A.part/uni2A1A.part.disp/uni2A0F.part
+/uni2A0F.part.disp/uni222E.part/uni222E.part.disp/uni222F.part
+/uni222F.part.disp/uni2233.part/uni2233.part.disp/uni2232.part.alt1
+/uni2232.part.disp.alt1/uni2233.part.alt1/uni2233.part.disp.alt1
+/uni2232.part/uni2232.part.disp/uni2A0B.part/uni2A0B.part.disp/uni2201
+/uni2201.disp 120{/.notdef}repeat]
+stmary10:
+stmary5:
+stmary6:
+stmary7:
+stmary8:
+stmary9:
+[/shortleftarrow/shortrightarrow/shortuparrow/shortdownarrow/Yup/Ydown/Yleft
+/Yright/varcurlyvee/varcurlywedge/minuso/baro/sslash/bbslash/moo/varotimes
+/varoast/varobar/varodot/varoslash/varobslash/varocircle/varoplus/varominus
+/boxast/boxbar/boxdot/boxslash/boxbslash/boxcircle/boxbox/boxempty/lightning
+/merge/vartimes/fatsemi/ssearrow/curlywedgeuparrow/sswarrow
+/curlywedgedownarrow/fatslash/fatbslash/lbag/rbag/varbigcirc
+/leftrightarroweq/curlyveedownarrow/curlyveeuparrow/nnwarrow/nnearrow
+/leftslice/rightslice/varolessthan/varogreaterthan/varovee/varowedge
+/talloblong/interleave/obar/obslash/olessthan/ogreaterthan/ovee/owedge
+/oblong/inplus/niplus/nplus/subsetplus/supsetplus/subsetpluseq/supsetpluseq
+/Lbag/Rbag/llbracket/rrbracket/llparenthesis/rrparenthesis/binampersand
+/bindnasrepma/trianglelefteqslant/trianglerighteqslant/ntrianglelefteqslant
+/ntrianglerighteqslant/llfloor/rrfloor/llceil/rrceil/arrownot/Arrownot
+/Mapstochar/mapsfromchar/Mapsfromchar/leftrightarrowtriangle
+/leftarrowtriangle/rightarrowtriangle/bigtriangledown/bigtriangleup
+/bigcurlyvee/bigcurlywedge/bigsqcap/bigbox/bigparallel/biginterleave
+/hugetriangledown/hugetriangleup/hugecurlyvee/hugecurlywedge/hugesqcap
+/hugebox/hugeparallel/hugeinterleave/hugenplus/largellbracket/Largellbracket
+/LARGEllbracket/hugellbracket/Hugellbrackettop/Hugellbracketbot
+/Hugellbracketex/Hugenplus/largerrbracket/Largerrbracket/LARGErrbracket
+/hugerrbracket/Hugerrbrackettop/Hugerrbracketbot/Hugerrbracketex 128{
+/.notdef}repeat]
+skt10:
+skt8:
+skt9:
+sktb10:
+sktbs10:
+sktf10:
+sktfs10:
+skts10:
+[/skt000/skt001/skt002/skt003/skt004/skt005/skt006/skt007/skt008/skt009
+/skt010/skt011/skt012/skt013/skt014/skt015/skt016/skt017/skt018/skt019
+/skt020/skt021/skt022/skt023/skt024/skt025/skt026/skt027/skt028/skt029
+/skt030/skt031/skt032/skt033/skt034/skt035/skt036/skt037/skt038/skt039
+/skt040/skt041/skt042/skt043/skt044/skt045/skt046/skt047/skt048/skt049
+/skt050/skt051/skt052/skt053/skt054/skt055/skt056/skt057/skt058/skt059
+/skt060/skt061/skt062/skt063/skt064/skt065/skt066/skt067/skt068/skt069
+/skt070/skt071/skt072/skt073/skt074/skt075/skt076/skt077/skt078/skt079
+/skt080/skt081/skt082/skt083/skt084/skt085/skt086/skt087/skt088/skt089
+/skt090/skt091/skt092/skt093/skt094/skt095/skt096/skt097/skt098/skt099
+/skt100/skt101/skt102/skt103/skt104/skt105/skt106/skt107/skt108/skt109
+/skt110/skt111/skt112/skt113/skt114/skt115/skt116/skt117/skt118/skt119
+/skt120/skt121/skt122/skt123/skt124/skt125/skt126/skt127/skt128/skt129
+/skt130/skt131/skt132/skt133/skt134/skt135/skt136/skt137/skt138/skt139
+/skt140/skt141/skt142/skt143/skt144/skt145/skt146/skt147/skt148/skt149
+/skt150/skt151/skt152/skt153/skt154/skt155/skt156/skt157/skt158/skt159
+/skt160/skt161/skt162/skt163/skt164/skt165/skt166/skt167/skt168/skt169
+/skt170/skt171/skt172/skt173/skt174/skt175/skt176/skt177/skt178/skt179
+/skt180/skt181/skt182/skt183/skt184/skt185/skt186/skt187/skt188/skt189
+/skt190/skt191/skt192/skt193/skt194/skt195/skt196/skt197/skt198/skt199
+/skt200/skt201/skt202/skt203/skt204/skt205/skt206/skt207/skt208/skt209
+/skt210/skt211/skt212/skt213/skt214/skt215/skt216/skt217/skt218/skt219
+/skt220/skt221/skt222/skt223/skt224/skt225/skt226/skt227/skt228/skt229
+/skt230/skt231/skt232/skt233/skt234/skt235/skt236/skt237/skt238/skt239
+/skt240/skt241/skt242/skt243/skt244/skt245/skt246/skt247/skt248/skt249
+/skt250/skt251/skt252/skt253/skt254/skt255]
+cmbras10:
+cmbras8:
+cmbras9:
+lmsam8:
+msam10:
+msam5:
+msam6:
+msam7:
+msam8:
+msam9:
+[/squaredot/squareplus/squaremultiply/square/squaresolid/squaresmallsolid
+/diamond/diamondsolid/clockwise/anticlockwise/harpoonleftright
+/harpoonrightleft/squareminus/forces/forcesbar/satisfies/dblarrowheadright
+/dblarrowheadleft/dblarrowleft/dblarrowright/dblarrowup/dblarrowdwn
+/harpoonupright/harpoondownright/harpoonupleft/harpoondownleft
+/arrowtailright/arrowtailleft/arrowparrleftright/arrowparrrightleft
+/shiftleft/shiftright/squiggleright/squiggleleftright/curlyleft/curlyright
+/circleequal/followsorequal/greaterorsimilar/greaterorapproxeql/multimap
+/therefore/because/equalsdots/defines/precedesorequal/lessorsimilar
+/lessorapproxeql/equalorless/equalorgreater/equalorprecedes/equalorfollows
+/precedesorcurly/lessdblequal/lessorequalslant/lessorgreater/primereverse
+/axisshort/equaldotrightleft/equaldotleftright/followsorcurly
+/greaterdblequal/greaterorequalslant/greaterorless/squareimage
+/squareoriginal/triangleright/triangleleft/trianglerightequal
+/triangleleftequal/star/between/triangledownsld/trianglerightsld
+/triangleleftsld/arrowaxisright/arrowaxisleft/triangle/trianglesolid
+/triangleinv/ringinequal/lessequalgreater/greaterlessequal/lessdbleqlgreater
+/greaterdbleqlless/Yen/arrowtripleright/arrowtripleleft/check/orunderscore
+/nand/perpcorrespond/angle/measuredangle/sphericalangle/proportional/smile
+/frown/subsetdbl/supersetdbl/uniondbl/intersectiondbl/uprise/downfall
+/multiopenleft/multiopenright/subsetdblequal/supersetdblequal/difference
+/geomequivalent/muchless/muchgreater/rightanglenw/rightanglene/circleR
+/circleS/fork/dotplus/revsimilar/revasymptequal/rightanglesw/rightanglese
+/maltesecross/complement/intercal/circlering/circleasterisk/circleminus 128{
+/.notdef}repeat]
+FdSymbolE-Bold:
+FdSymbolE-Book:
+FdSymbolE-Medium:
+FdSymbolE-Regular:
+[/sym090/sym090.disp/uni2A09/uni2A09.disp/uni22C0/uni22C0.disp/uni22C1
+/uni22C1.disp/sym091/sym091.disp/sym092/sym092.disp/uni2A07/uni2A07.disp
+/uni2A08/uni2A08.disp/sym093/sym093.disp/sym094/sym094.disp/uni22C2
+/uni22C2.disp/uni22C3/uni22C3.disp/sym095/sym095.disp/uni2A03/uni2A03.disp
+/sym096/sym096.disp/uni2A04/uni2A04.disp/uni2A05/uni2A05.disp/uni2A06
+/uni2A06.disp/sym097/sym097.disp/sym098/sym098.disp/sym099/sym099.disp
+/sym09A/sym09A.disp/uni2A01/uni2A01.disp/uni2A02/uni2A02.disp/uni2A00
+/uni2A00.disp/sym09B/sym09B.disp/product/product.disp/product.sf
+/product.sf.disp/uni2210/uni2210.disp/uni2210.sf/uni2210.sf.disp/summation
+/summation.disp/summation.sf/summation.sf.disp/uni2A0A/uni2A0A.disp
+/uni2A0A.sf/uni2A0A.sf.disp/integral/integral.disp/uni222C/uni222C.disp
+/uni222D/uni222D.disp/uni2A0C/uni2A0C.disp/uni222B22EF222B
+/uni222B22EF222B.disp/uni2231/uni2231.disp/uni2A11/uni2A11.disp/uni2A0D
+/uni2A0D.disp/uni2A0E/uni2A0E.disp/uni2A0F/uni2A0F.disp/uni222E/uni222E.disp
+/uni222F/uni222F.disp/uni2230/uni2230.disp/uni2233/uni2233.disp/uni2232.alt
+/uni2232.alt.disp/uni2233.alt/uni2233.alt.disp/uni2232/uni2232.disp/uni2A0B
+/uni2A0B.disp/uni2A0B.sf/uni2A0B.sf.disp 8{/.notdef}repeat/uni0302
+/uni0302.big1/uni0302.big2/uni0302.big3/uni0302.big4/uni0302.big5/uni0303
+/uni0303.big1/uni0303.big2/uni0303.big3/uni0303.big4/uni0303.big5/uni0311
+/uni0311.big1/uni0311.big2/uni0311.big3/uni0311.big4/uni0311.big5/uni20D7
+/uni0335/uni0337/uni0338 120{/.notdef}repeat]
+MdSymbolE-Bold:
+MdSymbolE-Light:
+MdSymbolE-Regular:
+MdSymbolE-Semibold:
+[/sym090/sym090.disp/uni2A09/uni2A09.disp/uni22C0/uni22C0.disp/uni22C1
+/uni22C1.disp/sym091/sym091.disp/sym092/sym092.disp/uni2A07/uni2A07.disp
+/uni2A08/uni2A08.disp/sym093/sym093.disp/sym094/sym094.disp/uni22C2
+/uni22C2.disp/uni22C3/uni22C3.disp/sym095/sym095.disp/uni2A03/uni2A03.disp
+/sym096/sym096.disp/uni2A04/uni2A04.disp/uni2A05/uni2A05.disp/uni2A06
+/uni2A06.disp/sym097/sym097.disp/sym098/sym098.disp/sym099/sym099.disp
+/sym09A/sym09A.disp/uni2A01/uni2A01.disp/uni2A02/uni2A02.disp/uni2A00
+/uni2A00.disp/sym09B/sym09B.disp/product/product.disp/uni2210/uni2210.disp
+/summation/summation.disp/uni2A0A/uni2A0A.disp/integral/integral.disp
+/uni222C/uni222C.disp/uni222D/uni222D.disp/uni2A0C/uni2A0C.disp
+/uni222B22EF222B/uni222B22EF222B.disp/uni2231/uni2231.disp/uni2A11
+/uni2A11.disp/uni2A0D/uni2A0D.disp/uni2A0E/uni2A0E.disp/uni2A0F/uni2A0F.disp
+/uni222E/uni222E.disp/uni222F/uni222F.disp/uni2230/uni2230.disp/uni2233
+/uni2233.disp/uni2232.alt/uni2232.alt.disp/uni2233.alt/uni2233.alt.disp
+/uni2232/uni2232.disp/uni2A0B/uni2A0B.disp/sym09C/sym09C.disp/sym09D
+/sym09D.disp 14{/.notdef}repeat/uni0302/uni0302.big1/uni0302.big2
+/uni0302.big3/uni0302.big4/uni0302.big5/uni0303/uni0303.big1/uni0303.big2
+/uni0303.big3/uni0303.big4/uni0303.big5/uni0311/uni0311.big1/uni0311.big2
+/uni0311.big3/uni0311.big4/uni0311.big5/uni20D7/uni0335/uni0337/uni0338 120{
+/.notdef}repeat]
+dvnb10:
+dvnb8:
+dvnb9:
+dvnbb10:
+dvnbb8:
+dvnbb9:
+dvnbbi10:
+dvnbbi8:
+dvnbbi9:
+dvnbi10:
+dvnbi8:
+dvnbi9:
+dvnc10:
+dvnc8:
+dvnc9:
+dvncb10:
+dvncb8:
+dvncb9:
+dvncbi10:
+dvncbi8:
+dvncbi9:
+dvnci10:
+dvnci8:
+dvnci9:
+dvng10:
+dvng8:
+dvng9:
+dvngb10:
+dvngb8:
+dvngb9:
+dvngbi10:
+dvngbi8:
+dvngbi9:
+dvngi10:
+dvngi8:
+dvngi9:
+dvnn10:
+dvnn8:
+dvnn9:
+dvnnb10:
+dvnnb8:
+dvnnb9:
+dvnnbi10:
+dvnnbi8:
+dvnnbi9:
+dvnni10:
+dvnni8:
+dvnni9:
+dvpb10:
+dvpb8:
+dvpb9:
+dvpc10:
+dvpc8:
+dvpc9:
+dvpn10:
+dvpn8:
+dvpn9:
+dvpnn10:
+dvpnn8:
+dvpnn9:
+[/umatra/uumatra/rimatra/ematra/candra/halfya/halfna/halfkhha/halffa/halfssa
+/halfqa/ghha/khha/repha/riimatra/lla/halflla/rii/iianusvara/rephaanusvara
+/nukta/ellipsisdot/halfnya/halfnna/ll/lii/nya/rr/halfghha/rmarathi/halfza
+/limatra/candrabindu/ruu/ksa/halfksa/halfjha/halfpha/halfva/fa/halfta/za/qa
+/openya/visarga/halfsa/danda/tr/zero/one/two/three/four/five/six/seven/eight
+/nine/om/dbldanda/halfbha/halfpa/halfja/halfka/halfdha/aamatra/bha/cha/dha
+/imatra/iimatra/gha/halfkha/ii/jha/kha/halftha/halfma/halfba/aumatra/pha
+/halfca/nga/halfla/tha/uu/tta/ttha/dda/ddha/nna/halfsha/anusvara/halfgha
+/virama/avagraha/halfga/a/ba/ca/da/e/sha/ga/ha/i/ja/ka/la/ma/na/omatra/pa
+/ssa/ra/sa/ta./u/va/rra/rrha/ya/ru/aimatra/liimatra/rstroke/subr1
+/abbreviation/sr/t_t/_t_t/ph_r/fr/jr/zr/kr/d_dh/d_bh/d_gh/d_g/d_d/d_y/d_bh_y
+/d_dh_y/d_d_y/d_n/d_v/d_b/d_m/d_v_y/sh_c/sh_n/sh_v/sh_r/sh_l/nn_nn/h_m/h_y
+/h_l/h_v/h_r/h_n/h_nn/ss_tt/ss_tth/l_l/v_n/b_n/v_v/b_b/ss_tt_r_y/ss_tt_v
+/ng_k/ng_k_t/ng_k_t_y/ng_k_y/ng_ks/ng_ks_v/ng_kh/dd_g/dd_gh/ng_n/dd_gh_r
+/dd_y/dd_g_y/ng_gh_y/ng_kh_y./dd_m/ng_ng/ng_g/ng_g_y/ng_gh/ng_gh_r/ng_m/ng_y
+/k_k/k_t/k_t_y/k_t_v/k_n/k_y/k_m/k_l/k_v/k_v_y/gh_n/c_c/c_ny/ch_y/ny_c/ny_j
+/tt_tt/tt_y/tth_y/tt_k/t_n/p_t/p_n/p_l/b_v/s_n/m_l/bh_n/m_n/n_n/tt_tth/j_ny
+/h_rr/ddh_y/dd_dd/k_n_y/k_r_y/_gh_n/_g_r/_j_ny/_ny_c/_tr/d_g_r/d_gh_r/d_r_y
+/dh_n/_dh_n/_dh_r/_p_t/_sh_c/_sh_r/_sh_v/ss_tt_y/d_d_v/d_dh_v/s_r/dd_r_y
+/k_t_r_y/subr2/p_r/hyphen]
+MnSymbolB-Bold10:
+MnSymbolB-Bold12:
+MnSymbolB-Bold5:
+MnSymbolB-Bold6:
+MnSymbolB-Bold7:
+MnSymbolB-Bold8:
+MnSymbolB-Bold9:
+MnSymbolB10:
+MnSymbolB12:
+MnSymbolB5:
+MnSymbolB6:
+MnSymbolB7:
+MnSymbolB8:
+MnSymbolB9:
+[/uni219B/uni21910338/uni219A/uni21930338/uni21970338/uni21960338
+/uni21990338/uni21980338/arrowrightdblstroke/uni21D10338/uni21CD/uni21D30338
+/uni21D70338/uni21D60338/uni21D90338/uni21D80338/uni21AE/uni21950338
+/uni29210338/uni29220338/uni21CE/uni21D50338/Neswarrow_uni0338
+/Nwsearrow_uni0338/uni21A00338/uni219F0338/uni219E0338/uni21A10338
+/twoheadnearrow_uni0338/twoheadnwarrow_uni0338/twoheadswarrow_uni0338
+/twoheadsearrow_uni0338/uni21A30338/uparrowtail_uni0338/uni21A20338
+/downarrowtail_uni0338/nearrowtail_uni0338/nwarrowtail_uni0338
+/swarrowtail_uni0338/searrowtail_uni0338/uni21A60338/uni21A50338/uni21A40338
+/uni21A70338/nemapsto_uni0338/nwmapsto_uni0338/swmapsto_uni0338
+/semapsto_uni0338/uni21AA0338/lhookuparrow_uni0338/lhookleftarrow_uni0338
+/lhookdownarrow_uni0338/lhooknearrow_uni0338/uni29230338
+/lhookswarrow_uni0338/uni29250338/rhookrightarrow_uni0338
+/rhookuparrow_uni0338/uni21A90338/rhookdownarrow_uni0338/uni29240338
+/rhooknwarrow_uni0338/uni29260338/rhooksearrow_uni0338/uni21C00338
+/uni21BF0338/uni21BD0338/uni21C20338/neharpoonup_uni0338/nwharpoonup_uni0338
+/swharpoonup_uni0338/seharpoonup_uni0338/uni21C10338/uni21BE0338/uni21BC0338
+/uni21C30338/neharpoondown_uni0338/nwharpoondown_uni0338
+/swharpoondown_uni0338/seharpoondown_uni0338/uni294B0338
+/updownharpoonleftright_uni0338/neswharpoonnwse_uni0338
+/senwharpoonnesw_uni0338/uni294A0338/updownharpoonrightleft_uni0338
+/neswharpoonsenw_uni0338/nwseharpoonswne_uni0338/uni21CC0338/uni296E0338
+/neswharpoons_uni0338/senwharpoons_uni0338/uni21CB0338/uni296F0338
+/swneharpoons_uni0338/nwseharpoons_uni0338/uni21E20338/uni21E10338
+/uni21E00338/uni21E30338/dashednearrow_uni0338/dashednwarrow_uni0338
+/dashedswarrow_uni0338/dashedsearrow_uni0338/uni22B80338/uni2AEF0338
+/uni27DC0338/uni2AF00338/nespoon_uni0338/nwspoon_uni0338/swspoon_uni0338
+/sespoon_uni0338/rightfilledspoon_uni0338/upfilledspoon_uni0338
+/leftfilledspoon_uni0338/downfilledspoon_uni0338/nefilledspoon_uni0338
+/nwfilledspoon_uni0338/swfilledspoon_uni0338/sefilledspoon_uni0338
+/rightfootline_uni0338/upfootline_uni0338/leftfootline_uni0338
+/downfootline_uni0338/nefootline_uni0338/nwfootline_uni0338
+/swfootline_uni0338/sefootline_uni0338/rightfree_uni0338/upfree_uni0338
+/leftfree_uni0338/uni2ADC/nefree_uni0338/nwfree_uni0338/swfree_uni0338
+/sefree_uni0338/rightpitchfork_uni0338/uni22D40338/leftpitchfork_uni0338
+/uni2ADB0338/nepitchfork_uni0338/nwpitchfork_uni0338/swpitchfork_uni0338
+/sepitchfork_uni0338/uni21C90338/uni21C80338/uni21C70338/uni21CA0338
+/nenearrows_uni0338/nwnwarrows_uni0338/swswarrows_uni0338/sesearrows_uni0338
+/uni21C40338/updownarrows_uni0338/neswarrows_uni0338/nwsearrows_uni0338
+/uni21C60338/downuparrows_uni0338/swnearrows_uni0338/senwarrows_uni0338
+/uni219D0338/uplsquigarrow_uni0338/leftlsquigarrow_uni0338
+/downlsquigarrow_uni0338/nelsquigarrow_uni0338/nwlsquigarrow_uni0338
+/swlsquigarrow_uni0338/selsquigarrow_uni0338/rightrsquigarrow_uni0338
+/uprsquigarrow_uni0338/uni219C0338/downrsquigarrow_uni0338
+/nersquigarrow_uni0338/nwrsquigarrow_uni0338/swrsquigarrow_uni0338
+/sersquigarrow_uni0338/squigarrowleftright_uni0338/squigarrowupdown_uni0338
+/squigarrowrightleft_uni0338/squigarrowdownup_uni0338/squigarrownesw_uni0338
+/squigarrownwse_uni0338/squigarrowswne_uni0338/squigarrowsenw_uni0338
+/uni21B70338/lcurvearrowup_uni0338/lcurvearrowleft_uni0338/uni29380338
+/lcurvearrowne_uni0338/lcurvearrownw_uni0338/lcurvearrowsw_uni0338
+/lcurvearrowse_uni0338/rcurvearrowright_uni0338/rcurvearrowup_uni0338
+/uni21B60338/uni29390338/rcurvearrowne_uni0338/rcurvearrownw_uni0338
+/rcurvearrowsw_uni0338/rcurvearrowse_uni0338/curvearrowleftright_uni0338
+/curvearrowupdown_uni0338/curvearrowrightleft_uni0338
+/curvearrowdownup_uni0338/curvearrownesw_uni0338/curvearrownwse_uni0338
+/curvearrowswne_uni0338/curvearrowsenw_uni0338/leftrightline_uni0338/uni2224
+/neswline_uni0338/nwseline_uni0338/Leftrightline_uni0338/notparallel
+/Neswline_uni0338/Nwseline_uni0338/uni22AC/perpendicular_uni0338/uni22A30338
+/uni22A40338/nevdash_uni0338/nwvdash_uni0338/swvdash_uni0338/sevdash_uni0338
+/uni22AD/upmodels_uni0338/leftmodels_uni0338/downmodels_uni0338
+/nemodels_uni0338/nwmodels_uni0338/swmodels_uni0338/semodels_uni0338/uni22AE
+/uni234A0338/leftVdash_uni0338/uni23510338/neVdash_uni0338/nwVdash_uni0338
+/swVdash_uni0338/seVdash_uni0338/uni22AF/upModels_uni0338/leftModels_uni0338
+/downModels_uni0338/neModels_uni0338/nwModels_uni0338/swModels_uni0338
+/seModels_uni0338/uni293F0338/uni21BA0338/uni27F20338
+/rcirclearrowdown_uni0338/uni27F30338/uni21BB0338/uni293E0338
+/lcirclearrowdown_uni0338]
+FdSymbolD-Bold:
+FdSymbolD-Book:
+FdSymbolD-Medium:
+FdSymbolD-Regular:
+MdSymbolD-Bold:
+MdSymbolD-Light:
+MdSymbolD-Regular:
+MdSymbolD-Semibold:
+[/uni219B/uni21910338/uni219A/uni21930338/uni21970338/uni21960338
+/uni21990338/uni21980338/uni21CF/uni21D10338/uni21CD/uni21D30338/uni21D70338
+/uni21D60338/uni21D90338/uni21D80338/uni21AE/uni21950338/uni29210338
+/uni29220338/uni21CE/uni21D50338/sym030_uni0338/sym031_uni0338/uni21A00338
+/uni219F0338/uni219E0338/uni21A10338/sym033_uni0338/sym032_uni0338
+/sym035_uni0338/sym034_uni0338/uni21A30338/sym036_uni0338/uni21A20338
+/sym037_uni0338/sym039_uni0338/sym038_uni0338/sym03B_uni0338/sym03A_uni0338
+/uni21A60338/uni21A50338/uni21A40338/uni21A70338/uni29070338/sym03C_uni0338
+/uni29060338/sym03D_uni0338/uni21AA0338/sym03E_uni0338/uni21A90338.alt
+/sym03F_uni0338.alt/uni29240338.alt/uni29230338/uni29260338.alt/uni29250338
+/uni21AA0338.alt/sym03E_uni0338.alt/uni21A90338/sym03F_uni0338/uni29240338
+/uni29230338.alt/uni29260338/uni29250338.alt/uni21C00338/uni21BF0338
+/uni21BD0338/uni21C20338/sym041_uni0338/sym040_uni0338/sym043_uni0338
+/sym042_uni0338/uni21C10338/uni21BE0338/uni21BC0338/uni21C30338
+/sym045_uni0338/sym044_uni0338/sym047_uni0338/sym046_uni0338/uni294B0338
+/uni294D0338/sym049_uni0338/sym048_uni0338/uni294A0338/uni294C0338
+/sym04B_uni0338/sym04A_uni0338/uni21CC0338/uni296E0338/sym04D_uni0338
+/sym04C_uni0338/uni21CB0338/uni296F0338/sym04F_uni0338/sym04E_uni0338
+/uni21E20338/uni21E10338/uni21E00338/uni21E30338/sym051_uni0338
+/sym050_uni0338/sym053_uni0338/sym052_uni0338/uni22B80338/uni2AEF0338
+/uni27DC0338/uni2AF00338/sym054_uni0338/sym056_uni0338/sym055_uni0338
+/sym057_uni0338/uni29DF0338/sym058_uni0338/uni22B70338/uni22B60338
+/sym05A_uni0338/uni22D40338/sym05B_uni0338/sym059_uni0338/uni21C90338
+/uni21C80338/uni21C70338/uni21CA0338/sym05D_uni0338/sym05C_uni0338
+/sym05F_uni0338/sym05E_uni0338/uni21C40338/uni21C50338/sym061_uni0338
+/sym060_uni0338/uni21C60338/uni21F50338/sym063_uni0338/sym062_uni0338
+/uni219D0338/sym064_uni0338.alt/uni219C0338.alt/sym065_uni0338
+/uni219D0338.alt/sym064_uni0338/uni219C0338/sym065_uni0338.alt/uni21AD0338
+/sym066_uni0338.alt/uni21AD0338.alt/sym066_uni0338/sym069_uni0338
+/sym068_uni0338/sym067_uni0338/uni29380338/sym06C_uni0338/sym06B_uni0338
+/uni29360338/uni29350338/uni293B0338/sym06A_uni0338/uni293A0338/uni29390338
+/uni29340338/sym06D_uni0338/sym06E_uni0338/uni29370338/sym06F_uni0338
+/sym070_uni0338/sym071_uni0338/sym072_uni0338/sym074_uni0338/sym073_uni0338
+/sym076_uni0338/sym075_uni0338/sym077_uni0338/sym078_uni0338/sym079_uni0338
+/uni21BA0338/uni27F20338/sym07C_uni0338/uni27F30338/uni21BB0338
+/sym07A_uni0338/sym07B_uni0338/uni21DB0338/uni290A0338/uni21DA0338
+/uni290B0338/uni27F60338/uni27F50338/uni27F90338/uni27F80338/uni27F70338
+/uni27FA0338/uni27FC0338/uni27FB0338/uni27FE0338/uni27FD0338/uni27FF0338
+/uni2B330338/uni27DD0338/uni27DE0338 24{/.notdef}repeat/uni22AC/uni22A50338
+/uni22A30338/uni22A40338/uni22A60338/uni2AE00338/uni2ADE0338/uni2ADF0338
+/uni22AD/uni2AEB0338/uni2AE40338/uni2AEA0338/uni22A70338/sym07E_uni0338
+/sym07D_uni0338/sym07F_uni0338/uni22AE/uni234A0338/uni2AE30338/uni23510338
+/uni22AE.alt/uni2AE80338/uni2AE30338.alt/uni2AE70338/uni22AF/sym080_uni0338
+/uni2AE50338/sym081_uni0338/uni22AA0338/sym082_uni0338/uni2AE20338
+/sym083_uni0338]
+ar10:
+ar12:
+ar6:
+ar7:
+ar8:
+ar9:
+arb10:
+arb12:
+arb5:
+arb6:
+arb7:
+arb8:
+arb9:
+arrow:
+arssbi10:
+arssi10:
+artti10:
+bguq10t04:
+bguq10t05:
+bguq10t06:
+bguq10t07:
+bguq10t08:
+bguq10t09:
+bguq10t10:
+bguq10t11:
+bguq10t12:
+pigpen:
+recycle:
+xppff10:
+StandardEncoding
diff --git a/Build/source/texk/dvipsk/dvips.1 b/Build/source/texk/dvipsk/dvips.1
new file mode 100644
index 00000000000..9825e2f1a56
--- /dev/null
+++ b/Build/source/texk/dvipsk/dvips.1
@@ -0,0 +1,534 @@
+.TH DVIPS 1 "1 February 2016"
+.SH NAME
+dvips \- convert a TeX DVI file to PostScript
+.SH SYNOPSIS
+.B dvips
+.RI [ OPTIONS ]
+.IR file [\fB.dvi\fP]
+.SH DESCRIPTION
+THIS MAN PAGE IS OBSOLETE!
+See the Texinfo documentation instead.
+You can read it either in Emacs or with the standalone
+.B info
+program which comes with the GNU texinfo distribution as
+ftp.gnu.org:pub/gnu/texinfo/texinfo*.tar.gz.
+.PP
+The program
+.B dvips
+takes a DVI file
+.IR file [\fB.dvi\fP]
+produced by TeX (or by some other processor such as GFtoDVI) and
+converts it to PostScript, sending the output to a file or directly to a
+printer. The DVI file may be specified without the
+.B .dvi
+extension. Fonts used may either be resident in the printer or defined
+as bitmaps in PK files, or a `virtual' combination of both. If the
+.B mktexpk
+program is installed,
+.B dvips
+will automatically invoke METAFONT to generate fonts that don't already
+exist.
+.PP
+For more information, see the Texinfo manual
+.IR dvips.texi ,
+which should be installed somewhere on your system, hopefully accessible
+through the standard Info tree.
+.SH OPTIONS
+.TP
+.B -a
+Conserve memory by making three passes over the .dvi file instead of two
+and only loading those characters actually used. Generally only useful
+on machines with a very limited amount of memory, like some PCs.
+.TP
+.B -A
+Print only odd pages (TeX pages, not sequence pages).
+.TP
+.B -b num
+Generate
+.I num
+copies of each page, but duplicating the page body rather than using the
+.I #numcopies
+option. This can be useful in conjunction with a header file setting
+.I \ebop-hook
+to do color separations or other neat tricks.
+.TP
+.B -B
+Print only even pages (TeX pages, not sequence pages).
+.TP
+.B -c num
+Generate
+.I num
+copies of every page. Default is 1. (For collated copies, see the
+.I -C
+option below.)
+.TP
+.B -C num
+Create
+.I num
+copies, but collated (by replicating the data in the PostScript file).
+Slower than the
+.I -c
+option, but easier on the hands, and faster than resubmitting the same
+PostScript file multiple times.
+.TP
+.B -d num
+Set the debug flags. This is intended only for emergencies or for
+unusual fact-finding expeditions; it will work only if
+.B dvips
+has been compiled with the DEBUG option. If nonzero, prints additional
+information on standard error. For maximum information, you can use
+`-1'. See the Dvips Texinfo manual for more details.
+.TP
+.B -D num
+Set the resolution in dpi (dots per inch) to
+.IR num .
+This affects the choice of bitmap fonts that are loaded and also the
+positioning of letters in resident PostScript fonts. Must be between 10
+and 10000. This affects both the horizontal and vertical resolution.
+If a high resolution (something greater than 400 dpi, say) is selected,
+the
+.I -Z
+flag should probably also be used.
+.TP
+.B -e num
+Make sure that each character is placed at most this many pixels from
+its `true' resolution-independent position on the page. The default
+value of this parameter is resolution dependent. Allowing individual
+characters to `drift' from their correctly rounded positions by a few
+pixels, while regaining the true position at the beginning of each new
+word, improves the spacing of letters in words.
+.TP
+.B -E
+makes
+.B dvips
+attempt to generate an EPSF file with a tight bounding box. This only
+works on one-page files, and it only looks at marks made by characters
+and rules, not by any included graphics. In addition, it gets the glyph
+metrics from the
+.I tfm
+file, so characters that lie outside their enclosing
+.I tfm
+box may confuse it. In addition, the bounding box might be a bit too
+loose if the character glyph has significant left or right side
+bearings. Nonetheless, this option works well for creating small EPSF
+files for equations or tables or the like. (Note, of course, that
+.B dvips
+output is resolution dependent and thus does not make very good EPSF
+files, especially if the images are to be scaled; use these EPSF files
+with a great deal of care.)
+.TP
+.B -f
+Run as a filter. Read the
+.I .dvi
+file from standard input and write the PostScript to standard output.
+The standard input must be seekable, so it cannot be a pipe. If you
+must use a pipe, write a shell script that copies the pipe output to a
+temporary file and then points
+.B dvips
+at this file. This option also disables the automatic reading of the
+.I PRINTER
+environment variable, and turns off the automatic sending of control D
+if it was turned on with the
+.I -F
+option or in the configuration file; use
+.I -F
+after this option if you want both.
+.TP
+.B -F
+Causes Control-D (ASCII code 4) to be appended as the very last
+character of the PostScript file. This is useful when
+.B dvips
+is driving the printer directly instead of working through a spooler,
+as is common on extremely small systems. NOTE! DO NOT USE THIS OPTION!
+.TP
+.B -G
+Causes
+.B dvips
+to shift non-printing characters to higher-numbered positions.
+This may be useful sometimes.
+.TP
+.B -h name
+Prepend file
+.I name
+as an additional header file. (However, if the name is simply `-'
+suppress all header files from the output.) This header file gets added
+to the PostScript
+.IR userdict .
+.TP
+.B -i
+Make each section be a separate file. Under certain circumstances,
+.B dvips
+will split the document up into `sections' to be processed
+independently; this is most often done for memory reasons. Using this
+option tells
+.B dvips
+to place each section into a separate file; the new file names are
+created replacing the suffix of the supplied output file name by a
+three-digit sequence number. This option is most often used in
+conjunction with the
+.I -S
+option which sets the maximum section length in pages. For instance,
+some phototypesetters cannot print more than ten or so consecutive pages
+before running out of steam; these options can be used to automatically
+split a book into ten-page sections, each to its own file.
+.TP
+.B -j
+Download only needed characters from Type 1 fonts. This is the
+default in the current release. Some debugging flags trace this operation.
+You can also control partial downloading on a per-font basis, via the
+.B psfonts.map
+file.
+.TP
+.B -k
+Print crop marks. This option increases the paper size (which should be
+specified, either with a paper size special or with the
+.I -T
+option) by a half inch in each dimension. It translates each page by a
+quarter inch and draws cross-style crop marks. It is mostly useful with
+typesetters that can set the page size automatically.
+.TP
+.B -K
+This option causes comments in included PostScript graphics, font files,
+and headers to be removed. This is sometimes necessary to get around
+bugs in spoolers or PostScript post-processing programs. Specifically,
+the %%Page comments, when left in, often cause difficulties. Use of
+this flag can cause some included graphics to fail, since the PostScript
+header macros from some software packages read portions of the input
+stream line by line, searching for a particular comment. This option
+has been turned off by default because PostScript previewers and
+spoolers have been getting better.
+.TP
+.B -l num
+The last page printed will be the first one numbered
+.I num
+Default is the last page in the document. If the
+.I num
+is prefixed by an equals sign, then it (and any argument to the
+.I -p
+option) is treated as a sequence number, rather than a value to compare
+with
+.I \ecount0
+values. Thus, using
+.I -l =9
+will end with the ninth page of the document, no matter what the pages
+are actually numbered.
+.TP
+.B -m
+Specify manual feed for printer.
+.TP
+.B -mode mode
+Use
+.I mode
+as the Metafont device name for path searching and font
+generation. This overrides any value from configuration files. With
+the default paths, explicitly specifying the mode also makes the program
+assume the fonts are in a subdirectory named
+.IR mode .
+.TP
+.B -M
+Turns off the automatic font generation facility. If any fonts are
+missing, commands to generate the fonts are appended to the file
+.I missfont.log
+in the current directory; this file can then be executed and deleted to
+create the missing fonts.
+.TP
+.B -n num
+At most
+.I num
+pages will be printed. Default is 100000.
+.TP
+.B -N
+Turns off structured comments; this might be necessary on some systems
+that try to interpret PostScript comments in weird ways, or on some
+PostScript printers. Old versions of TranScript in particular cannot
+handle modern Encapsulated PostScript.
+.TP
+.BR -noomega
+This will disable the use of Omega extensions when interpreting DVI
+files. By default, the additional opcodes
+.I 129
+and
+.I 134
+are recognized by dvips as Omega or pTeX extensions and interpreted as
+requests to set 2-byte characters.
+.TP
+.BR -noptex
+This will disable the use of pTeX extensions when interpreting DVI files.
+By default, the additional opcodes
+.I 130
+and
+.I 135
+are recognized by dvips as pTeX extensions and interpreted as requests to
+set 3-byte characters, and
+.I 255
+as request to change the typesetting direction.
+.sp
+The only drawback is that the virtual font array will (at least temporarily)
+require 65536 or more positions instead of the default 256 positions, i.e.,
+the memory requirements of dvips will be somewhat larger. If you find this
+unacceptable or encounter another problem with the Omega or pTeX extensions,
+you can switch off the pTeX extension by using
+.BR -noptex ,
+or both by using
+.B -noomega
+(but please do send a bug report if you find such problems - see the bug
+address in the
+.B AUTHORS
+section below).
+.TP
+.B -o name
+The output will be sent to file
+.I name
+If no file name is given (i.e., -o is last on the command line), the
+default name is
+.I file.ps
+where the .dvi file was called
+.IR file.dvi ;
+if this option isn't given, any default in the configuration file is
+used. If the first character of the supplied output file name is an
+exclamation mark, then the remainder will be used as an argument to
+.IR popen ;
+thus, specifying
+.I !lpr
+as the output file will automatically queue the file for printing.
+This option also disables the automatic reading of the
+.I PRINTER
+environment variable, and turns off the automatic sending of control D
+if it was turned on with the
+.I -F
+option or in the configuration file; use
+.I -F
+after this option if you want both.
+.TP
+.B -O offset
+Move the origin by a certain amount. The
+.I offset
+is a comma-separated pair of dimensions, such as
+.I .1in,-.3cm
+(in the same syntax used in the
+.I papersize
+special). The origin of the page is shifted from the
+default position (of one inch down, one inch to the right from the upper
+left corner of the paper) by this amount.
+.TP
+.B -p num
+The first page printed will be the first one numbered
+.IR num .
+Default is the first page in the document. If the
+.I num
+is prefixed by an equals sign, then it (and any argument to the
+.I -l
+option) is treated as a sequence number, rather than a value to compare
+with
+.I \ecount0
+values. Thus, using
+.I -p =3
+will start with the third page of the document, no matter what the pages
+are actually numbered.
+.TP
+.B -pp pagelist
+A comma-separated list of pages and ranges (a-b) may be given, which
+will be interpreted as
+.I \ecount0
+values. Pages not specified will not be printed. Multiple
+.B -pp
+options may be specified or all pages and page ranges can be
+specified with one
+.B -pp
+option.
+.TP
+.B -P printername
+Sets up the output for the appropriate printer. This is implemented by
+reading in
+.I config.printername
+, which can then set the output pipe (as in,
+.I !lpr -Pprintername
+as well as the font paths and any other
+.I config.ps
+defaults for that printer only. Note that
+.I config.ps
+is read before
+.I config.printername
+In addition, another file called
+.I ~/.dvipsrc
+is searched for immediately after
+.IR config.ps ;
+this file is intended for user defaults. If no
+.I -P
+command is given, the environment variable
+.I PRINTER
+is checked. If that variable exists, and a corresponding configuration
+file exists, that configuration file is read in.
+.TP
+.B -q
+Run in quiet mode. Don't chatter about pages converted, etc.; report
+nothing but errors to standard error.
+.TP
+.B -r
+Stack pages in reverse order. Normally, page 1 will be printed first.
+.TP
+.B -R[0|1|2]
+Run securely.
+.BR -R2
+disables both shell command execution in
+.I \especial'{}
+(via backticks
+.BR `
+) and config files (via the
+.I E
+option), and opening of any absolute filenames.
+.BR -R1
+, the default, forbids shell escapes but allows absolute filenames.
+.BR -R0
+allows both. The config file option is
+.I z
+.TP
+.B -s
+Causes the entire global output to be enclosed in a save/restore pair.
+This causes the file to not be truly conformant, and is thus not
+recommended, but is useful if you are driving the printer directly and
+don't care too much about the portability of the output.
+.TP
+.B -S num
+Set the maximum number of pages in each `section'. This option is most
+commonly used with the
+.I -i
+option; see that documentation above for more information.
+.TP
+.B -t papertype
+This sets the paper type to
+.IR papertype .
+The
+.I papertype
+should be defined in one of the configuration files, along with the
+appropriate code to select it. (Currently known types include
+.BR letter ,
+.BR legal ,
+.BR ledger ,
+.BR a4 ,
+.BR a3 ).
+You can also specify
+.BR -t " " landscape ,
+which rotates a document by 90 degrees. To rotate a document whose size
+is not letter, you can use the
+.I -t
+option twice, once for the page size, and once for landscape.
+You should not use any
+.I -t
+option when the DVI file already contains a
+.I papersize
+special, as is done by some LaTeX packages, notably hyperref.sty.
+
+The upper left corner of each page in the
+.I .dvi
+file is placed one inch from the left and one inch from the top. Use of
+this option is highly dependent on the configuration file. Note that
+executing the
+.B letter
+or
+.B a4
+or other PostScript operators cause the document to be nonconforming and
+can cause it not to print on certain printers, so the paper size should
+not execute such an operator if at all possible.
+.TP
+.B -T papersize
+Set the paper size to the given pair of dimensions. This option takes
+its arguments in the same style as
+.IR -O .
+It overrides any paper size special in the dvi file.
+.TP
+.B -u psmapfile
+Set
+.I psmapfile
+to be the file that dvips uses for looking up PostScript font aliases. If
+.I psmapfile
+begins with a
+.B +
+character, then the rest of the name is used as the name of the map file,
+and the map file is appended to the list of map files (instead of replacing
+the list). In either case, if
+.I psmapfile
+has no extension, then
+.B .map
+is added at the end.
+.TP
+.B -U
+Disable a PostScript virtual memory saving optimization that stores the
+character metric information in the same string that is used to store
+the bitmap information. This is only necessary when driving the Xerox
+4045 PostScript interpreter. It is caused by a bug in that interpreter
+that results in `garbage' on the bottom of each character. Not
+recommended unless you must drive this printer.
+.TP
+.B -v
+Print the
+.B dvips
+version number and exit.
+.TP
+.B -V
+Download non-resident PostScript fonts as bitmaps. This requires use of
+`gsftopk' or `pstopk' or some other such program(s) in order to generate
+the required bitmap fonts; these programs are supplied with
+.BR dvips .
+.TP
+.B -x num
+Set the
+magnification ratio to
+.IR num /1000.
+Overrides the magnification specified in the .dvi file. Must be
+between 10 and 100000. Instead of an integer,
+.I num
+may be a real number for increased precision.
+.TP
+.B -X num
+Set the horizontal resolution in dots per inch to
+.IR num .
+.TP
+.B -y num
+Set the
+magnification ratio to
+.IR num /1000
+times the magnification specified in the .dvi file.
+See
+.B -x
+above.
+.TP
+.B -Y num
+Set the vertical resolution in dots per inch to
+.IR num .
+.TP
+.B -z
+Pass
+.B html
+hyperdvi specials through to the output for eventual
+distillation into PDF. This is not enabled by default to avoid
+including the header files unnecessarily, and use of temporary files in
+creating the output.
+.TP
+.B -Z
+Causes bitmapped fonts to be compressed before they are downloaded,
+thereby reducing the size of the PostScript font-downloading
+information. Especially useful at high resolutions or when very large
+fonts are used. Will slow down printing somewhat, especially on early
+68000-based PostScript printers.
+.SH "SEE ALSO"
+mf(1), afm2tfm(1), tex(1), latex(1), lpr(1),
+.IR dvips.texi ,
+http://tug.org/dvips.
+.SH ENVIRONMENT
+Dvipsk uses the same environment variables and algorithms for finding
+font files as TeX and its friends do. See the documentation for the
+Kpathsea library for details. (Repeating it here is too cumbersome.)
+.PP
+KPATHSEA_DEBUG: Trace Kpathsea lookups; set to -1 for complete tracing.
+.PP
+PRINTER: see above.
+.SH NOTES
+PostScript is a registered trademark of Adobe Systems Incorporated.
+.SH AUTHOR
+Tomas Rokicki; extended to virtual fonts
+by Don Knuth. Path searching and configuration modifications by
+Karl Berry.
+.PP
+Maintained in TeX Live; please send bug reports or other correspondence
+to tex-k@tug.org (http://lists.tug.org/tex-k).
diff --git a/Build/source/texk/dvipsk/dvips.c b/Build/source/texk/dvipsk/dvips.c
new file mode 100644
index 00000000000..ab2411370fb
--- /dev/null
+++ b/Build/source/texk/dvipsk/dvips.c
@@ -0,0 +1,1552 @@
+/*
+ * This is the main routine.
+ */
+#include "dvips.h" /* The copyright notice there is included too! */
+#ifdef KPATHSEA
+#include <kpathsea/c-pathch.h>
+#include <kpathsea/proginit.h>
+#include <kpathsea/progname.h>
+#include <kpathsea/tex-hush.h>
+#include <kpathsea/tex-make.h>
+#include <kpathsea/variable.h>
+#include <kpathsea/version.h>
+#include <kpathsea/lib.h>
+#ifdef strdup
+#undef strdup
+#endif
+#define strdup xstrdup
+#include "paths.h"
+#else /* ! KPATHSEA */
+#include <stdlib.h> /* for malloc, etc. */
+#if !defined(SYSV) && !defined(WIN32)
+extern char *strtok(); /* some systems don't have this in strings.h */
+#endif
+#if defined(WIN32)
+#include <io.h>
+#include <fcntl.h>
+#include <string.h>
+#define O_BINARY _O_BINARY
+#endif
+#define DIR_SEP DIRSEP
+#endif /* KPATHSEA */
+#ifdef VMS
+#define GLOBAL globaldef
+#ifdef __GNUC__
+#include "climsgdef.h" /* created by hand, extracted from STARLET.MLB */
+ /* and put in GNU_CC:[INCLUDE.LOCAL] */
+#include "ctype.h"
+#include "descrip.h"
+#else
+#include climsgdef
+#include ctype
+#include descrip
+#endif
+#endif
+#ifdef __APPLE__ /* for Mac OS X, T. Uchiyama */
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+#endif
+
+#if defined(WIN32) && defined(KPATHSEA)
+FILE *generic_fsyscp_fopen(const char *filename, const char *mode)
+{
+ FILE *f;
+
+ f = fsyscp_fopen (filename, mode);
+
+ if (f == NULL && file_system_codepage != win32_codepage) {
+ int tmpcp = file_system_codepage;
+ file_system_codepage = win32_codepage;
+ f = fsyscp_fopen (filename, mode);
+ file_system_codepage = tmpcp;
+ }
+
+ return f;
+}
+#undef fopen
+#define fopen(file, fmode) generic_fsyscp_fopen(file, fmode)
+#endif
+
+#ifndef DEFRES
+#define DEFRES (600)
+#endif
+
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+/*
+ * First we define some globals.
+ */
+#ifdef VMS
+ static char ofnme[252],infnme[252],pap[40],thh[20];
+#endif
+
+/* PS fonts fully downloaded as headers */
+char *downloadedpsnames[DOWNLOADEDPSSIZE];
+
+int found_problems = 0; /* should we exit successfully? */
+int unused_top_of_psnames; /* unused top number of downloadedpsnames[#] */
+fontdesctype *fonthead; /* list of all fonts mentioned so far */
+fontdesctype *curfnt; /* the currently selected font */
+sectiontype *sections; /* sections to process document in */
+Boolean partialdownload = 1; /* turn on partial downloading */
+Boolean manualfeed; /* manual feed? */
+Boolean compressed; /* compressed? */
+Boolean downloadpspk; /* use PK for downloaded PS fonts? */
+Boolean safetyenclose; /* enclose in save/restore for stupid spoolers? */
+Boolean removecomments = 0; /* remove comments from included PS? */
+Boolean nosmallchars; /* disable small char optimization for X4045? */
+Boolean cropmarks; /* add cropmarks? */
+Boolean abspage = 0; /* are page numbers absolute? */
+Boolean tryepsf = 0; /* should we try to make it espf? */
+int secure = 1; /* make safe for suid */
+int secure_option = 0; /* set by -R */
+int collatedcopies = 1; /* how many collated copies? */
+int sectioncopies = 1; /* how many times to repeat each section? */
+integer pagecopies = 1; /* how many times to repeat each page? */
+shalfword linepos = 0; /* where are we on the line being output? */
+integer maxpages; /* the maximum number of pages */
+Boolean notfirst, notlast; /* true if a first page was specified */
+Boolean evenpages, oddpages; /* true if doing only even/only odd pages */
+Boolean pagelist; /* true if using page ranges */
+Boolean sendcontrolD; /* should we send a control D at end? */
+Boolean shiftlowchars; /* shift [0-32, 127] characters higher? */
+integer firstpage; /* the number of the first page if specified */
+integer lastpage;
+integer firstseq;
+integer lastseq;
+integer hpapersize, vpapersize; /* horizontal and vertical paper size */
+integer hoff, voff; /* horizontal and vertical offsets */
+integer maxsecsize = 0; /* the maximum size of a section */
+integer firstboploc; /* where the first bop is */
+Boolean sepfiles; /* each section in its own file? */
+int numcopies; /* number of copies of each page to print */
+char *titlename=""; /* if given, used for %%Title */
+const char *oname; /* output file name */
+char *iname; /* dvi file name */
+char *fulliname; /* same, with current working directory */
+char *strings; /* strings for program */
+char *nextstring, *maxstring; /* string pointers */
+FILE *dvifile, *bitfile; /* dvi and output files */
+quarterword *curpos; /* current position in virtual character packet */
+quarterword *curlim; /* final byte in virtual character packet */
+fontmaptype *ffont; /* first font in current frame */
+real conv; /* conversion ratio, pixels per DVI unit */
+real vconv; /* conversion ratio, pixels per DVI unit */
+real alpha; /* conversion ratio, DVI unit per TFM unit */
+double mag; /* the magnification of this document */
+integer num, den; /* the numerator and denominator */
+int overridemag; /* substitute for mag value in DVI file? */
+int actualdpi = DEFRES; /* the actual resolution of the printer */
+int vactualdpi = DEFRES; /* the actual resolution of the printer */
+int maxdrift; /* max pixels away from true rounded position */
+int vmaxdrift; /* max pixels away from true rounded position */
+char *paperfmt; /* command-line paper format */
+int landscape = 0; /* landscape mode */
+integer fontmem; /* memory remaining in printer */
+integer pagecount; /* page counter for the sections */
+integer pagenum; /* the page number we currently look at */
+long bytesleft; /* number of bytes left in raster */
+quarterword *raster; /* area for raster manipulations */
+integer hh, vv; /* horizontal and vertical pixel positions */
+Boolean noomega = 0; /* Omega extensions are enabled */
+Boolean noptex = 0; /* pTeX extensions are enabled */
+Boolean lastpsizwins = 1; /* if 1, last \special{papersize=w,h} wins */
+
+/*-----------------------------------------------------------------------*
+ * The PATH definitions cannot be defined on the command line because so many
+ * DEFINE's overflow the DCL buffer when using the GNU CC compiler.
+ *-----------------------------------------------------------------------*/
+#if defined(VMS) && defined(__GNUC__)
+#include "vms_gcc_paths.h"
+#endif
+
+const char *infont; /* is the file we are downloading a font? */
+#ifndef KPATHSEA
+#ifdef ATARIST
+# define TFMPATH "."
+# define PKPATH "."
+# define VFPATH "."
+# define FIGPATH "."
+# define HEADERPATH "."
+# define CONFIGPATH "."
+#endif
+char *tfmpath = TFMPATH; /* pointer to directories for tfm files */
+char *pkpath = PKPATH; /* pointer to directories for pk files */
+char *vfpath = VFPATH; /* pointer to directories for vf files */
+char *figpath = FIGPATH; /* pointer to directories for figure files */
+char *headerpath = HEADERPATH; /* pointer to directories for header files */
+char *configpath = CONFIGPATH; /* where to find config files */
+#ifndef PICTPATH
+#ifndef __THINK__
+#define PICTPATH "."
+#else
+#define PICTPATH ":"
+#endif
+#endif
+char *pictpath = PICTPATH; /* where IFF/etc. pictures are found */
+#ifdef SEARCH_SUBDIRECTORIES
+char *fontsubdirpath = FONTSUBDIRPATH;
+#endif
+#endif /* ! KPATHSEA */
+#ifdef FONTLIB
+char *flipath = FLIPATH; /* pointer to directories for fli files */
+char *fliname = FLINAME; /* pointer to names of fli files */
+#endif
+integer swmem; /* font memory in the PostScript printer */
+int quiet; /* should we only print errors to stderr? */
+int filter; /* act as filter default output to stdout,
+ default input to stdin? */
+int dvips_debug_flag; /* output config and map files to stderr if 1 */
+int prettycolumn; /* the column we are at when running pretty */
+int gargc; /* global argument count */
+char **gargv; /* global argument vector */
+int totalpages = 0; /* total number of pages */
+Boolean reverse; /* are we going reverse? */
+Boolean usesPSfonts; /* do we use local PostScript fonts? */
+Boolean usesspecial; /* do we use \special? */
+Boolean headers_off; /* do we send headers or not? */
+Boolean usescolor; /* IBM: color - do we use colors? */
+const char *headerfile; /* default header file */
+char *warningmsg; /* a message to write, if set in config file */
+Boolean multiplesects; /* more than one section? */
+Boolean disablecomments; /* should we suppress any EPSF comments? */
+char *printer; /* what printer to send this to? */
+char *mfmode; /* default MF mode */
+char *mflandmode; /* allow an optional landscape mode def */
+int mfmode_option; /* set by -mode command-line option */
+int oname_option; /* set by -o option */
+frametype frames[MAXFRAME]; /* stack for virtual fonts */
+integer pagecost; /* memory used on the page being prescanned */
+int delchar; /* characters to delete from prescanned page */
+integer fsizetol; /* max dvi units error for psfile font sizes */
+Boolean includesfonts; /* are fonts used in included psfiles? */
+fontdesctype *fonthd[MAXFONTHD];/* list headers for included fonts of 1 name */
+int nextfonthd; /* next unused fonthd[] index */
+char xdig[256]; /* table for reading hexadecimal digits */
+char banner[] = BANNER; /* our startup message */
+char banner2[] = BANNER2; /* our second startup message */
+Boolean noenv = 0; /* ignore PRINTER envir variable? */
+Boolean dopprescan = 0; /* do we do a scan before the prescan? */
+struct papsiz *papsizes; /* all available paper size */
+int headersready; /* ready to check headers? */
+#if defined(MSDOS) || defined(OS2) || defined(ATARIST)
+char *mfjobname = NULL; /* name of mfjob file if given */
+FILE *mfjobfile = NULL; /* mfjob file for font making instructions */
+#endif
+#ifdef DEBUG
+integer debug_flag = 0;
+#endif /* DEBUG */
+char queryline[256]; /* interactive query of options */
+int qargc;
+char *qargv[32];
+char queryoptions;
+#ifdef HPS
+Boolean HPS_FLAG = 0;
+#endif
+
+/* Declare the routine to get the current working directory. */
+
+/* The getwd/getcwd stuff here is not portable, and I don't think it's
+ worth it to include xgetcwd.d just so we can print the full pathname
+ of the DVI file in the output. --karl */
+#define IGNORE_CWD
+
+#ifndef IGNORE_CWD
+#ifndef HAVE_GETCWD
+extern char *getwd (); /* said to be faster than getcwd (SunOS man page) */
+#define getcwd(b, len) getwd(b) /* used here only when b nonnull */
+#else
+#ifdef ANSI
+extern char *getcwd (char *, int);
+#else
+extern char *getcwd ();
+#endif /* not ANSI */
+#endif /* not HAVE_GETWD */
+#if defined(SYSV) || defined(VMS) || (defined(MSDOS) && !defined(__DJGPP__)) || defined(OS2) || defined(ATARIST)
+#define MAXPATHLEN (256)
+#else
+#include <sys/param.h> /* for MAXPATHLEN */
+#endif
+#endif /* not IGNORE_CWD */
+
+static const char *helparr[] = {
+#ifndef VMCMS
+"Usage: dvips [OPTION]... FILENAME[.dvi]",
+#else
+" VM/CMS Usage:",
+" dvips fname [ftype [fmode]] [options]",
+"or",
+" dvips fname[.ftype[.fmode]] [options]",
+#endif
+"Convert DVI input files to PostScript.",
+"See http://tug.org/dvips/ for the full manual and other information.",
+"",
+"Options:",
+"-a* Conserve memory, not time -A Print only odd (TeX) pages",
+"-b # Page copies, for posters e.g. -B Print only even (TeX) pages",
+"-bitmapfontenc [on,off,strict] control bitmap font encoding",
+"-c # Uncollated copies -C # Collated copies",
+"-d # Debugging -D # Resolution",
+"-e # Maxdrift value -E* Try to create EPSF",
+"-f* Run as filter -F* Send control-D at end",
+#ifdef SHIFTLOWCHARS
+" -G* Shift low chars to higher pos.",
+#endif
+"-h f Add header file",
+"-i* Separate file per section",
+"-j* Download fonts partially",
+"-k* Print crop marks -K* Pull comments from inclusions",
+"-l # Last page -L* Last special papersize wins",
+"-m* Manual feed -M* Don't make fonts",
+"-mode s Metafont device name",
+"-n # Maximum number of pages -N* No structured comments",
+"-noomega Disable Omega extensions",
+"-noptex Disable pTeX extensions",
+"-o f Output file -O c Set/change paper offset",
+#if defined(MSDOS) || defined(OS2)
+"-p # First page -P s Load $s.cfg",
+#else
+"-p # First page -P s Load config.$s",
+#endif
+"-pp l Print only pages listed",
+"-q* Run quietly",
+"-r* Reverse order of pages -R* Run securely",
+"-s* Enclose output in save/restore -S # Max section size in pages",
+"-t s Paper format -T c Specify desired page size",
+"-title s Title in comment",
+"-u s PS mapfile -U* Disable string param trick",
+"-v Print version number and quit -V* Send downloadable PS fonts as PK",
+"-x # Override dvi magnification -X # Horizontal resolution",
+"-y # Multiply by dvi magnification -Y # Vertical resolution",
+#ifdef HPS
+"-z* Hyper PS -Z* Compress bitmap fonts",
+#else
+" -Z* Compress bitmap fonts",
+#endif
+/*"- Interactive query of options", */
+" # = number f = file s = string * = suffix, `0' to turn off",
+" c = comma-separated dimension pair (e.g., 3.2in,-32.1cm)",
+" l = comma-separated list of page ranges (e.g., 1-4,7-9)", 0};
+
+void
+help(int status)
+{
+ const char **p;
+ FILE *f = status == 0 ? stdout : stderr;
+ for (p=helparr; *p; p++)
+ fprintf (f, "%s\n", *p);
+
+ putc ('\n', f);
+#ifdef KPATHSEA
+ fputs (kpse_bug_address, f);
+#endif
+}
+
+static void
+freememforpsnames(void)
+{
+ int i;
+
+ for (i = 0; i < unused_top_of_psnames && downloadedpsnames[i]; i++)
+ free (downloadedpsnames[i]);
+}
+
+/*
+ * This error routine prints an error message; if the first
+ * character is !, it aborts the job.
+ */
+
+static char *progname;
+
+void
+error_with_perror(const char *s, const char *fname)
+{
+ if (prettycolumn > 0)
+ fprintf(stderr,"\n");
+ prettycolumn = 0;
+ fprintf_str(stderr, "%s: %s", progname, s);
+ if (fname) {
+ putc (' ', stderr);
+ perror (fname);
+ } else {
+ putc ('\n', stderr);
+ }
+
+ if (*s=='!') {
+ freememforpsnames();
+ if (bitfile != NULL) {
+ cleanprinter();
+ }
+ exit(1); /* fatal */
+ }
+}
+
+/*
+ * This error routine prints an error message; if the first
+ * character is !, it aborts the job.
+ */
+void
+error(const char *s)
+{
+ error_with_perror (s, NULL);
+}
+
+#ifndef KPATHSEA
+char *
+concat(char *s1, char *s2)
+{
+ char *s = malloc(strlen(s1)+strlen(s2)+1);
+ if (s == NULL) {
+ fprintf(stderr, "Malloc failed to give %d bytes.\nAborting\n",
+ strlen(s1)+strlen(s2)+1);
+ exit(1);
+ }
+ strcpy(s, s1);
+ strcat(s, s2);
+}
+#endif
+
+/* Report a warning if both checksums are nonzero, they don't match, and
+ the user hasn't turned it off. */
+
+void
+check_checksum(unsigned c1, unsigned c2, const char *name)
+{
+ if (c1 && c2 && c1 != c2
+#ifdef KPATHSEA
+ && !kpse_tex_hush ("checksum")
+#endif
+ ) {
+ char *msg = concat ("Checksum mismatch in %s", name);
+ error (msg);
+ free (msg);
+ }
+}
+
+/*
+ * This is our malloc that checks the results. We debug the
+ * allocations but not the frees, since memory fragmentation
+ * might be such that we can never use the free'd memory and
+ * it's wise to be conservative. The only real place we free
+ * is when repacking *huge* characters anyway.
+ */
+#ifdef DEBUG
+static integer totalalloc = 0;
+#endif
+char *
+mymalloc(integer n)
+{
+ char *p;
+
+#ifdef SMALLMALLOC
+ if (n > 65500L)
+ error("! can't allocate more than 64K!");
+#endif
+ if (n <= 0) /* catch strange 0 mallocs in flib.c without breaking code */
+ n = 1;
+#ifdef DEBUG
+ totalalloc += n;
+ if (dd(D_MEM)) {
+#ifdef SHORTINT
+ fprintf(stderr, "Alloc %ld\n", n);
+#else
+ fprintf(stderr, "Alloc %d\n", n);
+#endif
+ }
+#endif
+ p = (char *) malloc(n);
+ if (p == NULL)
+ error("! no memory");
+ return p;
+}
+static void
+morestrings(void) {
+ strings = mymalloc((integer)STRINGSIZE);
+ nextstring = strings;
+ maxstring = strings + STRINGSIZE - 200;
+ *nextstring++ = 0;
+}
+void
+checkstrings(void) {
+ if (nextstring - strings > STRINGSIZE / 2)
+ morestrings();
+}
+/*
+ * Initialize sets up all the globals and data structures.
+ */
+static void
+initialize(void)
+{
+ int i;
+ const char *s;
+
+ nextfonthd = 0;
+ for (i=0; i<256; i++)
+ xdig[i] = 0;
+ i = 0;
+ for (s="0123456789ABCDEF"; *s!=0; s++)
+ xdig[(int)*s] = i++;
+ i = 10;
+ for (s="abcdef"; *s!=0; s++)
+ xdig[(int)*s] = i++;
+ for(i=0; i < DOWNLOADEDPSSIZE; i++)
+ downloadedpsnames[i] = NULL;
+ unused_top_of_psnames = 0;
+ morestrings();
+ maxpages = 100000;
+ numcopies = 1;
+ iname = fulliname = strings;
+ bitfile = NULL;
+ bytesleft = 0;
+ swmem = SWMEM;
+ oname = OUTPATH;
+ sendcontrolD = 0;
+ shiftlowchars = 0;
+ multiplesects = 0;
+ disablecomments = 0;
+ maxdrift = -1;
+ vmaxdrift = -1;
+ dontmakefont = !MAKE_TEX_PK_BY_DEFAULT;
+}
+/*
+ * This routine copies a string into the string `pool', safely.
+ */
+char *
+newstring(const char *s)
+{
+ int l;
+ char *q;
+
+ if (s == NULL)
+ return(NULL);
+ l = strlen(s);
+ if (nextstring + l >= maxstring)
+ morestrings();
+ if (nextstring + l >= maxstring)
+ error("! out of string space");
+ strcpy(nextstring, s);
+ q = nextstring;
+ nextstring += l + 1;
+ return(q);
+}
+static void
+newoutname(void) {
+ static int seq = 0;
+ static char *seqptr = 0;
+ char *p, *q;
+
+ if (oname == 0 || *oname == 0)
+ error("! need an output file name to specify separate files");
+ if (*oname != '!' && *oname != '|') {
+ if (seqptr == 0) {
+ q = newstring(oname);
+ for (p = q; *p; p++) /* find last dot after last slash */
+ if (*p == '.')
+ seqptr = p + 1;
+ else if (IS_DIR_SEP (*p))
+ seqptr = 0;
+#ifdef WIN32
+ else if (IS_KANJI(p))
+ p++;
+#endif
+ if (seqptr == 0)
+ seqptr = p;
+ nextstring += 5; /* make room for the number, up to five digits */
+ oname = q;
+ }
+ sprintf(seqptr, "%03d", ++seq);
+ }
+}
+/*
+ * This routine reverses a list, where a list is defined to be any
+ * structure whose first element is a pointer to another such structure.
+ */
+VOID *
+revlist(VOID *p)
+{
+ struct list {
+ struct list *next;
+ } *pp = (struct list *)p, *qq = 0, *tt;
+
+ while (pp) {
+ tt = pp->next;
+ pp->next = qq;
+ qq = pp;
+ pp = tt;
+ }
+ return (VOID *)qq;
+}
+/* this asks for a new set of arguments from the command line */
+static void
+queryargs(void)
+{
+ fputs("Options: ",stdout);
+ fgets(queryline,256,stdin);
+ qargc=1;
+ if ( (qargv[1] = strtok(queryline," \n")) != (char *)NULL ) {
+ qargc=2;
+ while ( ((qargv[qargc] = strtok((char *)NULL," \n")) != (char *)NULL)
+ && (qargc < 31) )
+ qargc++;
+ }
+ qargv[qargc] = (char *)NULL;
+}
+
+/*
+ * Finally, our main routine.
+ */
+#ifdef VMS
+main(void)
+#else
+int
+main(int argc, char **argv)
+#endif
+{
+ int i, lastext = -1;
+#ifdef MVSXA
+ int firstext = -1;
+#endif
+ sectiontype *sects;
+
+#ifdef WIN32
+#if defined(KPATHSEA)
+ int ac;
+ char **av, *enc;
+#endif
+ SET_BINARY(fileno(stdin));
+ SET_BINARY(fileno(stdout));
+#endif
+
+#ifdef __APPLE__ /* for Mac OS X, T. Uchiyama */
+ struct rlimit rl;
+ getrlimit(RLIMIT_STACK, &rl);
+ rl.rlim_cur = 2048 * 1024;
+ setrlimit(RLIMIT_STACK, &rl);
+#endif
+#ifdef KPATHSEA
+ kpse_set_program_name (argv[0], "dvips");
+ kpse_set_program_enabled (kpse_pk_format, MAKE_TEX_PK_BY_DEFAULT, kpse_src_compile);
+#ifdef WIN32
+ enc = kpse_var_value("command_line_encoding");
+ if (get_command_line_args_utf8(enc, &ac, &av)) {
+ argc = ac;
+ argv = av;
+ }
+#endif
+#endif
+
+#ifdef __THINK__
+ argc = dcommand(&argv); /* do I/O stream redirection */
+#endif
+#ifdef VMS /* Grab the command-line buffer */
+ short len_arg;
+ $DESCRIPTOR( verb_dsc, "DVIPS "); /* assume the verb is always DVIPS */
+ struct dsc$descriptor_d temp_dsc = { 0, DSC$K_DTYPE_T, DSC$K_CLASS_D, 0};
+
+ progname = &thh[0];
+ strcpy(progname,"DVIPS%ERROR");
+
+ lib$get_foreign( &temp_dsc, 0, &len_arg, 0); /* Get the command line */
+ str$prefix(&temp_dsc, &verb_dsc); /* prepend the VERB */
+ len_arg += verb_dsc.dsc$w_length; /* update the length */
+ temp_dsc.dsc$a_pointer[len_arg] = '\0'; /* terminate the string */
+ gargv = &temp_dsc.dsc$a_pointer; /* point to the buffer */
+ gargc = 1; /* only one big argv */
+#else
+ progname = argv[0];
+ gargv = argv;
+ gargc = argc;
+/* we sneak a look at the first arg in case it's debugging */
+#ifdef DEBUG
+ if (argc > 1 && strncmp(argv[1], "-d", 2)==0) {
+ if (argv[1][2]==0 && argc > 2) {
+ if (sscanf(argv[2], "%d", &debug_flag)==0)
+ debug_flag = 0;
+ } else {
+ if (sscanf(argv[1]+2, "%d", &debug_flag)==0)
+ debug_flag = 0;
+ }
+ }
+#if defined(KPATHSEA) && defined(KPSE_DEBUG)
+ if (dd(D_FILES)) KPSE_DEBUG_SET (KPSE_DEBUG_FOPEN);
+ if (dd(D_PATHS)) KPSE_DEBUG_SET (KPSE_DEBUG_PATHS);
+ if (dd(D_STAT)) KPSE_DEBUG_SET (KPSE_DEBUG_STAT);
+ if (dd(D_HASH)) KPSE_DEBUG_SET (KPSE_DEBUG_HASH);
+ if (dd(D_EXPAND)) KPSE_DEBUG_SET (KPSE_DEBUG_EXPAND);
+ if (dd(D_SEARCH)) KPSE_DEBUG_SET (KPSE_DEBUG_SEARCH);
+#endif /* KPATHSEA && KPSE_DEBUG */
+#endif /* DEBUG */
+#ifdef KPATHSEA
+ if (argc > 1) {
+ if (argc == 2 && strncmp(argv[1], "-?", 2) == 0) {
+ printf("%s %s\n", banner, banner2);
+ help(0);
+ exit(0);
+ }
+ if (argc == 2 && strncmp(argv[1], "-v", 2) == 0) {
+ printf("%s %s\n", banner, banner2);
+ exit(0);
+ }
+ }
+#endif /* KPATHSEA */
+#endif /* VMS */
+ dvips_debug_flag = 0;
+ { /* for compilers incompatible with c99 */
+ char *s = getenv ("DVIPSDEBUG");
+ if (s) {
+ dvips_debug_flag = 1;
+ } else {
+ s = getenv ("KPATHSEA_DEBUG");
+ if (s) {
+ dvips_debug_flag = 1;
+ }
+ }
+ }
+ initialize();
+ checkenv(0);
+ getdefaults(CONFIGFILE);
+ getdefaults((char *)0);
+/*
+ * This next whole big section of code is straightforward; we just scan
+ * the options. An argument can either immediately follow its option letter
+ * or be separated by spaces. Any argument not preceded by '-' and an
+ * option letter is considered a file name; the program complains if more
+ * than one file name is given, and uses stdin if none is given.
+ */
+#ifdef VMS
+ vmscli(void);
+ papsizes = (struct papsiz *)revlist((void *)papsizes); /* Added by PWD 21-Mar-1997 */
+#else
+ queryoptions = 0;
+ do
+ {
+ for (i=1; i<argc; i++) {
+ if (*argv[i]=='-') {
+ char *p=argv[i]+2;
+ char c=argv[i][1];
+#ifdef KPATHSEA
+ /* print information and exit if dvips finds options
+ --help or --version */
+ if (strlen (argv[i] + 1) == 5 && strcmp (argv[i] + 1, "-help") == 0) {
+ help (0);
+ exit (0);
+ }
+ if (strlen (argv[i] + 1) == 8 &&
+ strcmp (argv[i] + 1, "-version") == 0) {
+ puts (BANNER);
+ puts (kpathsea_version_string);
+ puts ("Copyright 2021 Radical Eye Software.\n\
+There is NO warranty. You may redistribute this software\n\
+under the terms of the GNU General Public License\n\
+and the Dvips copyright.\n\
+For more information about these matters, see the files\n\
+named COPYING and dvips.h.\n\
+Primary author of Dvips: T. Rokicki.");
+ exit (0);
+ }
+#endif /* KPATHSEA */
+ switch (c) {
+case '-':
+ queryoptions = 1;
+ break;
+case 'a':
+ dopprescan = (*p != '0');
+ break;
+case 'b':
+ if (strcmp(p, "itmapfontenc") == 0) {
+ p = argv[++i] ;
+ if (strcmp(p, "off") == 0) {
+ bitmapencopt(0) ; // disable bitmap font enc feature
+ } else if (strcmp(p, "on") == 0) {
+ bitmapencopt(1) ; // try to include bitmap font encs
+ } else if (strcmp(p, "strict") == 0) {
+ bitmapencopt(2) ; // issue warnings for missing encs
+ } else {
+ error(
+ "! -bitmapfontenc option only supports off, on, and strict") ;
+ }
+ break ;
+ }
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (sscanf(p, "%d", &pagecopies)==0)
+ error("! Bad number of page copies option (-b).");
+ if (pagecopies < 1 || pagecopies > 1000)
+ error("! can only print one to a thousand page copies");
+ break;
+case 'c' :
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (sscanf(p, "%d", &numcopies)==0)
+ error("! Bad number of copies option (-c).");
+ break;
+case 'd' :
+#ifdef DEBUG
+ {
+ int old_debug = debug_flag;
+ static int warned_already = 0;
+
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (sscanf(p, "%d", &debug_flag)==0)
+ error("! Bad debug option (-d).");
+ if (debug_flag != old_debug && warned_already++ == 0) {
+ fprintf(stderr,
+ "I found a debug option that was not the first argument to the dvips\n");
+ fprintf(stderr,
+ "command. Some debugging output may have been lost because of this.\n");
+ }
+ break;
+ }
+#else
+ error("not compiled in debug mode");
+ break;
+#endif /* DEBUG */
+case 'e' :
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (sscanf(p, "%d", &maxdrift)==0 || maxdrift<0)
+ error("! Bad maxdrift option (-e).");
+ vmaxdrift = maxdrift;
+ break;
+case 'f' :
+ filter = (*p != '0');
+ if (filter)
+ oname = "";
+ noenv = 1;
+ sendcontrolD = 0;
+ break;
+case 'u' :
+ {
+ char PSname[300];
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ strcpy(PSname, p);
+ if (!strchr(PSname, '.'))
+ strcat(PSname, ".map"); /* default extension */
+ if (PSname[0] == '+')
+ getpsinfo(PSname+1);
+ else
+ psmapfile = strdup(PSname); /* a cute small memory leak (just as in 'p' option handling in resident.c) */
+ }
+ break;
+case 'h' : case 'H' :
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (strcmp(p, "-") == 0)
+ headers_off = 1;
+ else
+ add_header(p);
+ break;
+case 'i':
+ sepfiles = (*p != '0');
+ if (sepfiles && maxsecsize == 0) {
+ maxsecsize = 1; /* default section size to one page/file */
+ }
+ break;
+case 'j':
+ partialdownload = (*p != '0');
+ break;
+case 'k':
+ cropmarks = (*p != '0');
+ break;
+case 'R':
+ if (*p == '0') {
+ secure = 0;
+ } else if (*p == '2') {
+ secure = 2;
+ } else {
+ secure = 1;
+ }
+ if (secure)
+ secure_option = 1; /* Never used */
+ break;
+case 'S':
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (sscanf(p, "%d", &maxsecsize)==0)
+ error("! Bad section size arg (-S).");
+ break;
+case 'm' :
+ if (STREQ (p, "ode") && argv[i+1]) {
+ mfmode = argv[++i];
+ mfmode_option = 1;
+ } else
+ manualfeed = (*p != '0');
+ break;
+case 'n' :
+ if (STREQ (p, "oomega")) {
+ noomega = 1;
+ } else if (STREQ (p, "optex")) {
+ noptex = 1;
+ } else {
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+#ifdef SHORTINT
+ if (sscanf(p, "%ld", &maxpages)==0)
+#else /* ~SHORTINT */
+ if (sscanf(p, "%d", &maxpages)==0)
+#endif /* ~SHORTINT */
+ error("! Bad number of pages option (-n).");
+ }
+ break;
+case 'o' :
+ if (*p == 0 && argv[i+1] &&
+ (STREQ (argv[i+1], "-") || argv[i+1][0] != '-'))
+ p = argv[++i];
+ oname_option = 1;
+ oname = p;
+ noenv = 1;
+ sendcontrolD = 0;
+#if defined(MSDOS) || defined(OS2)
+ if (*oname && oname[strlen(oname)-1] == ':')
+ oname[strlen(oname)-1] = 0; /* strip ':' off */
+#endif
+ break;
+case 'O' :
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ handlepapersize(p, &hoff, &voff);
+ break;
+case 'T' :
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ handlepapersize(p, &hpapersize, &vpapersize);
+ if (landscape) {
+ error(
+ "both landscape and papersize specified; ignoring landscape");
+ landscape = 0;
+ }
+ lastpsizwins = 0;
+ break;
+case 'p' :
+#if defined(MSDOS) || defined(OS2) || defined(ATARIST)
+ /* check for emTeX job file (-pj=filename) */
+ if (*p == 'j') {
+ p++;
+ if (*p == '=' || *p == ':')
+ p++;
+ mfjobname = newstring(p);
+ break;
+ }
+ /* must be page number instead */
+#endif
+ if (*p == 'p') { /* a -pp specifier for a page list? */
+ p++;
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (ParsePages(p))
+ error("! Bad page list specifier (-pp).");
+ pagelist = 1;
+ break;
+ }
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (*p == '=') {
+ abspage = 1;
+ p++;
+ }
+#ifdef SHORTINT
+ switch(sscanf(p, "%ld.%ld", &firstpage, &firstseq)) {
+#else /* ~SHORTINT */
+ switch(sscanf(p, "%d.%d", &firstpage, &firstseq)) {
+#endif /* ~SHORTINT */
+case 1: firstseq = 0;
+case 2: break;
+default:
+#ifdef KPATHSEA
+ error(concat3 ("! Bad first page option (-p ", p, ")."));
+#else
+ error("! Bad first page option (-p).");
+#endif
+ }
+ notfirst = 1;
+ break;
+case 'l':
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (*p == '=') {
+ abspage = 1;
+ p++;
+ }
+#ifdef SHORTINT
+ switch(sscanf(p, "%ld.%ld", &lastpage, &lastseq)) {
+#else /* ~SHORTINT */
+ switch(sscanf(p, "%d.%d", &lastpage, &lastseq)) {
+#endif /* ~SHORTINT */
+case 1: lastseq = 0;
+case 2: break;
+default:
+#ifdef KPATHSEA
+ error(concat3 ("! Bad last page option (-l ", p, ")."));
+#else
+ error("! Bad last page option (-l).");
+#endif
+ }
+ notlast = 1;
+ break;
+case 'A':
+ oddpages = 1;
+ break;
+case 'B':
+ evenpages = 1;
+ break;
+case 'q' : case 'Q' :
+ quiet = (*p != '0');
+ break;
+case 'r' :
+ reverse = (*p != '0');
+ break;
+case 't' :
+ if (STREQ (p, "itle") && argv[i+1]) {
+ titlename = argv[++i];
+ } else {
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (strcmp(p, "landscape") == 0) {
+ if (hpapersize || vpapersize)
+ error("both landscape and papersize specified; ignoring landscape");
+ else
+ landscape = 1;
+ } else
+ paperfmt = p;
+ }
+ break;
+case 'v':
+ printf ("%s %s\n", banner, banner2);
+ exit (0);
+ break;
+case 'x' : case 'y' :
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (sscanf(p, "%lg", &mag)==0 || mag < 1 ||
+ mag > 1000000)
+ error("! Bad magnification parameter (-x or -y).");
+ overridemag = (c == 'x' ? 1 : -1);
+ break;
+case 'C' :
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (sscanf(p, "%d", &collatedcopies)==0)
+ error("! Bad number of collated copies option (-C).");
+ break;
+case 'D' :
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (sscanf(p, "%d", &actualdpi)==0 || actualdpi < 10 ||
+ actualdpi > 10000)
+ error("! Bad dpi parameter (-D).");
+ vactualdpi = actualdpi;
+ /* If we had the mode from config.ps, don't use it.
+ If they specified one with -mode, keep it. */
+ if (!mfmode_option)
+ mfmode = NULL;
+ break;
+case 'E' :
+ tryepsf = (*p != '0');
+ removecomments = disablecomments = 0;
+ if (tryepsf && maxsecsize == 0)
+ maxsecsize = 1;
+ break;
+case 'K' :
+ removecomments = (*p != '0');
+ break;
+case 'L' :
+ lastpsizwins = (*p != '0');
+ break;
+case 'U' :
+ nosmallchars = (*p != '0');
+ break;
+case 'X' :
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (sscanf(p, "%d", &actualdpi)==0 || actualdpi < 10 ||
+ actualdpi > 10000)
+ error("! Bad dpi parameter (-D).");
+ break;
+case 'Y' :
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ if (sscanf(p, "%d", &vactualdpi)==0 || vactualdpi < 10 ||
+ vactualdpi > 10000)
+ error("! Bad dpi parameter (-D).");
+ vactualdpi = vactualdpi;
+ break;
+case 'F' :
+ sendcontrolD = (*p != '0');
+ break;
+case 'G' :
+ shiftlowchars = (*p != '0');
+ break;
+case 'M':
+ dontmakefont = (*p != '0');
+#ifdef KPATHSEA
+ kpse_set_program_enabled (kpse_pk_format, !dontmakefont,
+ kpse_src_cmdline);
+#endif
+ break;
+case 'N' :
+ disablecomments = (*p != '0');
+ break;
+case 'P' :
+ {
+ struct papsiz *opapsiz = papsizes;
+ struct papsiz *npapsiz;
+ papsizes = 0;
+ if (*p == 0 && argv[i+1])
+ p = argv[++i];
+ printer = p;
+ noenv = 1;
+ if (!getdefaults("")) {
+ /* If no config file, default the output name. */
+ oname = concat ("| lpr -P", printer);
+ }
+ npapsiz = opapsiz;
+ while (npapsiz && npapsiz->next)
+ npapsiz = npapsiz->next;
+ if (npapsiz) {
+ npapsiz->next = papsizes;
+ papsizes = opapsiz;
+ }
+ }
+ break;
+case 's':
+ safetyenclose = (*p != '0');
+ break;
+case 'V':
+ downloadpspk = (*p != '0');
+ break;
+case 'Z':
+ compressed = (*p != '0');
+ break;
+#ifdef HPS
+case 'z':
+ HPS_FLAG = (*p != '0');
+ break;
+#endif
+case '?':
+ break; /* We print the banner and help msg below. */
+default:
+#ifdef KPATHSEA
+ error(concat3 ("! Invalid option `", argv[i],
+ "'. Try --help for more information."));
+#else
+ error(
+ "! Bad option, not one of acdefhijklmnopqrstxyzABCDEFKMNOPSTUXYZ?");
+#endif
+ }
+ } else {
+ if (*iname == 0) {
+ register char *p;
+
+ lastext = 0;
+ iname = nextstring;
+ p = argv[i];
+ if (NAME_BEGINS_WITH_DEVICE(p)) { /* get past DOSISH drive */
+ *nextstring++ = *p++;
+ *nextstring++ = *p++;
+ }
+ while (*p) {
+ *nextstring = *p++;
+ if (*nextstring == '.')
+ lastext = nextstring - iname;
+ else if (IS_DIR_SEP(*nextstring))
+ lastext = 0;
+#ifdef WIN32
+ else if (IS_KANJI(p-1)) {
+ nextstring++;
+ *nextstring = *p++;
+ }
+#endif
+ nextstring++;
+ }
+ *nextstring++ = '.';
+ *nextstring++ = 'd';
+ *nextstring++ = 'v';
+ *nextstring++ = 'i';
+ *nextstring++ = 0;
+ } else
+#ifdef KPATHSEA
+ error(concat3("! Second input filename (", argv[i],
+ ") specified."));
+#else
+ error("! Two input file names specified.");
+#endif
+ }
+ }
+ if (noenv == 0) {
+ register char *p;
+ struct papsiz *opapsiz = papsizes;
+ papsizes = 0;
+ if (0 != (p = getenv("PRINTER"))) {
+#if defined(MSDOS) || defined(OS2)
+ strcpy(nextstring, p);
+ strcat(nextstring, ".cfg");
+#else
+ strcpy(nextstring, "config.");
+ strcat(nextstring, p);
+#endif
+ getdefaults(nextstring);
+ }
+ {
+ struct papsiz *npapsiz = opapsiz;
+ while (npapsiz && npapsiz->next)
+ npapsiz = npapsiz->next;
+ if (npapsiz) {
+ npapsiz->next = papsizes;
+ papsizes = opapsiz;
+ }
+ }
+ }
+ papsizes = (struct papsiz *)revlist((void *)papsizes);
+ if (queryoptions != 0) { /* get new options */
+ fprintf(stderr, "%s %s\n", banner, banner2);
+ help(1);
+ queryargs();
+ if (qargc == 1)
+ queryoptions = 0;
+ else {
+ qargv[0] = argv[0];
+ argc=qargc;
+ argv=qargv;
+ }
+ }
+ } while (queryoptions != 0);
+#endif
+#if defined(KPATHSEA) && defined(KPSE_DEBUG) && defined(DEBUG) /* this should really be part of a subroutine */
+ if (dd(D_FILES)) KPSE_DEBUG_SET (KPSE_DEBUG_FOPEN);
+ if (dd(D_PATHS)) KPSE_DEBUG_SET (KPSE_DEBUG_PATHS);
+ if (dd(D_STAT)) KPSE_DEBUG_SET (KPSE_DEBUG_STAT);
+ if (dd(D_HASH)) KPSE_DEBUG_SET (KPSE_DEBUG_HASH);
+ if (dd(D_EXPAND)) KPSE_DEBUG_SET (KPSE_DEBUG_EXPAND);
+ if (dd(D_SEARCH)) KPSE_DEBUG_SET (KPSE_DEBUG_SEARCH);
+#endif /* KPATHSEA && KPSE_DEBUG && DEBUG */
+ checkenv(1);
+#ifdef KPATHSEA
+ kpse_init_prog ("DVIPS", actualdpi, mfmode, "cmr10");
+ kpse_make_tex_discard_errors = quiet;
+#endif
+/*
+ * The logic here is a bit convoluted. Since all `additional'
+ * PostScript font information files are loaded *before* the master
+ * one, and yet they should be able to override the master one, we
+ * have to add the information in the master list to the *ends* of
+ * the hash chain. We do this by reversing the lists, adding them
+ * to the front, and then reversing them again.
+ */
+ revpslists();
+ getpsinfo((char *)NULL);
+ revpslists();
+ if (dvips_debug_flag) {
+ if (!quiet)
+ fprintf(stderr, "\n%s %s\n", banner, banner2);
+ prettycolumn = 0;
+ } else {
+ if (!quiet)
+ fprintf(stderr, "%s %s\n", banner, banner2);
+ }
+ if (*iname) {
+ dvifile = fopen(iname, READBIN);
+/*
+ * Allow names like a.b.
+ */
+ if (dvifile == 0) {
+ iname[strlen(iname)-4] = 0; /* remove the .dvi suffix */
+ dvifile = fopen(iname, READBIN);
+ }
+ }
+ if (oname[0] == '-' && oname[1] == 0)
+ oname = "";
+ else if (*oname == 0 && ! filter && *iname) {
+ /* determine output name from input name */
+ oname = nextstring;
+#ifndef VMCMS /* get stuff before LAST "." */
+ lastext = strlen(iname) - 1;
+ while (iname[lastext] != '.' && lastext > 0)
+ lastext--;
+ if (iname[lastext] != '.')
+ lastext = strlen(iname) - 1;
+#else /* for VM/CMS we take the stuff before FIRST "." */
+ lastext = strchr(iname,'.') - iname;
+ if ( lastext <= 0 ) /* if no '.' in "iname" */
+ lastext = strlen(iname) -1;
+#endif
+#ifdef MVSXA /* IBM: MVS/XA */
+ if (strchr(iname, '(') != NULL &&
+ strchr(iname, ')') != NULL) {
+ firstext = strchr(iname, '(') - iname + 1;
+ lastext = strrchr(iname, ')') - iname - 1;
+ }
+ else {
+ if (strrchr(iname, '.') != NULL) {
+ lastext = strrchr(iname, '.') - iname - 1;
+ }
+ else lastext = strlen(iname) - 1;
+ if (strchr(iname, '\'') != NULL)
+ firstext = strchr(iname, '.') - iname + 1;
+ else firstext = 0;
+ }
+#endif /* IBM: MVS/XA */
+#ifdef MVSXA /* IBM: MVS/XA */
+ for (i=firstext; i<=lastext; i++)
+#else
+ for (i=0; i<=lastext; i++)
+#endif
+ *nextstring++ = iname[i];
+ if (iname[lastext] != '.')
+ *nextstring++ = '.';
+#ifndef VMCMS
+ *nextstring++ = 'p';
+ *nextstring++ = 's';
+#else /* might as well keep things uppercase */
+ *nextstring++ = 'P';
+ *nextstring++ = 'S';
+#endif
+ *nextstring++ = 0;
+/*
+ * Now we check the name, and `throw away' any prefix information.
+ * This means throwing away anything before (and including) a colon
+ * or slash.
+ */
+ {
+ const char *p = NAME_BEGINS_WITH_DEVICE(oname) ? oname + 2 : oname;
+
+ for (oname=p; *p && p[1]; p++)
+ if (IS_DIR_SEP(*p))
+ oname = p + 1;
+#ifdef WIN32
+ else if (IS_KANJI(p))
+ p++;
+#endif
+ }
+ }
+#ifdef DEBUG
+ if (dd(D_PATHS)) {
+#ifdef SHORTINT
+ fprintf_str(stderr,"input file %s output file %s swmem %ld\n",
+#else /* ~SHORTINT */
+ fprintf_str(stderr,"input file %s output file %s swmem %d\n",
+#endif /* ~SHORTINT */
+ iname, oname, swmem);
+#ifndef KPATHSEA
+ fprintf_str(stderr,"tfm path %s\npk path %s\n", tfmpath, pkpath);
+ fprintf_str(stderr,"fig path %s\nvf path %s\n", figpath, vfpath);
+ fprintf_str(stderr,"config path %s\nheader path %s\n",
+ configpath, headerpath);
+#endif
+#ifdef FONTLIB
+ fprintf_str(stderr,"fli path %s\nfli names %s\n", flipath, fliname);
+#endif
+ } /* dd(D_PATHS) */
+#endif /* DEBUG */
+
+/*
+ * Check if oname != iname
+ */
+ if (iname && *iname && oname && *oname) {
+#ifdef DOSISH
+ if (strcasecmp (iname, oname) == 0) {
+#else
+ if (strcmp (iname, oname) == 0) {
+#endif
+ fprintf (stderr, "! Output name should be different from input name.\n");
+ exit (20);
+ }
+ }
+/*
+ * Now we try to open the dvi file.
+ */
+ if (!quiet && warningmsg)
+ error(warningmsg);
+ headersready = 1;
+ headerfile = (compressed? CHEADERFILE : HEADERFILE);
+ add_header(headerfile);
+ if (*iname != 0) {
+ fulliname = nextstring;
+#ifndef IGNORE_CWD
+ if (!IS_DIR_SEP(*iname) && !NAME_BEGINS_WITH_DEVICE(iname)) {
+ getcwd(nextstring, MAXPATHLEN + 2);
+ while (*nextstring++);
+#ifdef VMS /* VMS doesn't need the '/' character appended */
+ nextstring--; /* so just back up one byte. */
+#else
+ *(nextstring-1) = '/';
+#endif
+ }
+#endif
+ strcpy(nextstring,iname);
+ while (*nextstring++); /* advance nextstring past iname */
+ } else if (filter) {
+ dvifile = stdin;
+ if (O_BINARY && !isatty(fileno(stdin)))
+ SET_BINARY(fileno(stdin));
+ } else {
+#ifdef KPATHSEA
+ fprintf (stderr, "dvips: Missing DVI file argument (or -f).\n");
+ fprintf (stderr, "dvips: Try --help for more information.\n");
+#else
+ help(1);
+#endif
+ exit(1);
+ }
+ if (dvifile==NULL) {
+ error_with_perror("DVI file can't be opened:", iname);
+ exit(1);
+ }
+ if (fseek(dvifile, 0L, 0) < 0)
+ error("! DVI file must not be a pipe.");
+
+ initcolor();
+#ifdef FONTLIB
+ fliload(); /* read the font libaries */
+#endif
+/*
+ * Now we do our main work.
+ */
+ swmem += fontmem;
+ if (maxdrift < 0) {
+ if (actualdpi <= 599)
+ maxdrift = actualdpi / 100;
+ else if (actualdpi < 1199)
+ maxdrift = actualdpi / 200 + 3;
+ else
+ maxdrift = actualdpi / 400 + 6;
+ }
+ if (vmaxdrift < 0) {
+ if (vactualdpi <= 599)
+ vmaxdrift = vactualdpi / 100;
+ else if (vactualdpi < 1199)
+ vmaxdrift = vactualdpi / 200 + 3;
+ else
+ vmaxdrift = vactualdpi / 400 + 6;
+ }
+ if (dopprescan)
+ pprescanpages();
+ prescanpages();
+#if defined MSDOS || defined OS2 || defined(ATARIST)
+ if (mfjobfile != (FILE*)NULL) {
+ char answer[5];
+ fputs("}\n",mfjobfile);
+ fclose(mfjobfile);
+ fputs("Exit to make missing fonts now (y/n)? ",stdout);
+ fgets(answer,4,stdin);
+ if (*answer=='y' || *answer=='Y')
+ exit(8); /* exit with errorlevel 8 for emTeX dvidrv */
+ }
+#endif
+ if (includesfonts)
+ add_header(IFONTHEADER);
+ if (usesPSfonts)
+ add_header(PSFONTHEADER);
+ if (usesspecial)
+ add_header(SPECIALHEADER);
+ if (usescolor) /* IBM: color */
+ add_header(COLORHEADER);
+#ifdef HPS
+ if (HPS_FLAG)
+ add_header(HPSHEADER);
+#endif
+ sects = sections;
+ totalpages *= collatedcopies;
+ if (sects == NULL || sects->next == NULL) {
+ sectioncopies = collatedcopies;
+ collatedcopies = 1;
+ } else {
+ if (! sepfiles)
+ multiplesects = 1;
+ }
+ totalpages *= pagecopies;
+ if (tryepsf) {
+ if (paperfmt || landscape || manualfeed ||
+ collatedcopies > 1 || numcopies > 1 || cropmarks ||
+ *iname == 0 ||
+ (totalpages > 1 && !(sepfiles && maxsecsize == 1))) {
+ error("Can't make it EPSF, sorry");
+ tryepsf = 0;
+ }
+ }
+#ifdef HPS
+ if (HPS_FLAG)
+ set_bitfile("head.tmp", 0);
+#endif
+ if (! sepfiles) {
+ initprinter(sections);
+ outbangspecials();
+ }
+
+ for (i=0; i<collatedcopies; i++) {
+ sects = sections;
+ while (sects != NULL) {
+ if (sepfiles) {
+ newoutname();
+ if (! quiet) {
+ if (prettycolumn + strlen(oname) + 6 > STDOUTSIZE) {
+ fprintf(stderr, "\n");
+ prettycolumn = 0;
+ }
+ fprintf_str(stderr, "(-> %s) ", oname);
+ prettycolumn += strlen(oname) + 6;
+ }
+#ifdef HPS
+ if (HPS_FLAG)
+ set_bitfile("head.tmp", 0);
+#endif
+ initprinter(sects);
+ outbangspecials();
+ } else if (! quiet) {
+ if (prettycolumn > STDOUTSIZE) {
+ fprintf(stderr, "\n");
+ prettycolumn = 0;
+ }
+ fprintf(stderr, ". ");
+ prettycolumn += 2;
+ }
+ fflush(stderr);
+ dosection(sects, sectioncopies);
+ sects = sects->next;
+ if (sepfiles) {
+#ifdef HPS
+ if (HPS_FLAG)
+ finish_hps();
+#endif
+ cleanprinter();
+ }
+ }
+ }
+ freememforpsnames();
+ if (! sepfiles) {
+#ifdef HPS
+ if (HPS_FLAG)
+ finish_hps();
+#endif
+ cleanprinter();
+ }
+ if (! quiet)
+ fprintf(stderr, "\n");
+#ifdef DEBUG
+ if (dd(D_MEM)) {
+#ifdef SHORTINT
+ fprintf(stderr, "Total memory allocated: %ld\n", totalalloc);
+#else
+ fprintf(stderr, "Total memory allocated: %d\n", totalalloc);
+#endif
+ }
+#endif
+ return found_problems ? EXIT_FAILURE : EXIT_SUCCESS;
+ /*NOTREACHED*/
+}
+#ifdef VMS
+#include "[.vms]vmscli.c"
+#endif
+
+#ifdef VMCMS /* IBM: VM/CMS */
+#include "dvipscms.h"
+#endif
+
+#ifdef MVSXA /* IBM: MVS/XA */
+#include "dvipsmvs.h"
+#endif
diff --git a/Build/source/texk/dvipsk/dvips.h b/Build/source/texk/dvipsk/dvips.h
new file mode 100644
index 00000000000..bc8b9186b75
--- /dev/null
+++ b/Build/source/texk/dvipsk/dvips.h
@@ -0,0 +1,379 @@
+/* $Id$
+ * Copyright 1986-2021 Tomas Rokicki.
+ * This is dvips, a freely redistributable PostScript driver
+ * for dvi files. You may freely use, modify and/or distribute this
+ * program or any portion thereof.
+ */
+
+/* This file is the header for dvips's global data structures. */
+
+#define CREATIONDATE
+
+#define MAX_CODE 0x110000
+#define MAX_2BYTES_CODE 0x10000
+#define VF_MEM_UNIT 0x10000
+#define CD_IDX(i) ((i>=MAX_2BYTES_CODE ? MAX_2BYTES_CODE : i))
+
+#define BANNER \
+"This is dvips(k) 2021.1 Copyright 2021 Radical Eye Software"
+#define BANNER2 "(www.radicaleye.com)"
+#ifdef KPATHSEA
+#include "config.h"
+#include "debug.h"
+#endif
+/* Please don't turn debugging off! */
+#ifndef DEBUG
+#define DEBUG
+#endif
+
+#ifndef KPATHSEA
+#include <stdio.h>
+#if defined(SYSV) || defined(VMS) || defined(__THINK__) || defined(MSDOS) || defined(OS2) || defined(ATARIST) || defined(WIN32)
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#endif
+#if defined(lint) && defined(sun)
+extern char *sprintf();
+#endif
+#include "paths.h"
+#include "debug.h"
+#ifdef VMS
+#include "[.vms]vms.h"
+#endif /* VMS */
+#include <stdlib.h>
+/*
+ * Is your malloc big?
+ */
+#if defined(MSDOS) && !defined(__EMX__) && !defined(DJGPP)
+#define SMALLMALLOC
+#endif
+#if defined(OS2) && defined(_MSC_VER)
+#define SMALLMALLOC
+#endif
+/*
+ * Constants, used to increase or decrease the capacity of this program.
+ *
+ * Strings are now more dynamically allocated, so STRINGSIZE is not the
+ * strict limit it once was. However, it still sets the maximum size
+ * of a string that can be handled in specials, so it should not be
+ * set too small.
+ */
+#define STRINGSIZE (200000) /* maximum total chars in strings in program */
+#define RASTERCHUNK (8192) /* size of chunk of raster */
+#define MINCHUNK (240) /* minimum size char to get own raster */
+#define STACKSIZE (500) /* maximum stack size for dvi files */
+#define MAXFRAME (50) /* maximum depth of virtual font recursion */
+#define MAXFONTHD (1024) /* number of unique names of included fonts */
+#define STDOUTSIZE (75) /* width of a standard output line */
+#define DOWNLOADEDPSSIZE (1000) /* max number of downloaded fonts to check */
+/*
+ * Other constants, which define printer-dependent stuff.
+ */
+#define SWMEM (180000) /* available virtual memory in PostScript printer */
+#define DPI (actualdpi) /* dots per inch */
+#define VDPI (vactualdpi) /* dots per inch */
+#define RES_TOLERANCE(dpi) ((int)(1+dpi/500))
+ /* error in file name resolution versus desired */
+#define FONTCOST (298) /* overhead cost of each sw font */
+#define PSFONTCOST (1100) /* overhead cost for PostScript fonts */
+#define PSCHARCOST (20) /* overhead cost for PostScript font chars */
+#define DNFONTCOST (35000) /* overhead cost for downloaded PS font */
+#define CHARCOST (15) /* overhead cost for each character */
+#define OVERCOST (30000) /* cost of overhead */
+#define DICTITEMCOST (20) /* cost per key, value in dictionary */
+#define NAMECOST (40) /* overhead cost of each new name */
+/*
+ * Type declarations. integer must be a 32-bit signed; shalfword must
+ * be a sixteen-bit signed; halfword must be a sixteen-bit unsigned;
+ * quarterword must be an eight-bit unsigned.
+ */
+#if (defined(MSDOS) && !defined(DJGPP)) || (defined(OS2) && defined(_MSC_VER)) || defined(ATARIST)
+typedef long integer;
+typedef unsigned long uinteger;
+#else
+typedef int integer;
+typedef unsigned int uinteger;
+#endif
+#ifndef KPATHSEA
+typedef char boolean;
+#endif
+typedef double real;
+typedef short shalfword;
+typedef unsigned short halfword;
+typedef unsigned char quarterword;
+#ifdef WIN32
+#define Boolean boolean
+#else
+#ifndef __THINK__
+typedef short Boolean;
+#endif
+#endif
+/*
+ * If the machine has a default integer size of 16 bits, and 32-bit
+ * integers must be manipulated with %ld, set the macro SHORTINT.
+ */
+#ifdef XENIX
+#define SHORTINT
+#else
+#undef SHORTINT
+#endif
+#if defined(MSDOS) && !defined(__EMX__) && !defined(DJGPP) || defined(ATARIST)
+#define SHORTINT
+#endif
+#if defined(OS2) && defined(_MSC_VER)
+#define SHORTINT
+#endif
+
+/*
+ * This is the structure definition for resident fonts. We use
+ * a small and simple hash table to handle these. We don't need
+ * a big hash table.
+ */
+#define RESHASHPRIME (73)
+struct resfont {
+ struct resfont *next;
+ char *Keyname, *PSname, *TeXname, *Fontfile, *Vectfile;
+ char *specialinstructions;
+ char *downloadheader; /* possibly multiple files */
+ quarterword sent;
+};
+
+/*
+ * A chardesc describes an individual character. Before the fonts are
+ * downloaded, the flags indicate that the character has already been used
+ * with the following meanings:
+ */
+typedef struct tcd {
+ integer TFMwidth;
+ quarterword *packptr;
+ shalfword pixelwidth;
+ quarterword flags, flags2;
+} chardesctype;
+#define EXISTS (1)
+#define PREVPAGE (2)
+#define THISPAGE (4)
+#define TOOBIG (8) /* not used at the moment */
+#define REPACKED (16)
+#define BIGCHAR (32)
+#define STATUSFLAGS (EXISTS|REPACKED|BIGCHAR)
+/*
+ * The new field flags2 above is now an immutable field (once a font is
+ * loaded); for now it only indicates whether a character EXISTS or not.
+ * This fixes a problem with -G.
+ */
+/*
+ * A fontdesc describes a font. The name, area, and scalename are located in
+ * the string pool. The nextsize pointer is used to link fonts that are used
+ * in included psfiles and differ only in scaledsize. Such fonts also have
+ * a non-NULL scalename that gives the scaledsize as found in the included
+ * file. The psflag indicates that the font has been used in an included
+ * psfile. It can be 0, PREVPAGE, THISPAGE, or EXISTS.
+ */
+typedef struct tfd {
+ integer checksum, scaledsize, designsize, thinspace, dir;
+ halfword dpi, loadeddpi;
+ halfword alreadyscaled;
+ halfword psname;
+ halfword loaded;
+ quarterword psflag;
+ quarterword codewidth;
+ integer maxchars;
+ integer llx, lly, urx, ury ;
+ char *name, *area;
+ struct resfont *resfont;
+ struct tft *localfonts;
+ struct tfd *next;
+ struct tfd *nextsize;
+ char *scalename;
+ chardesctype *chardesc;
+ int iswide, kind;
+} fontdesctype;
+
+#define VF_TEX (1)
+#define VF_OMEGA (2)
+#define VF_PTEX (3)
+
+/* A fontmap associates a fontdesc with a font number.
+ */
+typedef struct tft {
+ integer fontnum;
+ fontdesctype *desc;
+ struct tft *next;
+} fontmaptype;
+
+/* Virtual fonts require a `macro' capability that is implemented by
+ * using a stack of `frames'.
+ */
+typedef struct {
+ quarterword *curp, *curl;
+ fontdesctype *curf;
+ fontmaptype *ff;
+} frametype;
+
+/*
+ * The next type holds the font usage information in a 256-bit table;
+ * there's a 1 for each character that was used in a section.
+ */
+typedef struct {
+ fontdesctype *fd;
+ halfword psfused;
+ halfword bitmap[16];
+} charusetype;
+
+/* Next we want to record the relevant data for a section. A section is
+ * a largest portion of the document whose font usage does not overflow
+ * the capacity of the printer. (If a single page does overflow the
+ * capacity all by itself, it is made into its own section and a warning
+ * message is printed; the page is still printed.)
+ *
+ * The sections are in a linked list, built during the prescan phase and
+ * processed in proper order (so that pages stack correctly on output) during
+ * the second phase.
+ */
+typedef struct t {
+ integer bos;
+ struct t *next;
+ halfword numpages;
+} sectiontype;
+
+/*
+ * Sections are actually represented not by sectiontype but by a more
+ * complex data structure of variable size, having the following layout:
+ * sectiontype sect;
+ * charusetype charuse[numfonts];
+ * fontdesctype *sentinel = NULL;
+ * (Here numfonts is the number of bitmap fonts currently defined.)
+ * Since we can't declare this or take a sizeof it, we build it and
+ * manipulate it ourselves (see the end of the prescan routine).
+ */
+/*
+ * This is how we build up headers and other lists.
+ */
+struct header_list {
+ struct header_list *next;
+ const char *Hname;
+ char *precode;
+ char *postcode;
+ char *name;
+};
+/*
+ * Some machines define putlong in their library.
+ * We get around this here.
+ */
+#define putlong was_putlong
+/*
+ * Information on available paper sizes is stored here.
+ */
+struct papsiz {
+ struct papsiz *next;
+ integer xsize, ysize;
+ const char *name;
+ const char *specdat;
+};
+#ifdef MVSXA /* IBM: MVS/XA */
+/* this is where we fix problems with conflicts for truncation
+ of long names (we might only do this if LONGNAME not set but ...) */
+# define pprescanpages pprscnpgs /* confict with pprescan */
+# define flushDashedPath flshDshdPth /* conflict with flushDash */
+# define PageList PgList /* re-definition conflict with pagelist */
+/* adding ascii2ebcdic conversion table to extern */
+ extern char ascii2ebcdic[];
+#endif /* IBM: MVS/XA */
+#ifdef VMCMS /* IBM: VM/CMS */
+/* this is where we fix problems with conflicts for truncation
+ of long names (we might only do this if LONGNAME not set but ...) */
+# define pprescanpages pprscnpgs /* confict with pprescan */
+# define flushDashedPath flshDshdPth /* conflict with flushDash */
+/* adding ascii2ebcdic conversion table to extern */
+ extern char ascii2ebcdic[];
+/* redefining fopen for VMCMS, see DVIPSCMS.C */
+ extern FILE *cmsfopen();
+# ifdef fopen
+# undef fopen
+# endif
+# define fopen cmsfopen
+#define downloadpspk dnldpspk
+#endif /* IBM: VM/CMS */
+/*
+ * Remove namespace conflict with standard library on Macintosh
+ */
+#ifdef __THINK__
+#define newstring newpoolstring
+#endif
+
+#ifndef VOID
+#define VOID void
+#endif
+
+#define USE_PCLOSE (801)
+#define USE_FCLOSE (802)
+
+/* output Unicode string on console in windows */
+#if defined(KPATHSEA) && defined(WIN32)
+#undef perror
+#define fprintf_str win32_fprintf
+#define fputs_str win32_fputs
+#define putc_str win32_putc
+#define perror win32_perror
+#else
+#define fprintf_str fprintf
+#define fputs_str fputs
+#define putc_str putc
+#endif
+
+/* Things that KPATHSEA knows, and are useful even without it. */
+#if !defined(KPATHSEA)
+
+#if defined(MSDOS) || defined(OS2) || defined(WIN32)
+#define FOPEN_ABIN_MODE "ab"
+#define FOPEN_RBIN_MODE "rb"
+#else
+#define FOPEN_ABIN_MODE "a"
+#define FOPEN_RBIN_MODE "r"
+#endif
+
+#if (defined MSDOS || defined OS2 || defined WIN32)
+#define WRITEBIN "wb"
+#else
+#ifdef VMCMS
+#define WRITEBIN "wb, lrecl=1024, recfm=f"
+#else
+#define WRITEBIN "w"
+#endif
+#endif
+
+#if defined(WIN32)
+#define STDC_HEADERS
+#include <io.h>
+#include <fcntl.h>
+#define O_BINARY _O_BINARY
+#define register
+#define SET_BINARY(fd) (void)_setmode((fd), _O_BINARY)
+#else /* !WIN32 */
+#define SET_BINARY(fd) (void)0
+#endif
+
+#if defined(DEVICESEP)
+#define IS_DEVICE_SEP(c) ((c) == DEVICESEP)
+#else
+#define IS_DEVICE_SEP(c) 0
+#endif
+#define STREQ(s1, s2) (((s1) != NULL) && ((s2) != NULL) && !strcmp((s1), (s2)))
+
+#if defined(MSDOS) || defined(OS2) || defined(WIN32)
+#define NAME_BEGINS_WITH_DEVICE(name) (*(name) && IS_DEVICE_SEP((name)[1]))
+#define IS_DIR_SEP(c) ((c) == '/' || (c) == '\\')
+#define FILESTRCASEEQ(s1, s2) (strcasecmp (s1, s2) == 0)
+#else
+#define NAME_BEGINS_WITH_DEVICE(name) 0
+#define IS_DIR_SEP(c) ((c) == DIRSEP)
+#define FILESTRCASEEQ STREQ
+#endif
+
+#define TOLOWER(c) tolower(c)
+#define ISALNUM(c) isalnum(c)
+#define ISXDIGIT(c) (isascii (c) && isxdigit(c))
+
+#endif
diff --git a/Build/source/texk/dvipsk/dvips.help b/Build/source/texk/dvipsk/dvips.help
new file mode 100644
index 00000000000..3421d2b8107
--- /dev/null
+++ b/Build/source/texk/dvipsk/dvips.help
@@ -0,0 +1,40 @@
+Usage: dvips [OPTION]... FILENAME[.dvi]
+Convert DVI input files to PostScript.
+See http://tug.org/dvips/ for the full manual and other information.
+
+Options:
+-a* Conserve memory, not time -A Print only odd (TeX) pages
+-b # Page copies, for posters e.g. -B Print only even (TeX) pages
+-c # Uncollated copies -C # Collated copies
+-d # Debugging -D # Resolution
+-e # Maxdrift value -E* Try to create EPSF
+-f* Run as filter -F* Send control-D at end
+ -G* Shift low chars to higher pos.
+-h f Add header file
+-i* Separate file per section
+-j* Download fonts partially
+-k* Print crop marks -K* Pull comments from inclusions
+-l # Last page -L* Last special papersize wins
+-m* Manual feed -M* Don't make fonts
+-mode s Metafont device name
+-n # Maximum number of pages -N* No structured comments
+-noomega Disable Omega extensions
+-noptex Disable pTeX extensions
+-o f Output file -O c Set/change paper offset
+-p # First page -P s Load config.$s
+-pp l Print only pages listed
+-q* Run quietly
+-r* Reverse order of pages -R* Run securely
+-s* Enclose output in save/restore -S # Max section size in pages
+-t s Paper format -T c Specify desired page size
+-title s Title in comment
+-u s PS mapfile -U* Disable string param trick
+-v Print version number and quit -V* Send downloadable PS fonts as PK
+-x # Override dvi magnification -X # Horizontal resolution
+-y # Multiply by dvi magnification -Y # Vertical resolution
+-z* Hyper PS -Z* Compress bitmap fonts
+ # = number f = file s = string * = suffix, `0' to turn off
+ c = comma-separated dimension pair (e.g., 3.2in,-32.1cm)
+ l = comma-separated list of page ranges (e.g., 1-4,7-9)
+
+Email bug reports to tex-k@mail.tug.org.
diff --git a/Build/source/texk/dvipsk/dvips.info b/Build/source/texk/dvipsk/dvips.info
new file mode 100644
index 00000000000..07bdeff39f2
--- /dev/null
+++ b/Build/source/texk/dvipsk/dvips.info
@@ -0,0 +1,4797 @@
+This is dvips.info, produced by makeinfo version 5.1 from dvips.texi.
+
+This manual documents Dvips version 2021.1 (February 2021), a program to
+translate a DVI file into PostScript. You may freely use, modify and/or
+distribute this file.
+INFO-DIR-SECTION TeX
+START-INFO-DIR-ENTRY
+* DVI-to-Postscript: (dvips). Translating TeX DVI files to PostScript.
+* afm2tfm: (dvips)Invoking afm2tfm. Making Type 1 fonts available to TeX.
+* dvips: (dvips)Invoking Dvips. DVI-to-PostScript translator.
+END-INFO-DIR-ENTRY
+
+
+File: dvips.info, Node: Top, Next: Why Dvips, Up: (dir)
+
+Dvips
+*****
+
+This manual documents Dvips version 2021.1 (February 2021), a program to
+translate a DVI file into PostScript. You may freely use, modify and/or
+distribute this file.
+
+* Menu:
+
+* Why Dvips:: Why use Dvips?
+* Installation:: How to compile and install Dvips.
+* Invoking Dvips:: Command-line options, configuration files, etc.
+* Paper size and landscape:: Changing the paper dimensions.
+* Interaction with PostScript:: TeX meets Dvips meets PostScript.
+* PostScript fonts:: Installing and using PostScript fonts.
+* Color:: Using color with Dvips.
+* Index:: General index.
+
+
+File: dvips.info, Node: Why Dvips, Next: Installation, Prev: Top, Up: Top
+
+1 Why use Dvips?
+****************
+
+The Dvips program has a number of features that set it apart from other
+PostScript drivers for TeX. This rather long section describes the
+advantages of using Dvips, and may be skipped if you are just interested
+in learning how to use the program. *Note Installation::, for details
+of compilation and installation.
+
+ The Dvips driver generates excellent, standard PostScript, that can
+be included in other documents as figures or printed through a variety
+of spoolers. The generated PostScript requires very little printer
+memory, so very complex documents with a lot of fonts can easily be
+printed even on PostScript printers without much memory, such as the
+original Apple LaserWriter. The PostScript output is also compact,
+requiring less disk space to store and making it feasible as a transfer
+format.
+
+ Even those documents that are too complex to print in their entirety
+on a particular printer can be printed, since Dvips will automatically
+split such documents into pieces, reclaiming the printer memory between
+each piece.
+
+ The Dvips program supports graphics in a natural way, allowing
+PostScript graphics to be included and automatically scaled and
+positioned in a variety of ways.
+
+ Printers with any resolution are supported, even if they have
+different resolutions in the horizontal and vertical directions. High
+resolution output is supported for typesetters, including an option that
+compresses the bitmap fonts so that typesetter virtual memory is not
+exhausted. This option also significantly reduces the size of the
+PostScript file and decoding in the printer is very fast.
+
+ Missing fonts can be automatically generated if Metafont exists on
+the system, or fonts can be converted from GF to PK format on demand.
+If a font cannot be generated, a scaled version of the same font at a
+different size can be used instead, although Dvips will complain loudly
+about the poor aesthetics of the resulting output.
+
+ One of the most important features is the support of virtual fonts,
+which add an entirely new level of flexibility to TeX. Dvips even comes
+with its own Afm2tfm program that can create the virtual fonts and TeX
+font metric files automatically from Adobe font metric files.
+
+ Source is provided and freely distributable, so adding a
+site-specific feature is possible. Adding such features is made easier
+by the highly modular structure of the program.
+
+ Tom Rokicki wrote and maintains the original Dvips program.
+
+
+File: dvips.info, Node: Installation, Next: Invoking Dvips, Prev: Why Dvips, Up: Top
+
+2 Installation
+**************
+
+Installing Dvips is mostly the same as installing any Kpathsea-using
+program. Therefore, for the basic steps involved, *note
+(kpathsea)Installation::.
+
+ For solutions to common installation problems and information on how
+to report a bug, see the file 'kpathsea/BUGS' (*note (kpathsea)Bugs::).
+For solutions to Dvips-specific problems, *note Debug options::.
+
+ Dvips does require some additional installation, detailed in the
+sections below. Also, to configure color devices, *note Color device
+configuration::.
+
+* Menu:
+
+* config.ps installation:: Printer and site Dvips configuration.
+* PostScript font installation:: Many PostScript fonts are freely available.
+* Ghostscript installation:: A free PostScript interpreter.
+* Diagnosing problems:: Some common runtime difficulties.
+
+
+File: dvips.info, Node: config.ps installation, Next: PostScript font installation, Up: Installation
+
+2.1 'config.ps' installation
+============================
+
+Dvips has its own configuration files: a file 'config.ps' for sitewide
+defaults, and a file 'config.PRINTER' for each printer (output device).
+Since these are site-specific, 'make install' does not create them; you
+must create them yourself.
+
+ (These Dvips configuration files are independent of the Kpathsea
+configuration file 'texmf.cnf' (*note (kpathsea)Config files::).
+
+ Dvips configuration files contents and searching are described fully
+in *note Config files::. The simplest way to create a new configuration
+file is to copy and modify the file 'dvipsk/contrib/config.proto',
+seasoning with options to your taste from *note Config files::. Here is
+'config.proto' for your reading pleasure:
+ % Prototype Dvips configuration file. (Public domain.)
+
+ % How to print, maybe with lp instead lpr, etc.
+ o |lpr
+
+ % Default resolution of this device, in dots per inch.
+ D 600
+
+ % Metafont mode. (This is completely different from the -M command-line
+ % option, which controls whether MakeTeXPK is invoked.) Get
+ % <ftp://ftp.tug.org/tex/modes.mf> for a list of mode names. This mode
+ % and the D number above must agree, or MakeTeXPK will get confused.
+ M ljfour
+
+ % Memory available. Download the three-line PostScript file:
+ % %! Hey, we're PostScript
+ % /Times-Roman findfont 30 scalefont setfont 144 432 moveto
+ % vmstatus exch sub 40 string cvs show pop showpage
+ % to determine this number. (It will be the only thing printed.)
+ m 3500000
+
+ % Correct printer offset. You can use testpage.tex from the LaTeX
+ % distribution to find these numbers. Print testpage.dvi more than once.
+ O 0pt,0pt
+
+ % Partially download Type 1 fonts by default. Only reason not to do
+ % this is if you encounter bugs. (Please report them to
+ % <tex-k@tug.org> if you do.)
+ j
+
+ % Also look for fonts at these resolutions.
+ R 300 600
+
+ % With a high resolution and a RISC cpu, better to compress the bitmaps.
+ Z
+
+ % Uncomment these if you have and want to use PostScript versions of the
+ % fonts.
+ %p +cmfonts.map
+ %p +lafonts.map
+ %p +cyrfonts.map
+ %p +eufonts.map
+
+ % To include another configuration file here.
+ %c FILENAME
+
+ % You will also want definitions for alternative paper sizes -- A4,
+ % legal, and such. Examples in contrib/papersize.level2 and
+ % contrib/papersize.simple.
+
+
+File: dvips.info, Node: PostScript font installation, Next: Ghostscript installation, Prev: config.ps installation, Up: Installation
+
+2.2 PostScript font installation
+================================
+
+To use PostScript fonts with TeX and Dvips, you need both metric files
+('.tfm' and '.vf') and the outlines ('.pfa' or '.pfb'). *Note Font
+concepts::. Current TeX systems come with support for 35 base
+PostScript fonts and many more.
+
+ If you have additional PostScript fonts, you can make them available
+to Dvips by (1) giving them appropriate filenames; and (2) running
+Afm2tfm (*note Making a font available::) to make TFM and VF metrics for
+TeX and Dvips to use. Also add them to 'psfonts.map' (*note
+psfonts.map::); this file must contain everything available in the
+system. The 'updmap' program is usually used to maintain 'psfonts.map';
+run 'updmap --help' for lots of information about how it works.
+
+
+File: dvips.info, Node: Ghostscript installation, Next: Diagnosing problems, Prev: PostScript font installation, Up: Installation
+
+2.3 Ghostscript installation
+============================
+
+Ghostscript is a PostScript interpreter freely available to end-users,
+originally written by Peter Deutsch. It can read the PostScript
+produced by Dvips and render it on your monitor, or for another device
+(e.g., an Epson printer) that does not support PostScript, or in PDF
+format. The latest version is available via <https://ghostscript.com>.
+
+ The program Ghostview, originally written by Johannes Plass and Tim
+Theisen, provides typical previewing capabilities (next page/previous
+page, magnification, etc.). It requires Ghostscript to run, and files
+in structured Postscript, specifically with '%%Page' comments (no 'N' in
+'config.ps'). The current version is known as GV, and is available from
+<https://www.gnu.org/software/gv>.
+
+
+File: dvips.info, Node: Diagnosing problems, Prev: Ghostscript installation, Up: Installation
+
+2.4 Diagnosing problems
+=======================
+
+You've gone through all the trouble of installing Dvips, carefully read
+all the instructions in this manual, and still can't get something to
+work. The following sections provide some helpful hints if you find
+yourself in such a situation.
+
+ For details on effective bug reporting, common installation problems,
+and 'mktexpk' problems, *note (kpathsea)Bugs::.
+
+ A good first debugging operation is to set the environment variable
+'DVIPSDEBUG', which will display any configuration and map files read by
+Dvips. This way you can be sure it's finding the files and settings you
+expect.
+
+* Menu:
+
+* Debug options:: Getting diagnostics.
+* No output:: No output at all.
+* Small or inverted:: Output too small or inverted.
+* Printer errors:: The printer sends back errors.
+* Long documents fail:: Long documents fail to print.
+* Including graphics fails:: Figures don't work.
+
+
+File: dvips.info, Node: Debug options, Next: No output, Up: Diagnosing problems
+
+2.4.1 Debug options
+-------------------
+
+The '-d' flag to Dvips helps in tracking down certain errors. The
+parameter to this flag is an integer that tells what errors are
+currently being tracked. To track a certain class of debug messages,
+specify the appropriate number given below; if you wish to track
+multiple classes, sum the numbers of the classes you wish to track. To
+track all classes, you can use '-1'.
+
+ You can also set the environment variable 'KPATHSEA_DEBUG' instead of
+using '-d'. Some of these debugging options are actually provided by
+Kpathsea (*note (kpathsea)Debugging::).
+
+ The classes are:
+
+1
+ specials
+2
+ paths
+4
+ fonts
+8
+ pages
+16
+ headers
+32
+ font compression
+64
+ files
+128
+ (omitted)
+256
+ config files
+512
+ Kpathsea 'stat' calls
+1024
+ Kpathsea hash table lookups
+2048
+ Kpathsea path element expansion
+4096
+ Kpathsea path searches
+
+
+File: dvips.info, Node: No output, Next: Small or inverted, Prev: Debug options, Up: Diagnosing problems
+
+2.4.2 No output at all
+----------------------
+
+If you are not getting any output at all, even from the simplest
+one-character file (for instance, '\ \bye'), then something is very
+wrong. Practically any file sent to a PostScript laser printer should
+generate some output, at the very least a page detailing what error
+occurred, if any. Talk to your system administrator about downloading a
+PostScript error handler. (Adobe distributes a good one called
+'ehandler.ps'.)
+
+ It is possible, especially if you are using non-Adobe PostScript,
+that your PostScript interpreter is broken. Even then it should
+generate an error message. Dvips tries to work around as many bugs as
+possible in common non-Adobe PostScript interpreters, but doubtless it
+misses a few. PowerPage Revision 1, Interpreter Version 20001.001, on a
+Mitsubishi Shinko CHC-S446i color thermal dye sublimation printer is
+known to be unable to print with any but builtin fonts.
+
+ If Dvips gives any strange error messages, or compilation on your
+machine generated a lot of warnings, perhaps the Dvips program itself is
+broken. Try using the debug options to determine where the error
+occurred (*note Debug options::).
+
+ It is possible your spooler is broken and is misinterpreting the
+structured comments. Try the '-N' flag to turn off structured comments
+and see what happens.
+
+
+File: dvips.info, Node: Small or inverted, Next: Printer errors, Prev: No output, Up: Diagnosing problems
+
+2.4.3 Output too small or inverted
+----------------------------------
+
+If some documents come out inverted or too small, probably your spooler
+is not supplying an end of job indicator at the end of each file. (This
+commonly happens on small machines that don't have spoolers.) You can
+force Dvips to do this with the '-F' flag (or 'F' config file option),
+but this generates files with a terminating binary character
+(control-D). You can also try using the '-s' flag (or 's' config file
+option) to enclose the entire job in a save/restore pair. *Note
+Command-line options::, and *note Config files::.
+
+
+File: dvips.info, Node: Printer errors, Next: Long documents fail, Prev: Small or inverted, Up: Diagnosing problems
+
+2.4.4 Error messages from printer
+---------------------------------
+
+If your printer returns error messages, the error message gives very
+good information on what might be going wrong. One of the most common
+error messages is 'bop undefined'. This is caused by old versions of
+Transcript and other spoolers that do not properly parse the setup
+section of the PostScript. To fix this, turn off structured comments
+with the '-N' option, but it'd be best to get your spooling software
+updated.
+
+ Another error message is 'VM exhausted'. Some printers indicate this
+error by locking up, others quietly reset. This is caused by Dvips
+thinking that the printer has more memory than it actually does, and
+then printing a complicated document. To fix this, try lowering the 'm'
+parameter in the configuration file; use the debug option to make sure
+you adjust the correct file.
+
+ Other errors may indicate you are trying to include graphics that
+don't nest properly in other PostScript documents, among other things.
+Try the PostScript file on a QMS PS-810 or other Adobe PostScript
+printer if you have one, or Ghostscript (*note Ghostscript
+installation::); it might be a problem with the printer itself.
+
+
+File: dvips.info, Node: Long documents fail, Next: Including graphics fails, Prev: Printer errors, Up: Diagnosing problems
+
+2.4.5 Long documents fail to print
+----------------------------------
+
+This is usually caused by incorrectly specifying the amount of memory
+the printer has in the configuration file; see the previous section.
+
+
+File: dvips.info, Node: Including graphics fails, Prev: Long documents fail, Up: Diagnosing problems
+
+2.4.6 Including graphics fails
+------------------------------
+
+The most common problem with including graphics is an incorrect bounding
+box (*note Bounding box::). Complain to whoever wrote the software that
+generated the file if the bounding box is indeed incorrect.
+
+ Another possible problem is that the figure you are trying to include
+does not nest properly; there are certain rules PostScript applications
+must follow when generating files to be included. The Dvips program
+includes work-arounds for such errors in Adobe Illustrator and other
+programs, but there are certainly applications that haven't been tested.
+
+ One possible thing to try is the '-K' flag which strips the comments
+from an included figure. This might be necessary if the PostScript
+spooling software does not read the structured comments correctly. Use
+of this flag will break graphics from some applications, though, since
+some applications read the PostScript file from the input stream,
+looking for a particular comment.
+
+ Any application which generates graphics output containing raw binary
+(not ASCII hex) will probably fail with Dvips.
+
+
+File: dvips.info, Node: Invoking Dvips, Next: Paper size and landscape, Prev: Installation, Up: Top
+
+3 Invoking Dvips
+****************
+
+Dvips reads a DVI file as output by (for example) TeX, and converts it
+to PostScript, taking care of builtin or downloaded PostScript fonts,
+font reencoding, color, etc. These features are described in other
+chapters in this document.
+
+ There many ways to control Dvips' behavior: configuration files,
+environment variables, and command-line options.
+
+* Menu:
+
+* Basic usage::
+* Command-line options::
+* Environment variables::
+* Config files::
+
+
+File: dvips.info, Node: Basic usage, Next: Command-line options, Up: Invoking Dvips
+
+3.1 Basic usage of Dvips
+========================
+
+To use Dvips at its simplest, simply type
+
+ dvips foo
+
+where 'foo.dvi' is the output of TeX that you want to print. The
+default output is to a corresponding file 'foo.ps'; Dvips may also have
+been locally configured to output directly to a printer by default.
+
+ If you use fonts that have not been used on your system before, they
+may be automatically generated; this process can take a few minutes, so
+progress reports appear by default. The next time that document is
+printed, these fonts will have been saved in the proper directories, so
+printing will go much faster. (If Dvips tries to endlessly generate the
+same fonts over and over again, it hasn't been installed properly.
+*Note (kpathsea)Unable to generate fonts::.)
+
+ Many options are available (see the next section). For a brief
+summary of available options, run
+
+ dvips --help
+
+
+File: dvips.info, Node: Command-line options, Next: Environment variables, Prev: Basic usage, Up: Invoking Dvips
+
+3.2 Command-line options
+========================
+
+Dvips has a plethora of command line options. Reading through this
+section will give a good idea of the capabilities of the driver.
+
+* Menu:
+
+* Option summary:: Quick listing, from Dvips -help.
+* Option details:: More information about each option.
+
+
+File: dvips.info, Node: Option summary, Next: Option details, Up: Command-line options
+
+3.2.1 Option summary
+--------------------
+
+Here is a handy summary of the options; it is printed out when you run
+Dvips with no arguments or with the standard '--help' option.
+
+Usage: dvips [OPTION]... FILENAME[.dvi]
+Convert DVI input files to PostScript.
+See http://tug.org/dvips/ for the full manual and other information.
+
+Options:
+-a* Conserve memory, not time -A Print only odd (TeX) pages
+-b # Page copies, for posters e.g. -B Print only even (TeX) pages
+-c # Uncollated copies -C # Collated copies
+-d # Debugging -D # Resolution
+-e # Maxdrift value -E* Try to create EPSF
+-f* Run as filter -F* Send control-D at end
+ -G* Shift low chars to higher pos.
+-h f Add header file
+-i* Separate file per section
+-j* Download fonts partially
+-k* Print crop marks -K* Pull comments from inclusions
+-l # Last page -L* Last special papersize wins
+-m* Manual feed -M* Don't make fonts
+-mode s Metafont device name
+-n # Maximum number of pages -N* No structured comments
+-noomega Disable Omega extensions
+-noptex Disable pTeX extensions
+-o f Output file -O c Set/change paper offset
+-p # First page -P s Load config.$s
+-pp l Print only pages listed
+-q* Run quietly
+-r* Reverse order of pages -R* Run securely
+-s* Enclose output in save/restore -S # Max section size in pages
+-t s Paper format -T c Specify desired page size
+-title s Title in comment
+-u s PS mapfile -U* Disable string param trick
+-v Print version number and quit -V* Send downloadable PS fonts as PK
+-x # Override dvi magnification -X # Horizontal resolution
+-y # Multiply by dvi magnification -Y # Vertical resolution
+-z* Hyper PS -Z* Compress bitmap fonts
+ # = number f = file s = string * = suffix, `0' to turn off
+ c = comma-separated dimension pair (e.g., 3.2in,-32.1cm)
+ l = comma-separated list of page ranges (e.g., 1-4,7-9)
+
+Email bug reports to tex-k@mail.tug.org.
+
+
+File: dvips.info, Node: Option details, Prev: Option summary, Up: Command-line options
+
+3.2.2 Option details
+--------------------
+
+Many of the parameterless options listed here can be turned off by
+suffixing the option with a zero ('0'); for instance, to turn off page
+reversal, use '-r0'. Such options are marked with a trailing '*'.
+
+'-'
+ Read additional options from standard input after processing the
+ command line.
+
+'--help'
+ Print a usage message and exit.
+
+'--version'
+ Print the version number and exit.
+
+'-a*'
+ Conserve memory by making three passes over the DVI file instead of
+ two and only loading those characters actually used. Generally
+ only useful on machines with a very limited amount of memory, like
+ some PCs.
+
+'-A'
+ Print only the odd pages. This option uses TeX page numbers, not
+ physical page numbers.
+
+'-b NUM'
+ Generate NUM copies of each page, but duplicating the page body
+ rather than using the '/#copies' PostScript variable. This can be
+ useful in conjunction with a header file setting 'bop-hook' to do
+ color separations or other neat tricks.
+
+'-B'
+ Print only the even pages. This option uses TeX page numbers, not
+ physical page numbers.
+
+'-bitmapfontenc OPTION'
+ Turns bitmap font encoding to 'off', 'on' (no warnings for missing
+ bitmap font encodings), or 'strict' (with warnings for missing
+ bitmap font encodings).
+
+'-c NUM'
+ Generate NUM consecutive copies of every page, i.e., the output is
+ uncollated. This merely sets the builtin PostScript variable
+ '/#copies'.
+
+'-C NUM'
+ Generate NUM copies, but collated (by replicating the data in the
+ PostScript file). Slower than the '-c' option, but easier on the
+ hands, and faster than resubmitting the same PostScript file
+ multiple times.
+
+'-d NUM'
+ Set the debug flags, showing what Dvips (thinks it) is doing. This
+ will work unless Dvips has been compiled without the 'DEBUG' option
+ (not recommended). *Note Debug options::, for the possible values
+ of NUM. Use '-d -1' as the first option for maximum output.
+
+'-D NUM'
+ Set both the horizontal and vertical resolution to NUM, given in
+ dpi (dots per inch). This affects the choice of bitmap fonts that
+ are loaded and also the positioning of letters in resident
+ PostScript fonts. Must be between 10 and 10000. This affects both
+ the horizontal and vertical resolution. If a high resolution
+ (something greater than 400 dpi, say) is selected, the '-Z' flag
+ should probably also be used. If you are using fonts made with
+ Metafont, such as Computer Modern, 'mktexpk' needs to know about
+ the value for NUM that you use or Metafont will fail. See the file
+ <ftp://ftp.tug.org/tex/modes.mf> for a list of resolutions and mode
+ names for most devices.
+
+'-e NUM'
+ Maximum drift in pixels of each character from its 'true'
+ resolution-independent position on the page. The default value of
+ this parameter is resolution dependent (it is the number of entries
+ in the list [100, 200, 300, 400, 500, 600, 800, 1000, 1200, 1600,
+ 2000, 2400, 2800, 3200, ...] that are less than or equal to the
+ resolution in dots per inch). Allowing individual characters to
+ 'drift' from their correctly rounded positions by a few pixels,
+ while regaining the true position at the beginning of each new
+ word, improves the spacing of letters in words.
+
+'-E*'
+ Generate an EPSF file with a tight bounding box. This only looks
+ at marks made by characters and rules, not by any included
+ graphics. In addition, it gets the glyph metrics from the TFM
+ file, so characters that print outside their enclosing TFM box may
+ confuse it. In addition, the bounding box might be a bit too loose
+ if the character glyph has significant left or right side bearings.
+ Nonetheless, this option works well enough for creating small EPSF
+ files for equations or tables or the like. (Of course, Dvips
+ output, especially when using bitmap fonts, is resolution-dependent
+ and thus does not make very good EPSF files, especially if the
+ images are to be scaled; use these EPSF files with care.) For
+ multiple page input files, also specify '-i' to get each page as a
+ separate EPSF file; otherwise, all the pages are overlaid in the
+ single output file.
+
+'-f*'
+ Run as a filter. Read the DVI file from standard input and write
+ the PostScript to standard output. The standard input must be
+ seekable, so it cannot be a pipe. If your input must be a pipe,
+ write a shell script that copies the pipe output to a temporary
+ file and then points Dvips at this file. This option also disables
+ the automatic reading of the 'PRINTER' environment variable; use
+ '-P$PRINTER' after the '-f' to read it anyway. It also turns off
+ the automatic sending of control-D if it was turned on with the
+ '-F' option or in the configuration file; use '-F' after the '-f'
+ to send it anyway.
+
+'-F*'
+ Write control-D (ASCII code 4) as the very last character of the
+ PostScript file. This is useful when Dvips is driving the printer
+ directly instead of working through a spooler, as is common on
+ personal systems. On systems shared by more than one person, this
+ is not recommended.
+
+'-G*'
+ Shift non-printing characters (ASCII 0-32, 127) to higher-numbered
+ positions. This was useful to work around bugs in old versions of
+ Adobe's PDF reader. It's more likely to cause problems nowadays.
+
+'-h NAME'
+ Prepend NAME as an additional header file, or, if NAME is '-',
+ suppress all header files. Any definitions in the header file get
+ added to the PostScript 'userdict'.
+
+'-i*'
+ Make each section be a separate file; a "section" is a part of the
+ document processed independently, most often created to avoid
+ memory overflow. The filenames are created replacing the suffix of
+ the supplied output file name by a three-digit sequence number.
+ This option is most often used in conjunction with the '-S' option
+ which sets the maximum section length in pages; if '-i' is
+ specified and '-S' is not, each page is output as a separate file.
+ For instance, some phototypesetters cannot print more than ten or
+ so consecutive pages before running out of steam; these options can
+ be used to automatically split a book into ten-page sections, each
+ to its own file.
+
+ On the other hand, if your document uses very large fonts or very
+ large included figures, Dvips might take it upon itself to split
+ the output into unwanted sections, to try to avoid overflowing
+ printer memory. *Note Headers and memory usage::, for ways to
+ handle this.
+
+'-j*'
+ Download only needed characters from Type 1 fonts. This is the
+ default in the current release. Some debugging flags trace this
+ operation (*note Debug options::). You can also control partial
+ downloading on a per-font basis (*note psfonts.map::).
+
+'-k*'
+ Print crop marks. This option increases the paper size (which
+ should be specified, either with a paper size special or with the
+ '-T' option) by a half inch in each dimension. It translates each
+ page by a quarter inch and draws cross-style crop marks. It is
+ mostly useful with typesetters that can set the page size
+ automatically. This works by downloading 'crop.pro'.
+
+'-K*'
+ Remove comments in included PostScript graphics, font files, and
+ headers; only necessary to get around bugs in spoolers or
+ PostScript post-processing programs. Specifically, the '%%Page'
+ comments, when left in, often cause difficulties. Use of this flag
+ can cause other graphics to fail, however, since the PostScript
+ header macros from some software packages read portion the input
+ stream line by line, searching for a particular comment.
+
+'-l [=]NUM'
+ The last page printed will be the first one numbered NUM. Default
+ is the last page in the document. If NUM is prefixed by an equals
+ sign, then it (and the argument to the '-p' option, if specified)
+ is treated as a physical (absolute) page number, rather than a
+ value to compare with the TeX '\count0' values stored in the DVI
+ file. Thus, using '-l =9' will end with the ninth page of the
+ document, no matter what the pages are actually numbered.
+
+'-L*'
+ By default or with '-L1', the last 'papersize' special wins; with
+ '-L0', the first special wins. *Note 'papersize' special::.
+
+'-m*'
+ Specify manual feed, if supported by the output device.
+
+'-mode MODE'
+ Use MODE as the Metafont device name for path searching and font
+ generation. This overrides any value from configuration files.
+ With the default paths, explicitly specifying the mode also makes
+ the program assume the fonts are in a subdirectory named MODE.
+ *Note TeX directory structure: (kpathsea)TeX directory structure.
+ If Metafont does not understand the MODE name, see *note
+ (kpathsea)Unable to generate fonts::.
+
+'-M*'
+ Turns off automatic font generation ('mktexpk'). If 'mktexpk', the
+ invocation is appended to a file 'missfont.log' (by default) in the
+ current directory. You can then execute the log file to create the
+ missing files after fixing the problem. If the current directory
+ is not writable and the environment variable or configuration file
+ value 'TEXMFOUTPUT' is set, its value is used. Otherwise, nothing
+ is written. The name 'missfont.log' is overridden by the
+ 'MISSFONT_LOG' environment variable or configuration file value.
+
+'-n NUM'
+ Print at most NUM pages. Default is 100000.
+
+'-N*'
+ Turns off generation of structured comments such as '%%Page'; this
+ may be necessary on some systems that try to interpret PostScript
+ comments in weird ways, or on some PostScript printers. Old
+ versions of TranScript in particular cannot handle modern
+ Encapsulated PostScript. Beware: This also disables page movement,
+ etc., in PostScript viewers such as Ghostview.
+
+'-noomega'
+ Disable the use of Omega extensions when interpreting DVI files.
+ By default, the additional opcodes '129' and '134' are recognized
+ by Dvips as Omega or pTeX extensions and interpreted as requests to
+ set 2-byte characters.
+
+'-noptex'
+ Disable the use of pTeX extensions when interpreting DVI files. By
+ default, the additional opcodes '130' and '135' are recognized by
+ Dvips as Omega extensions and interpreted as requests to set 3-byte
+ characters, and '255' as request to change the typesetting
+ direction.
+
+ The only drawback is that the virtual font array will (at least
+ temporarily) require 65536 or more positions instead of the default
+ 256 positions, i.e., the memory requirements of Dvips will be
+ somewhat larger. If you find this unacceptable or encounter
+ another problem with the Omega or pTeX extensions, you can switch
+ off the pTeX extension by using '-noptex', or both by using
+ '-noomega' (but please do send a bug report if you find such
+ problems, *note (kpathsea)Bugs::).
+
+'-o NAME'
+ Send output to the file NAME. If '-o' is specified without NAME
+ (i.e., it is the last thing on the command line), the default is
+ 'FILE.ps' where the input DVI file was 'FILE.dvi'. If '-o' isn't
+ given at all, the configuration file default is used.
+
+ If NAME is '-', output goes to standard output. If the first
+ character of NAME is '!' or '|', then the remainder will be used as
+ an argument to 'popen'; thus, specifying '|lpr' as the output file
+ will automatically queue the file for printing as usual. (The
+ MS-DOS version will print to the local printer device 'PRN' when
+ NAME is '|lpr' and a program by that name cannot be found.)
+
+ '-o' disables the automatic reading of the 'PRINTER' environment
+ variable, and turns off the automatic sending of control-D. See the
+ '-f' option for how to override this.
+
+'-O X-OFFSET,Y-OFFSET'
+ Move the origin by X-OFFSET,Y-OFFSET, a comma-separated pair of
+ dimensions such as '.1in,-.3cm' (*note 'papersize' special::). The
+ origin of the page is shifted from the default position (of one
+ inch down, one inch to the right from the upper left corner of the
+ paper) by this amount. This is usually best specified in the
+ printer-specific configuration file.
+
+ This is useful for a printer that consistently offsets output pages
+ by a certain amount. You can use the file 'testpage.tex' to
+ determine the correct value for your printer. Be sure to do
+ several runs with the same 'O' value--some printers vary widely
+ from run to run.
+
+ If your printer offsets every other page consistently, instead of
+ every page, your best recourse is to use 'bop-hook' (*note
+ PostScript hooks::).
+
+'-p [=]NUM'
+ The first page printed will be the first one numbered NUM. Default
+ is the first page in the document. If NUM is prefixed by an equals
+ sign, then it (and the argument to the '-l' option, if specified)
+ is treated as a physical (absolute) page number, rather than a
+ value to compare with the TeX '\count0' values stored in the DVI
+ file. Thus, using '-p =3' will start with the third page of the
+ document, no matter what the pages are actually numbered.
+
+'-pp FIRST-LAST'
+ Print pages FIRST through LAST; equivalent to '-p FIRST -l LAST',
+ except that multiple '-pp' options accumulate, unlike '-p' and
+ '-l'. The '-' separator can also be ':'.
+
+'-P PRINTER'
+ Read the configuration file 'config.PRINTER' ('PRINTER.cfg' on
+ MS-DOS), which typically sets the output name (most likely 'o |lpr
+ -PPRINTER'), resolution, Metafont mode, and perhaps other
+ printer-specific defaults. It works best to put sitewide defaults
+ in the one master 'config.ps' file and only things that vary from
+ printer to printer in the 'config.PRINTER' files; 'config.ps' is
+ read before 'config.PRINTER'.
+
+ A configuration file for eventual creation of Adobe PDF files is
+ provided in 'config.pdf' and thus can be loaded with '-Ppdf'. It
+ will try to include Type 1 outline fonts into the PostScript file
+ (*note Hypertext caveats::).
+
+ If no '-P' or '-o' is given, the environment variable 'PRINTER' is
+ checked. If that variable exists, and a corresponding
+ 'config.PRINTER' ('PRINTER.cfg' on MS-DOS) file exists, it is read.
+ *Note Configuration file searching::.
+
+'-q*'
+ Run quietly. Don't chatter about pages converted, etc., and report
+ no warnings (only errors) to standard error.
+
+'-r*'
+ Output pages in reverse order. By default, page 1 is output first.
+
+'-R'
+ Run securely. '-R2' disables both shell command execution in
+ '\special' (via '`', *note Dynamic creation of graphics::) and
+ config files (via the 'E' option, *note Configuration file
+ commands::) and opening of any absolute or '..'-relative filenames.
+ '-R1', the default, forbids shell escapes but allows absolute
+ filenames. '-R0' allows both.
+
+'-s*'
+ Enclose the output in a global save/restore pair. This causes the
+ file to not be truly conformant, and is thus not recommended, but
+ is useful if you are driving a deficient printer directly and thus
+ don't care too much about the portability of the output to other
+ environments.
+
+'-S NUM'
+ Set the maximum number of pages in each 'section'. This option is
+ most commonly used with the '-i' option; see its description above
+ for more information.
+
+'-t PAPERTYPE'
+ Set the paper type to PAPERTYPE, usually defined in one of the
+ configuration files, along with the appropriate PostScript code to
+ select it (*note Config file paper sizes::).
+ - You can also specify a PAPERTYPE of 'landscape', which rotates
+ a document by 90 degrees.
+ - To rotate a document whose paper type is not the default, you
+ can use the '-t' option twice, once for the paper type, and
+ once for 'landscape'.
+ - In general, you should not use any '-t' option when using a
+ 'papersize' special, which some LaTeX packages (e.g.,
+ 'hyperref') insert.
+ - One exception is when using a nonstandard paper size that is
+ not already defined in 'config.ps'; in this case, you need to
+ specify '-t unknown'.
+ - Another exception is when producing multi-page files for
+ further processing; use '-t nopaper' to omit any paper size
+ information in the output. (If you just have a single page
+ document, you can use '-E' to get pure EPSF output.)
+
+'-title STRING'
+ Use STRING as the title in the generated PostScript ('%%Title').
+ If not specified, the default is the basename of the input file;
+ for example, running 'dvips /foo/bar.dvi' will have a '%%Title' of
+ 'bar.dvi'.
+
+'-T HSIZE,VSIZE'
+ Set the paper size to (HSIZE,VSIZE), a comma-separated pair of
+ dimensions such as '.1in,-.3cm' (*note 'papersize' special::). It
+ overrides any paper size special in the DVI file. Be careful, as
+ the paper size will stick to a predefined size if there is one
+ close enough. To disable this behavior, use '-tunknown'.
+
+'-u PSMAPFILE'
+ Set PSMAPFILE to be the file that dvips uses for looking up
+ PostScript font aliases. If PSMAPFILE begins with a '+' character,
+ then the rest of the name is used as the name of the map file, and
+ the map file is appended to the list of map files (instead of
+ replacing the list). In either case, if the name has no extension,
+ then '.map' is added at the end.
+
+'-U*'
+ Disable a PostScript virtual memory-saving optimization that stores
+ the character metric information in the same string that is used to
+ store the bitmap information. This is only necessary when driving
+ the Xerox 4045 PostScript interpreter, which has a bug that puts
+ garbage on the bottom of each character. Not recommended unless
+ you must drive this printer.
+
+'-v'
+ Print the dvips version number and exit.
+
+'-V*'
+ Download non-resident PostScript fonts as bitmaps. This requires
+ use of 'mtpk' or 'gsftopk' or 'pstopk' or some combination thereof
+ to generate the required bitmap fonts; these programs are supplied
+ with Dvips. The bitmap must be put into 'psfonts.map' as the
+ downloadable file for that font. This is useful only for those
+ fonts for which you do not have real outlines, being downloaded to
+ printers that have no resident fonts, i.e., very rarely.
+
+'-x NUM'
+ Set the magnification ratio to NUM/1000. Overrides the
+ magnification specified in the DVI file. Must be between 10 and
+ 100000. It is recommended that you use standard magstep values
+ (1095, 1200, 1440, 1728, 2074, 2488, 2986, and so on) to help
+ reduce the total number of PK files generated. NUM may be a real
+ number, not an integer, for increased precision.
+
+'-X NUM'
+ Set the horizontal resolution in dots per inch to NUM.
+
+'-y NUM'
+ Set the magnification ratio to NUM/1000 times the magnification
+ specified in the DVI file. See '-x' above.
+
+'-Y NUM'
+ Set the vertical resolution in dots per inch to NUM.
+
+'-z*'
+ Pass 'html' hyperdvi specials through to the output for eventual
+ distillation into PDF. This is not enabled by default to avoid
+ including the header files unnecessarily, and use of temporary
+ files in creating the output. *Note Hypertext::.
+
+'-Z*'
+ Compress bitmap fonts in the output file, thereby reducing the size
+ of what gets downloaded. Especially useful at high resolutions or
+ when very large fonts are used. May slow down printing, especially
+ on early 68000-based PostScript printers. Generally recommend
+ today, and can be enabled in the configuration file (*note
+ Configuration file commands::).
+
+
+File: dvips.info, Node: Environment variables, Next: Config files, Prev: Command-line options, Up: Invoking Dvips
+
+3.3 Environment variables
+=========================
+
+Dvips looks for many environment variables, to define search paths and
+other things. The path variables are read as needed, after all
+configuration files are read, so they override values in the
+configuration files. (Except for 'TEXCONFIG', which defines where the
+configuration files themselves are found.)
+
+ *Note (kpathsea)Path specifications::, for details of interpretation
+of path and other environment variables common to all Kpathsea-using
+programs. Only the environment variables specific to Dvips are
+mentioned here.
+
+'DVIPSDEBUG'
+ Write the absolute path names of any configuration or map files to
+ standard output, for debugging. This isn't done by default because
+ these files are read even before the banner is printed. For
+ voluminous additional debugging, set the environment variable
+ 'KPATHSEA_DEBUG' to '-1' (*note (kpathsea)Debugging::). (If
+ 'KPATHSEA_DEBUG' is set to any value, it automatically turns on
+ 'DVIPSDEBUG'.)
+
+'DVIPSFONTS'
+ Default path to search for all fonts. Overrides all the font path
+ config file options and other environment variables (*note
+ (kpathsea)Supported file formats::).
+
+'DVIPSHEADERS'
+ Default path to search for PostScript header files. Overrides the
+ 'H' config file option (*note Configuration file commands::).
+
+'DVIPSMAKEPK'
+ Overrides 'mktexpk' as the name of the program to invoke to create
+ missing PK fonts. You can change the arguments passed to the
+ 'mktexpk' program with the 'MAKETEXPK' environment variable; *note
+ (kpathsea)MakeTeX script arguments::.
+
+'DVIPSRC'
+ Specifies the name of the startup file (*note Configuration file
+ searching::) which is read after 'config.ps' but before any
+ printer-specific configuration files.
+
+'DVIPSSIZES'
+ Last-resort sizes for scaling of unfound fonts. Overrides the 'R'
+ definition in config files (*note Configuration file commands::).
+
+'PRINTER'
+ Determine the default printer configuration file. (Dvips itself
+ does not use 'PRINTER' to determine the output destination in any
+ way.)
+
+'TEXCONFIG'
+ Path to search for Dvips' 'config.PRINTER' configuration files,
+ including the base 'config.ps'. Using this single environment
+ variable, you can override everything else. (The printer-specific
+ configuration files are called 'PRINTER.cfg' on MS-DOS, but
+ 'config.ps' is called by that name on all platforms.)
+
+'TEXPICTS'
+ Path to search for included graphics files. Overrides the 'S'
+ config file option (*note Configuration file commands::). If not
+ set, 'TEXINPUTS' is looked for. *Note (kpathsea)Supported file
+ formats::.
+
+
+File: dvips.info, Node: Config files, Prev: Environment variables, Up: Invoking Dvips
+
+3.4 Dvips configuration files
+=============================
+
+This section describes in detail the Dvips-specific 'config.*' device
+configuration files (called '*.cfg' on MS-DOS), which override the
+'texmf.cnf' configuration files generic to Kpathsea which Dvips also
+reads (*note (kpathsea)Config files::).
+
+ For information about installing these files, including a prototype
+file you can copy, *note config.ps installation::.
+
+* Menu:
+
+* Configuration file searching:: Where config.* files are searched for.
+* Configuration file commands:: What can go in a config.* file.
+
+
+File: dvips.info, Node: Configuration file searching, Next: Configuration file commands, Up: Config files
+
+3.4.1 Configuration file searching
+----------------------------------
+
+The Dvips program loads many different configuration files, so that
+parameters can be set globally across the system, on a per-device basis,
+or individually by each user.
+
+ 1. Dvips first reads (if it exists) 'config.ps'; it is searched for
+ along the path for Dvips configuration files, as described in *note
+ (kpathsea)Supported file formats::.
+
+ 2. A user-specific startup file is loaded, so individual users can
+ override any options set in the global file. The environment
+ variable 'DVIPSRC', if defined, is used as the specification of the
+ startup file. If this variable is undefined, Dvips uses a
+ platform-specific default name. On Unix Dvips looks for the
+ default startup file under the name '$HOME/.dvipsrc', which is in
+ the user's home directory. On MS-DOS and MS-Windows, where users
+ generally don't have their private directories, the startup file is
+ called 'dvips.ini' and it is searched for along the path for Dvips
+ configuration files (as described in *note (kpathsea)Supported file
+ formats::.); users are expected to set this path as they see fit
+ for their taste.
+
+ 3. The command line is read and parsed: if the '-PDEVICE' option is
+ encountered, at that point 'config.DEVICE' is loaded. Thus, the
+ printer configuration file can override anything in the site-wide
+ or user configuration file, and it can also override options in the
+ command line up to the point that the '-P' option was encountered.
+ (On MS-DOS, the printer configuration files are called
+ 'DEVICE.cfg', since DOS doesn't allow more than 3 characters after
+ the dot in filenames.)
+
+ 4. If no '-P' option was specified, and also the '-o' and '-f' command
+ line options were not used, Dvips checks the environment variable
+ 'PRINTER'. If it exists, then 'config.$PRINTER' ('$PRINTER.cfg' on
+ MS-DOS) is loaded (if it exists).
+
+ Because the '.dvipsrc' file is read before the printer-specific
+configuration files, individual users cannot override settings in the
+latter. On the other hand, the 'TEXCONFIG' path can be set to anything,
+so the users can always define their own printer-specific configuration
+files to be found before the system's.
+
+ A few command-line options are treated specially, in that they are
+not overridden by configuration files:
+
+'-D'
+ As well as setting the resolution, this unsets the mode, if the
+ mode was previously set from a configuration file. If
+ 'config.$PRINTER' is read, however, any 'D' or 'M' lines from there
+ will take effect.
+
+'-mode'
+ This overrides any mode setting ('M' line) in configuration files.
+ '-mode' does not affect the resolution.
+
+'-o'
+ This overrides any output setting ('o' line) in configuration
+ files.
+
+ The purpose of these special cases is to (1) minimize the chance of
+having a mismatched mode and resolution (which 'mktexpk' cannot
+resolve), and (2) let command-line options override config files where
+possible.
+
+
+File: dvips.info, Node: Configuration file commands, Prev: Configuration file searching, Up: Config files
+
+3.4.2 Configuration file commands
+---------------------------------
+
+Most of the configuration file commands are similar to corresponding
+command line options, but there are a few exceptions. When they are the
+same, we omit the description here.
+
+ As with command line options, many may be turned off by suffixing the
+letter with a zero ('0').
+
+ Within a configuration file, empty lines, and lines starting with a
+space, asterisk, equal sign, percent sign, or pound sign are ignored.
+There is no provision for continuation lines.
+
+'@ NAME HSIZE VSIZE'
+ Define paper sizes. *Note Config file paper sizes::.
+
+'a*'
+ Memory conservation. Same as '-a', *note Option details::.
+
+'b #COPIES'
+ Multiple copies. Same as '-b', *note Option details::.
+
+'bitmapfontenc OPTION'
+ Turns bitmap font encoding to 'off', 'on' (no warnings for missing
+ bitmap font encodings), or 'strict' (with warnings for missing
+ bitmap font encodings).
+
+'c FILENAME'
+ Include FILENAME as an additional configuration file, read
+ immediately.
+
+'D DPI'
+ Output resolution. Same as '-D', *note Option details::.
+
+'e NUM'
+ Max drift. Same as '-e', *note Option details::.
+
+'E COMMAND'
+ Executes the command listed with 'system'(3); can be used to get
+ the current date into a header file for inclusion, for instance.
+ Possibly dangerous; this may be disabled, in which case a warning
+ will be printed if the option is used (and warnings are not
+ suppressed).
+
+'f*'
+'F'
+ Run as a filter. Same as '-f', *note Option details::.
+
+'G*'
+ Shift low-numbered characters; obsolete. Same as '-G', *note
+ Option details::.
+
+'h HEADER'
+ Prepend HEADER to output. Same as 'h-', *note Option details::.
+
+'H PATH'
+ Use PATH to search for PostScript header files. The environment
+ variable 'DVIPSHEADERS' overrides this.
+
+'i N'
+ Make multiple output files. Same as '-i -S N', *note Option
+ details::.
+
+'j*'
+ Partially download Type 1 fonts. Same as '-j', *note Option
+ details::.
+
+'K*'
+ Remove comments from included PostScript files. Same as '-K',
+ *note Option details::.
+
+'L*'
+ If zero, the first paper size specified is effective, else the
+ last. Same as '-L', *note Option details::.
+
+'m NUM'
+ Declare NUM as the memory available for fonts and strings in the
+ printer. The compile-time default is 180000, but this is typically
+ overridden by 'config.ps' or other configuration files. This value
+ must be accurate if memory conservation and document splitting is
+ to work correctly. To determine this value, send the following
+ file to the printer:
+
+ %! Hey, we're PostScript
+ /Times-Roman findfont 30 scalefont setfont 144 432 moveto
+ vmstatus exch sub 40 string cvs show pop showpage
+
+ The number printed by this file is the total memory free; it is
+ usually best to tell Dvips that the printer has slightly less
+ memory, because many programs download permanent macros that can
+ reduce the memory in the printer. Some systems or printers can
+ dynamically increase the memory available to a PostScript
+ interpreter, in which case this file might return a ridiculously
+ low number; for example, the NeXT computer and Ghostscript. In
+ these cases, a value of, say, 10 million is likely fine.
+
+ To go all out: If NUM is zero or negative, Dvips sets the available
+ memory to a very large number (the maximum integer value in C), the
+ idea being that output is not to a printer and thus no splitting of
+ the output is desirable. The Dvips config file 'config.maxmem' is
+ provided to do this conveniently, namely with 'dvips -Pmaxmem'.
+
+'M MODE'
+ Metafont mode. Same as '-mode', *note Option details::.
+
+'N*'
+ Disable structured comments. Beware: This also turns off
+ displaying page numbers or changing to specific pagenumbers in
+ PostScript viewers. Same as '-N', *note Option details::.
+
+'o NAME'
+ Send output to NAME. Same as '-o', *note Option details::. In the
+ file 'config.foo', a setting like this is probably appropriate:
+ o |lpr -Pfoo
+ The MS-DOS version will emulate spooling to 'lpr' by printing to
+ the local printer device 'PRN' if it doesn't find an executable
+ program by that name in the current directory or along the 'PATH'.
+
+'O XOFF,YOFF'
+ Origin offset. Same as '-O', *note Option details::.
+
+'p [+]NAME'
+ Examine NAME for PostScript font aliases. Default is
+ 'psfonts.map'. This option allows you to specify different
+ resident fonts that different printers may have. If NAME starts
+ with a '+' character, then the rest of the name (after any leading
+ spaces) is used as an additional map file; thus, it is possible to
+ have local map files pointed to by local configuration files that
+ append to the global map file. This can be used for font families.
+
+'P PATH'
+ Use PATH to search for bitmap PK font files is PATH. The
+ 'PKFONTS', 'TEXPKS', 'GLYPHFONTS', and 'TEXFONTS' environment
+ variables override this. *Note (kpathsea)Supported file formats::.
+
+'q*'
+'Q'
+ Run quietly. Same as '-q', *note Option details::.
+
+'r*'
+ Page reversal. Same as '-r', *note Option details::.
+
+'R NUM1 NUM2 ...'
+ Define the list of default resolutions for PK fonts. If a font
+ size actually used in a document is not available and cannot be
+ created, Dvips will scale the font found at the closest of these
+ resolutions to the requested size, using PostScript scaling. The
+ resulting output may be ugly, and thus a warning is issued. To
+ turn this last-resort scaling off, use a line with just the 'R' and
+ no numbers.
+
+ The given numbers must be sorted in increasing order; any number
+ smaller than the preceding one is ignored. This is because it is
+ better to scale a font up than down; scaling down can obliterate
+ small features in the character shape.
+
+ The environment and config file values 'DVIPSSIZES' or 'TEXSIZES'
+ override this configuration file setting.
+
+ If no 'R' settings or environment variables are specified, a list
+ compiled in during installation is used. This default list is
+ defined by the Makefile variable 'default_texsizes', defined in the
+ file 'make/paths.make'.
+
+'s*'
+ Output global save/restore. Same as '-s', *note Option details::.
+
+'S PATH'
+ Use PATH to search for special illustrations (Encapsulated
+ PostScript files or psfiles). The 'TEXPICTS' and then 'TEXINPUTS'
+ environment variables override this.
+
+'T PATH'
+ Use PATH to search for TFM files. The 'TFMFONTS' and then
+ 'TEXFONTS' environment variables overrides this. This path is used
+ for resident fonts and fonts that can't otherwise be found.
+
+'U*'
+ Work around bug in Xerox 4045 printer. Same as '-U', *note Option
+ details::.
+
+'V PATH'
+ Use PATH to search for virtual font files. This may be
+ device-dependent if you use virtual fonts to simulate actual fonts
+ on different devices.
+
+'W [STRING]'
+ If STRING is supplied, write it to standard error after reading all
+ the configuration files; with no STRING, cancel any previous 'W'
+ message. This is useful in the default configuration file to
+ remind users to specify a printer, for instance, or to notify users
+ about special characteristics of a particular printer.
+
+'X NUM'
+ Horizontal resolution. Same as '-X' (*note Option details::).
+
+'Y NUM'
+ Vertical resolution. Same as '-Y' (*note Option details::).
+
+'Z*'
+ Compress bitmap fonts. Same as '-Z' (*note Option details::).
+
+'z*'
+ Disables execution of system commands, like '-R' (*note Option
+ details::). If '-R' is specified on the command line, that takes
+ precedence.
+
+
+File: dvips.info, Node: Paper size and landscape, Next: Interaction with PostScript, Prev: Invoking Dvips, Up: Top
+
+4 Paper size and landscape orientation
+**************************************
+
+Most TeX documents at a particular site are designed to use the local
+standard paper size (letter size in the United States, A4 elsewhere).
+The Dvips program can be customized either sitewide or for a particular
+printer.
+
+ On the other hand, plenty of documents are designed for other paper
+sizes. For instance, you may want to design a document that has the
+long edge of the paper horizontal. This can be useful when typesetting
+booklets, brochures, complex tables, or many other documents. This type
+of paper orientation is called "landscape" orientation (the default
+orientation is called "portrait"). Alternatively, a document might be
+designed for ledger or A3 paper.
+
+ Since the intended paper size in these cases is a document design
+decision, not a printing decision, such information should be given in
+the TeX file and not on the Dvips command line. For this reason, Dvips
+supports a 'papersize' special. It is hoped that this special will
+become standard over time for TeX previewers and other printer drivers.
+
+ Some LaTeX packages, e.g., 'hyperref.sty', write a 'papersize'
+special into the DVI file. In this case, you need not and should not
+attempt to override it manually.
+
+* Menu:
+
+* 'papersize' special:: Specifying the paper size in TeX.
+* Config file paper sizes:: Specifying printer- and site-specific sizes.
+* Paper trays:: Changing paper trays automatically.
+
+
+File: dvips.info, Node: 'papersize' special, Next: Config file paper sizes, Up: Paper size and landscape
+
+4.1 'papersize' special
+=======================
+
+The format of the 'papersize' special is
+
+ \special{papersize=WIDTH,HEIGHT}
+
+WIDTH is the horizontal size of the page, and HEIGHT is the vertical
+size. The dimensions supported are the same as for TeX; namely, in
+(inches), cm (centimeters), mm (millimeters), pt (points), sp (scaled
+points), bp (big points, the same as the default PostScript unit), pc
+(picas), dd (didot points), and cc (ciceros).
+
+ For a US letter size landscape document, the 'papersize' would be:
+ \special{papersize=11in,8.5in}
+
+An alternate specification of 'landscape':
+ \special{landscape}
+
+This is supported for backward compatibility, but it is hoped that
+reventually the 'papersize' comment will dominate.
+
+ Of course, such a '\special' only informs Dvips of the desired paper
+size; you must also adjust '\hsize' and '\vsize' in your TeX document
+typeset to those dimensions.
+
+ When using the 'papersize' special, you generally should not also
+specify '-t' on the command line (*note Option details::). The
+exception is when using a nonstandard paper size that isn't predefined;
+in this case, use '-t unknown'.
+
+ The 'papersize' special must occur somewhere on the first page of the
+document. Some packages, notably 'hyperref', insert this special.
+
+ By default, if a DVI file contains multiple 'papersize' specials, the
+last one wins; this is also the behavior of the 'dvipdfmx' driver. If
+the '-L0' command line option or 'L0' config file command is specified,
+the first special wins--this was the behavior of Dvips prior to the 2017
+release.
+
+
+File: dvips.info, Node: Config file paper sizes, Next: Paper trays, Prev: 'papersize' special, Up: Paper size and landscape
+
+4.2 Configuration file paper size command
+=========================================
+
+The '@' command in a configuration file sets the paper size defaults and
+options. The first '@' command defines the default paper size. It has
+three possible parameters:
+
+ @ [NAME [HSIZE VSIZE]]
+
+ If '@' is specified on a line by itself, with no parameters, it
+instructs Dvips to discard all previous paper size information (possibly
+from another configuration file).
+
+ If three parameters are given, with the first parameter being a name
+and the second and third being a dimension (as in '8.5in' or '3.2cc',
+just like in the 'papersize' special), then the option is interpreted as
+starting a new paper size description, where NAME is the name and HSIZE
+and VSIZE define the horizontal and vertical size of the sheet of paper,
+respectively. For example:
+
+ @ letterSize 8.5in 11in
+
+ If both HSIZE and VSIZE are zero (you must still specify units!) then
+any page size will match. If the '@' character is immediately followed
+by a '+' sign, then the remainder of the line (after skipping any
+leading blanks) is treated as PostScript code to send to the printer,
+presumably to select that particular paper size:
+
+ @ letter 8.5in 11in
+ @+ %%BeginPaperSize: Letter
+ @+ letter
+ @+ %%EndPaperSize
+
+ After all that, if the first character of the line is an exclamation
+point, then the line is put in the initial comments section of the final
+output file; else, it is put in the setup section of the output file.
+For example:
+
+ @ legal 8.5in 14in
+ @+ ! %%DocumentPaperSizes: Legal
+ @+ %%BeginPaperSize: Legal
+ @+ legal
+ @+ %%EndPaperSize
+
+ When Dvips has a paper format name given on the command line, it
+looks for a match by the NAME; when it has a 'papersize' special, it
+looks for a match by dimensions. The best match found (from the paper
+size information in the configuration file) is used. The dimensions
+must match within 5bp.
+
+ If nothing matches, a warning is printed and the first paper size
+with zero dimensions is used; this should be the 'unknown' paper size
+definition mentioned below, resulting in the actual dimensions being
+used.
+
+ Landscape mode for all paper sizes is automatically supported.
+
+ If your printer has a command to set a special paper size, then give
+dimensions of '0in 0in'; the PostScript code that sets the paper size
+can refer to the dimensions the user requested as 'hsize' and 'vsize';
+these will be macros defined in the PostScript that return the requested
+size in default PostScript units. Also, some printers want
+'BeginPaperSize' comments and paper size setting commands; others (such
+as the NeXT) want 'PaperSize' comments and they will handle setting the
+paper size. So paper size entries should typically specify both.
+
+ When using a paper size that is not already defined in 'config.ps',
+you probably want to say '-t unknown' on the command line; the 'unknown'
+paper size definition in 'config.ps' has the requisite PostScript
+incantation to set the PostScript page size, as just described.
+
+ If you want no paper size information in the output at all, use
+'-t nopaper'. This is useful with multi-page output that will be
+processed further. If you just have a single page document, you can use
+'-E' to get pure EPSF output.
+
+ The Perl 5 script 'contrib/configs/mkdvipspapers' in the distribution
+directory may help in determining appropriate paper size definitions.
+
+ Notwithstanding the above, the default 'letter' and 'a4' paper size
+definitions in 'config.ps' execute the 'setpagedevice' operator if it
+exists (it was defined in PostScript Level 2), or the 'letter' or 'a4'
+operator if they exist (they are nonstandard and thus perhaps cause
+failures on certain (unknown) printers). Not executing any page size
+definition at all confuses PostScript conversion programs such as
+'ps2pdf', so we want to execute one if we can.
+
+ The 'letterSize' and 'A4Size' paper size definitions are now synonyms
+for 'letter' and 'a4'.
+
+
+File: dvips.info, Node: Paper trays, Prev: Config file paper sizes, Up: Paper size and landscape
+
+4.3 Paper trays
+===============
+
+Some printers, such as the Hewlett-Packard HP4si, have multiple paper
+trays. You can set up Dvips to take advantage of this using the
+'bop-hook' PostScript variable (*note PostScript hooks::).
+
+ For example, suppose you have an alternate tray stocked with
+letterhead paper; the usual tray has the usual paper. You have a
+document where you want the first page printed on letterhead, and the
+remaining pages on the usual paper. You can create a header file, say
+'firstletterhead.PS', with the following (PostScript) code ('bop-hook'
+is passed the current physical page number, which starts at zero):
+
+ /bop-hook { dup 0 eq { ALTERNATETRAY } { NORMALTRAY } ifelse } def
+
+where ALTERNATETRAY and NORMALTRAY are the appropriate commands to
+select the paper trays. On the 4SI, ALTERNATETRAY is 'statusdict begin
+1 setpapertray end' and NORMALTRAY is 'statusdict begin 0 setpapertray
+end'.
+
+ Then, include the file with either
+ * the '-h' command-line option (*note Option details::); or
+
+ * the 'h' config file option (*note Configuration file commands::);
+ or
+
+ * '\special{header=FILE}' in your TeX document (*note Including
+ headers from TeX: Including headers from TeX.).
+
+
+File: dvips.info, Node: Interaction with PostScript, Next: PostScript fonts, Prev: Paper size and landscape, Up: Top
+
+5 Interaction with PostScript
+*****************************
+
+Dvips supports inclusion of PostScript figure files (e.g., Encapsulated
+PostScript), downloading other header files (e.g., fonts), including
+literal PostScript code, and hypertext.
+
+* Menu:
+
+* PostScript figures:: Including an Encapsulated PostScript figure.
+* Header files:: Downloading extra definitions.
+* Literal PS:: Writing literal PostScript code.
+* Hypertext:: Producing HyperPostScript to make PDF.
+
+
+File: dvips.info, Node: PostScript figures, Next: Header files, Up: Interaction with PostScript
+
+5.1 PostScript figures
+======================
+
+Scaling and including PostScript graphics is a breeze--if the PostScript
+file is correctly formed. Even if it is not, however, the file can
+usually be accommodated with just a little more work.
+
+* Menu:
+
+* Bounding box:: The %%BoundingBox EPS comment.
+* \includegraphics:: The LaTeX \includegraphics macro.
+* EPSF macros:: Including the file in TeX.
+* psfile special:: The basic special.
+* Dynamic creation of graphics:: Handling compressed or generated figures.
+* Fonts in figures:: The %*Font comment.
+
+
+File: dvips.info, Node: Bounding box, Next: \includegraphics, Up: PostScript figures
+
+5.1.1 The bounding box comment
+------------------------------
+
+The most important feature of a good PostScript file from the standpoint
+of including it in another document is an accurate bounding box comment.
+Every well-formed PostScript file has a comment describing where on the
+page the graphic is located, and how big that graphic is.
+
+ This information is given as the lower left and upper right corners
+of the box just enclosing the graphic, and is thus referred to as the
+"bounding box". These coordinates are given in the default PostScript
+units (there are precisely 72 PostScript units to the inch, like TeX big
+points) with respect to the lower left corner of the sheet of paper.
+
+ To see if a PostScript file has a bounding box comment, just look at
+the first few lines of the file. PostScript files are standard ASCII,
+so you can use any text editor to do this. If within the first few
+dozen lines there is a line like
+
+ %%BoundingBox: 25 50 400 300
+
+(with any reasonable numbers), chances are very good that the file is
+Encapsulated PostScript and will work easily with Dvips. If the file
+contains instead a line like
+
+ %%BoundingBox: (atend)
+
+the file is still probably Encapsulated PostScript, but the bounding box
+is given at the end of the file. Dvips needs it at the beginning. You
+can move it with that same text editor, or a simple script. (The
+bounding box is given in this way when the program that generated the
+PostScript couldn't know the size in advance, or was too lazy to compute
+it.)
+
+ If the document lacks a '%%BoundingBox:' altogether, you can
+determine one in a couple of ways. One is to use the 'bbfig' program
+distributed with Dvips in the 'contrib' directory. This can usually
+find the correct bounding box automatically; it works best with
+Ghostscript.
+
+ If the comment looks like this:
+ %%BoundingBox: 0 0 612 792
+
+the graphic claims to take up an entire sheet of paper. This is usually
+a symptom of a bug in the program that generated it.
+
+ The other is to do it yourself: print the file. Now, take a ruler,
+and make the following measurements (in PostScript units, so measure in
+inches and multiply by 72): From the left edge of the paper to the
+leftmost mark on the paper is LLX, the first number. From the bottom
+edge of the paper to the bottommost mark on the paper is LLY, the second
+number. From the left edge of the paper to the rightmost mark on the
+paper is URX, the third number. The fourth and final number, URY, is
+the distance from the bottom of the page to the uppermost mark on the
+paper.
+
+ Once you have the numbers, add a comment of the following form as the
+second line of the document. (The first line should already be a line
+starting with the two characters '%!'; if it is not, the file probably
+isn't PostScript.)
+
+ %%BoundingBox: LLX LLY URX URY
+
+Or, if you don't want to modify the file, you can simply write these
+numbers down in a convenient place and give them in your TeX document
+when you import the graphic, as described in the next section.
+
+ If the document does not have such a bounding box, or if the bounding
+box is given at the end of the document, or the bounding box is wrong,
+please complain to the authors of the software package that generated
+the file.
+
+
+File: dvips.info, Node: \includegraphics, Next: EPSF macros, Prev: Bounding box, Up: PostScript figures
+
+5.1.2 The \includegraphics macro for LaTeX
+------------------------------------------
+
+Once the figure file has a bounding box comment (see the previous
+section) you are ready to import the graphic into a LaTeX document. For
+LaTeX2e, you can use the epsf, graphics or graphicx packages, but the
+last is recommended--it has the most flexible syntax, and is briefly
+described here. Further information can be found in 'grfguide' or
+'epslatex', which should be included in your LaTeX distribution in DVI,
+PDF, or other formats. (If you are still using LaTeX 2.09, use
+epsf.sty).
+
+ Just put the following command into your preamble:
+
+ \usepackage[dvips]{graphicx}
+
+ Depending on your system, a suitable driver setup may already be
+present, so that LaTeX automatically produces DVI files suitable for
+Dvips. In this case you can leave out the '[dvips]' parameter.
+
+ Now, at the point you want to include a file 'foo.eps', enter a line
+such as:
+
+ \includegraphics{foo.eps}
+
+ However, it is usually best to omit the file extension and only use
+
+ \includegraphics{foo}
+
+because then you can process the same LaTeX file with different TeX
+engines or DVI converters if you also provide suitable graphics files
+for them, e.g., 'foo.pdf' or 'foo.png'.
+
+ The \includegraphics command has many options, specified in
+'key=value' syntax, to allow you to resize, rotate or trim the included
+graphic--see 'grfguide' or 'epslatex'. If your file does not have a
+bounding box comment, you can supply the numbers as determined in the
+previous section, in the same order they would have been in a normal
+bounding box comment:
+
+ \includegraphics[bb=100 100 500 500]{foo.ps}
+
+Now, save your changes and run LaTeX and Dvips; the output should have
+your graphic positioned at precisely the point you indicated, occupying
+the proper amount of space.
+
+ PostScript graphics have their origin in the lower left corner.
+Therefore, in TeX, a graphic will occupy a box that extends far above
+the line where it is put in, but has depth zero below it. Combining
+'\includegraphics' with '\parbox' commands or minipages can sometimes be
+confusing when this is not taken into account.
+
+
+File: dvips.info, Node: EPSF macros, Next: psfile special, Prev: \includegraphics, Up: PostScript figures
+
+5.1.3 Using the EPSF macros
+---------------------------
+
+If you are using LaTeX2e, use the 'graphics' or 'graphicx' package.
+*Note \includegraphics::.
+
+ If you are using plain TeX or LaTeX 2.09, you need 'epsf.tex' (for
+plain TeX) and 'epsf.sty' (for LaTeX). For plain TeX, add a line like
+this near the top of your input file:
+
+ \input epsf
+
+If you are using LaTeX 2.09, add the 'epsf' style option, as in:
+
+ \documentstyle[12pt,epsf]{article}
+
+In any case, the above only needs to be done once, no matter how many
+figures you plan to include.
+
+ Now, at the point you want to include a file, enter a line such as:
+
+ \epsffile{foo.eps}
+
+ If you are using LaTeX, you may need to add '\leavevmode' immediately
+before the '\epsffile' command to get certain environments to work
+correctly. If your file does not have a bounding box comment, you can
+supply the numbers as determined in the previous section, in the same
+order they would have been in a normal bounding box comment:
+
+ \epsffile[100 100 500 500]{foo.ps}
+
+Now, save your changes and run TeX and Dvips; the output should have
+your graphic positioned at precisely the point you indicated, occupying
+the proper amount of space.
+
+ The '\epsffile' macro typesets the figure as a TeX '\vbox' at the
+point of the page that the command is executed. By default, the graphic
+will have its 'natural' width (namely, the width of its bounding box).
+The TeX box will have depth zero and its natural height. By default,
+the graphic will be scaled by any DVI magnification in effect, just as
+is everything else in your document. See the next section for more
+information on scaling.
+
+ If you want TeX to report the size of the figure as a message on your
+terminal when it processes each figure, give the command:
+
+ \epsfverbosetrue
+
+* Menu:
+
+* EPSF scaling::
+* EPSF clipping::
+
+
+File: dvips.info, Node: EPSF scaling, Next: EPSF clipping, Up: EPSF macros
+
+5.1.3.1 EPSF scaling
+....................
+
+Usually, you will want to scale an EPSF figure to some size appropriate
+for your document, since its natural size is determined by the creator
+of the EPS file.
+
+ The best way to do this is to assign the desired size to the TeX
+'\epsfxsize' or '\epsfysize' variables, whichever is more convenient for
+you. That is, put
+
+ \epsfxsize=DIMEN
+
+right before the call to '\epsffile'. Then the width of the TeX box
+will be DIMEN and its height will be scaled proportionately. Similarly,
+you can set the vertical size with
+
+ \epsfysize=DIMEN
+
+in which case the height will be set and the width scaled
+proportionally.
+
+ If you set both, both will be honored, but the aspect ratio of the
+included graphic may necessarily be distorted, i.e., its contents
+stretched in one direction or the other.
+
+ You can resize graphics in a more general way by redefining the
+'\epsfsize' macro. '\epsffile' calls this with two parameters: the
+natural horizontal and vertical sizes of the PostScript graphic.
+'\epsfsize' must expand to the desired horizontal size, that is, the
+width of the '\vbox'. Schematically:
+
+ \def\epsfsize#1#2{BODY}
+
+ Some useful definitions of BODY:
+
+'\epsfxsize'
+ This definition (the default) enables the default features listed
+ above, by setting '\epsfxsize' to the same value it had before the
+ macro was called.
+
+'#1'
+ Force the natural size by returning the first parameter (the
+ original width).
+
+'0pt'
+ A special case, equivalent to '#1'.
+
+'0.5#1'
+ Scale to half the natural size.
+
+'\hsize'
+ Scale to the current '\hsize'. (In LaTeX, use '\textwidth' instead
+ of '\hsize'.)
+
+'\ifnum#1>\hsize\hsize\else#1\fi'
+ If the natural width is greater than the current '\hsize', scale to
+ '\hsize', otherwise use the natural width.
+
+ For compatibility with other PostScript drivers, it is possible to
+turn off the default scaling of included figures by the DVI
+magnification with the following TeX command:
+
+ \special{! /magscale false def}
+
+Use of this command is not recommended because it will make the
+'\epsffile' graphics the "wrong" size if global magnification is being
+used, and it will cause any PostScript graphics to appear improperly
+scaled and out of position if a DVI to DVI program is used to scale or
+otherwise modify the document.
+
+ DVI magnification is not applied to any output from code you write in
+'bop-hook' or its ilk (*note PostScript hooks::),
+
+
+File: dvips.info, Node: EPSF clipping, Prev: EPSF scaling, Up: EPSF macros
+
+5.1.3.2 EPSF clipping
+.....................
+
+By default, clipping is disabled for included EPSF images. This is
+because clipping to the bounding box dimensions often cuts off a small
+portion of the figure, due to slightly inaccurate bounding box
+arguments. The problem might be subtle; lines around the boundary of
+the image might be half their intended width, or the tops or bottoms of
+some text annotations might be sliced off. If you want to turn clipping
+on, just use the command
+
+ \epsfclipon
+
+and to turn clipping back off, use
+
+ \epsfclipoff
+
+
+File: dvips.info, Node: psfile special, Next: Dynamic creation of graphics, Prev: EPSF macros, Up: PostScript figures
+
+5.1.4 'psfile' special
+----------------------
+
+The basic special for file inclusion is as follows:
+
+ \special{psfile=FILENAME.ps [KEY=VALUE] ... }
+
+This downloads the PostScript file 'FILENAME.ps' such that the current
+point will be the origin of the PostScript coordinate system. The
+optional KEY=VALUE assignments allow you to specify transformations on
+the PostScript.
+
+ The possible KEYs are:
+
+'hoffset'
+ The horizontal offset (default 0).
+
+'voffset'
+ The vertical offset (default 0).
+
+'hsize'
+ The horizontal clipping size (default 612).
+
+'vsize'
+ The vertical clipping size (default 792).
+
+'hscale'
+ The horizontal scaling factor, as a percentage (default 100).
+
+'vscale'
+ The vertical scaling factor, as a percentage (default 100).
+
+'angle'
+ The rotation, in degrees (default 0).
+
+'clip'
+ Enable clipping to the bounding box (default disabled).
+
+'llx, lly, urx, ury'
+ Bounding box of the included image, just as in a '%%BoundingBox'
+ comment. Values are in big points, and may be fractional.
+
+'rhi, rwi'
+ Desired width and height of the resulting figure in the output, in
+ tenths of big points (720 to the inch); may be fractional.
+
+ If both 'rwi' and 'rhi' are nonzero, the picture is scaled,
+ possibly losing aspect ratio. If only one of 'rwi' and 'rhi' is
+ nonzero, the picture is scaled, preserving aspect ratio.
+
+ The offsets and sizes are given in PostScript units (big points).
+Thus, for example:
+
+ \special{psfile=foo.ps hoffset=72 hscale=90 vscale=90}
+
+will shift the graphics produced by file 'foo.ps' right by one inch and
+will draw it at 0.9 times normal size. Offsets are given relative to
+the point of the special command, and are unaffected by scaling or
+rotation. Rotation is counterclockwise about the origin. The order of
+operations is to rotate the figure, scale it, then offset it.
+
+ For compatibility with older PostScript drivers, it is possible to
+change the units that 'hscale' and 'vscale' are given in. This can be
+done by redefining '@scaleunit' in 'SDict' by a TeX command such as
+
+ \special{! /@scaleunit 1 def}
+
+The '@scaleunit' variable, which is by default 100, is what 'hscale' and
+'vscale' are divided by to yield an absolute scale factor.
+
+
+File: dvips.info, Node: Dynamic creation of graphics, Next: Fonts in figures, Prev: psfile special, Up: PostScript figures
+
+5.1.5 Dynamic creation of PostScript graphics files
+---------------------------------------------------
+
+PostScript is an excellent page description language--but it does tend
+to be rather verbose. Compressing PostScript graphics files can reduce
+them by factor of five or more. For this reason, if the name of an
+included PostScript file ends with '.Z' or '.gz', Dvips automatically
+runs 'gzip -d'. For example:
+
+ \epsffile[72 72 540 720]{foo.ps.gz}
+
+Since the results of such a command are not accessible to TeX, if you
+use this facility with the 'epsf' macros, you need to supply the
+bounding box parameter yourself, as shown.
+
+ More generally, if the filename parameter to one of the graphics
+inclusion techniques starts with a left quote ('`'), the parameter is
+instead interpreted as a command to execute that will send the actual
+file to standard output. For example:
+
+ \special{psfile="`gnuplot foo"}
+
+to include the file 'foo'. Of course, the command to be executed can be
+anything, including using a file conversion utility such as 'tek2ps' or
+whatever is appropriate. This feature can be disabled with the '-R'
+command-line option or 'R' configuration option.
+
+
+File: dvips.info, Node: Fonts in figures, Prev: Dynamic creation of graphics, Up: PostScript figures
+
+5.1.6 Fonts in figures
+----------------------
+
+You can use any font available to TeX and Dvips within a graphics file
+by putting a '%*Font:' line in the leading commentary of the file.
+Schematically, this looks like:
+
+ %*Font: TFMNAME SCALEDBP DESIGNBP HEX-START:HEX-BITSTRING
+
+ Here is the meaning of each of these elements:
+
+TFMNAME
+ The TeX TFM filename, e.g., 'cmr10'. You can give the same TFMNAME
+ on more than one '%*Font' line; this is useful when the number of
+ characters from the font used needs a longer HEX-BITSTRING (see
+ item below) than conveniently fits on one line.
+
+SCALEDBP
+ The size at which you are using the font, in PostScript points (TeX
+ big points). 72bp = 72.27pt = 1in.
+
+DESIGNBP
+ The designsize of the font, again in PostScript points. This
+ should match the value in the TFM file TFMNAME. Thus, for 'cmr10',
+ it should be '9.96265'.
+
+HEX-START
+ The character code of the first character used from the font,
+ specified as two ASCII hexadecimal characters, e.g., '4b' or '4B'
+ for 'K'.
+
+HEX-BITSTRING
+ An arbitrary number of ASCII hexadecimal digits specifying which
+ characters following (and including) HEX-START are used. This is
+ treated as a bitmap. For example, if your figure used the single
+ letter 'K', you would use '4b:8' for HEX-START and HEX-BITSTRING.
+ If it used 'KLMNP', you would use '4b:f4'.
+
+ MetaPost's output figures contain lines like this for bitmap fonts
+used in a MetaPost label (*note (web2c)MetaPost::).
+
+
+File: dvips.info, Node: Header files, Next: Literal PS, Prev: PostScript figures, Up: Interaction with PostScript
+
+5.2 PostScript header files
+===========================
+
+"Header files" are bits of PostScript included in the output file;
+generally they provide support for special features, rather than
+producing any printed output themselves. You can explicitly request
+downloading header files if necessary for some figure, or to achieve
+some special effect.
+
+ Dvips includes some headers on its own initiative, to implement
+features such as PostScript font reencoding, bitmap font downloading,
+handling of '\special''s, and so on. These standard headers are the
+'.pro' files (for "prologue") in the installation directory
+'$(psheaderdir)'; they are created from the '.lpro' ("long prologue")
+files in the distribution by stripping comments, squeezing blank lines,
+etc., for maximum efficiency. If you want to peruse one of the standard
+header files, read the '.lpro' version.
+
+ The PostScript dictionary stack will be at the 'userdict' level when
+header files are included.
+
+* Menu:
+
+* Including headers from TeX::
+* Including headers from the command line::
+* Headers and memory usage::
+
+
+File: dvips.info, Node: Including headers from TeX, Next: Including headers from the command line, Up: Header files
+
+5.2.1 Including headers from TeX
+--------------------------------
+
+In order to get a particular graphic file to work, a certain font or
+header file might need to be sent first. The Dvips program provides
+support for this with the 'header' '\special'. For instance, to ensure
+that 'foo.ps' gets downloaded:
+
+ \special{header=foo.ps}
+
+ As another example, if you have some PostScript code that uses a
+PostScript font not built into your printer, you must download it to the
+printer. If the font isn't used elsewhere in the document, Dvips can't
+know you've used it, so you must include it in the same way, as in:
+
+ \special{header=putr.pfa}
+
+to include the font definition file for Adobe Utopia Roman.
+
+ The 'header' also special allows for specifying some additional code
+that should be inserted into the PostScript document before and after
+the file itself, as follows:
+
+ \special{header={foo.ps} pre={pre code} post={post code}}
+
+ This will insert 'pre code' just before 'foo.ps' and 'post code' just
+after. It is required to use the (balanced) braces in _all_ of the
+arguments, including the 'header', when using this extended syntax.
+
+ This allows, for instance, dynamic headers, where some of the content
+depends on settings from the user in (La)TeX. Another application is
+the inclusion of graphics inside the PostScript header, so that they can
+be reused throughout the document, as with logs. That avoids including
+the same graphic several times. This is implemented in the
+'graphics/graphicx-psmin' package.
+
+ This extended syntax has one additional feature. When Dvips finds
+the extended syntax, it will also look in the installed 'tex/' tree(s)
+for the header file ('foo.ps' in our example), and not only in the
+current directory and dvips tree as the original syntax does. This is
+because common graphics may well come with packages which are installed
+in the 'tex/' tree.
+
+
+File: dvips.info, Node: Including headers from the command line, Next: Headers and memory usage, Prev: Including headers from TeX, Up: Header files
+
+5.2.2 Including headers from the command line
+---------------------------------------------
+
+You can include headers when you run Dvips, as well as from your
+document (see the previous section). To do this, run Dvips with the
+option '-P HEADER'; this will read the file 'config.HEADER', which in
+turn can specify a header file to be downloaded with the 'h' option.
+*Note Configuration file commands::. These files are called
+'HEADER.cfg' on MS-DOS.
+
+ You can arrange for the same file to serve as a '-P' config file and
+the downloadable header file, by starting the lines of PostScript code
+with a space, leaving only the 'h' line and any comments starting in the
+first column. As an example, see 'contrib/volker/config.*'
+('contrib/volker/*.cfg' on MS-DOS). (These files also perform useful
+functions: controlling duplex/simplex mode on duplex printers, and
+setting various screen frequencies; 'contrib/volker/README' explains
+further.)
+
+
+File: dvips.info, Node: Headers and memory usage, Prev: Including headers from the command line, Up: Header files
+
+5.2.3 Headers and memory usage
+------------------------------
+
+Dvips tries to avoid overflowing the printer's memory by splitting the
+output files into "sections" (see the '-i' option in *note Option
+details::). Therefore, for all header files, Dvips debits the printer
+VM budget by some value. If the header file has, in its leading
+commentary a line of the form
+
+ %%VMusage: MIN MAX
+
+then MAX is used. If there is no '%%VMusage' line, then the size (in
+bytes) of the header file is used as an approximation. If you want a
+file to be ignored in the sectioning calculations, use '%%VMusage: 0 0'.
+
+ Illustrations (figure files) are also checked for '%%VMusage' line.
+
+ Therefore, if your document uses very large fonts or very large
+included figures, Dvips might take it upon itself to split the output
+into unwanted sections. If this causes problems, the simplest solution
+is to use 'dvips -Pmaxmem', which reads the Dvips file 'config.maxmem',
+which sets Dvips's idea of the memory available to a very large number.
+(See the 'm' item in *note Configuration file commands::.)
+
+
+File: dvips.info, Node: Literal PS, Next: Hypertext, Prev: Header files, Up: Interaction with PostScript
+
+5.3 Literal PostScript
+======================
+
+You can include literal PostScript code in your document in several
+ways.
+
+* Menu:
+
+* " special:: To include inline PostScript code.
+* ps special:: Inline PostScript without save/restore.
+* Literal headers:: Literal PostScript for the whole document.
+* PostScript hooks:: Specifying code to run in the PS interpreter.
+* Literal examples:: Neat example.
+
+
+File: dvips.info, Node: " special, Next: ps special, Up: Literal PS
+
+5.3.1 '"' special: Literal PostScript
+-------------------------------------
+
+For simple graphics, or just for experimentation, literal PostScript
+code can be included. Simply use a '\special' beginning with a double
+quote character '"'; there is no matching closing '"'.
+
+ For instance, the following (simple) graphic:
+
+ [ picture of a grey triangle ]
+
+was created by typing:
+
+ \vbox to 100bp{\vss % a bp is the same as a PostScript unit
+ \special{" newpath 0 0 moveto 100 100 lineto 394 0 lineto
+ closepath gsave 0.8 setgray fill grestore stroke}}
+
+ You are responsible for leaving space for such literal graphics, as
+with the '\vbox' above.
+
+
+File: dvips.info, Node: ps special, Next: Literal headers, Prev: " special, Up: Literal PS
+
+5.3.2 'ps' special
+------------------
+
+Generally, Dvips encloses specials in a PostScript save/restore pair,
+guaranteeing that the special will have no effect on the rest of the
+document. The 'ps' special, however, allows you to insert literal
+PostScript instructions without this protective shield; you should
+understand what you're doing (and you shouldn't change the PostScript
+graphics state unless you are willing to take the consequences). This
+command can take many forms because it has had a torturous history; any
+of the following will work:
+
+ \special{ps:TEXT}
+ \special{ps::TEXT}
+ \special{ps::[begin]TEXT}
+ \special{ps::[end]TEXT}
+ \special{ps::[nobreak]TEXT}
+
+(with longer forms taking precedence over shorter forms, when they are
+present). 'ps::' and 'ps::[end]' do no positioning, so they can be used
+to continue PostScript literals started with 'ps:' or 'ps::[begin]'.
+
+ Literal PostScript instructions after 'ps::[nobreak]' are _not_
+broken into lines. This feature may be used to include PostScript
+comments, for example.
+
+ In addition, the variant
+
+ \special{ps: plotfile FILENAME}
+
+inserts the contents of FILENAME verbatim into the output (except for
+omitting lines that begin with %). An example of the proper use of
+literal specials can be found in the file 'rotate.tex', which makes it
+easy to typeset text turned in multiples of 90 degrees.
+
+
+File: dvips.info, Node: Literal headers, Next: PostScript hooks, Prev: ps special, Up: Literal PS
+
+5.3.3 Literal headers: '!' '\special'
+-------------------------------------
+
+You can download literal PostScript header code in your TeX document,
+for use with (for example) literal graphics code that you include later.
+The text of a '\special' beginning with an '!' is copied into the output
+file. A dictionary 'SDict' will be current when this code is executed;
+Dvips arranges for 'SDict' to be first on the dictionary stack when any
+PostScript graphic is included, whether literally (the '"' special) or
+through macros (e.g., 'epsf.tex').
+
+ For example:
+
+ \special{! /reset { 0 0 moveto} def}
+
+
+File: dvips.info, Node: PostScript hooks, Next: Literal examples, Prev: Literal headers, Up: Literal PS
+
+5.3.4 PostScript hooks
+----------------------
+
+Besides including literal PostScript at a particular place in your
+document (as described in the previous section), you can also arrange to
+execute arbitrary PostScript code at particular times while the
+PostScript is printing.
+
+ If any of the PostScript names 'bop-hook', 'eop-hook', 'start-hook',
+or 'end-hook' are defined in 'userdict', they will be executed at the
+beginning of a page, end of a page, start of the document, and end of a
+document, respectively.
+
+ When these macros are executed, the default PostScript coordinate
+system and origin is in effect. Such macros can be defined in headers
+added by the '-h' option or the 'header=' special, and might be useful
+for writing, for instance, 'DRAFT' across the entire page, or, with the
+aid of a shell script, dating the document. These macros are executed
+outside of the save/restore context of the individual pages, so it is
+possible for them to accumulate information, but if a document must be
+divided into sections because of memory constraints, such added
+information will be lost across section breaks.
+
+ The single argument to 'bop-hook' is the physical page number; the
+first page gets zero, the second one, etc. 'bop-hook' must leave this
+number on the stack. None of the other hooks are passed arguments.
+
+ As an example of what can be done, the following special will write a
+light grey 'DRAFT' across each page in the document:
+
+ \special{!userdict begin /bop-hook{gsave 200 30 translate
+ 65 rotate /Times-Roman findfont 216 scalefont setfont
+ 0 0 moveto 0.7 setgray (DRAFT) show grestore}def end}
+
+ Using 'bop-hook' or 'eop-hook' to preserve information across pages
+breaks compliance with the Adobe document structuring conventions, so if
+you use any such tricks, you may also want to use the '-N' option to
+turn off structured comments (such as '%%Page'). Otherwise, programs
+that read your file will assume its pages are independent.
+
+
+File: dvips.info, Node: Literal examples, Prev: PostScript hooks, Up: Literal PS
+
+5.3.5 Literal examples
+----------------------
+
+To finish off this section, the following examples of literal PostScript
+are presented without explanation:
+
+ \def\rotninety{\special{ps:currentpoint currentpoint translate 90
+ rotate neg exch neg exch translate}}\font\huge=cmbx10 at 14.4truept
+ \setbox0=\hbox to0pt{\huge A\hss}\vskip16truept\centerline{\copy0
+ \special{ps:gsave}\rotninety\copy0\rotninety\copy0\rotninety
+ \box0\special{ps:grestore}}\vskip16truept
+
+ [ There are 4 'A' characters, each rotated 90 degrees about a common
+center point ]
+
+ \vbox to 2truein{\special{ps:gsave 0.3 setgray}\hrule height 2in
+ width\hsize\vskip-2in\special{ps:grestore}\font\big=cminch\big
+ \vss\special{ps:gsave 1 setgray}\vbox to 0pt{\vskip2pt
+ \line{\hss\hskip4pt NEAT\hss}\vss}\special{ps:0 setgray}%
+ \hbox{\raise2pt\line{\hss NEAT\hss}\special{ps:grestore}}\vss}
+
+ [ There is a big gray box with the word 'NEAT' inside in big letters
+]
+
+ Some caveats are in order, however. Make sure that each 'gsave' is
+matched with a 'grestore' on the same page. Do not use 'save' and
+'restore'; they can interact with the PostScript generated by Dvips if
+care is not taken. Try to understand what the above macros are doing
+before writing your own. The '\rotninety' macro especially has a useful
+trick that appears again and again.
+
+
+File: dvips.info, Node: Hypertext, Prev: Literal PS, Up: Interaction with PostScript
+
+5.4 HyperTeXt
+=============
+
+Dvips has support for producing hypertext PostScript documents. If you
+specify the '-z' option, the 'html:' specials described below will be
+converted into 'pdfmark' PostScript operators to specify links. Without
+'-z', 'html:' specials are ignored.
+
+ The resulting PostScript can then be processed by a distiller program
+to make a PDF file. (It can still be handled by ordinary PostScript
+interpreters as well.) Various versions of both PC and Unix distillers
+are supported; Ghostscript includes limited distiller support (*note
+Ghostscript installation::).
+
+ By far the most common LaTeX package used to create hyperlinked
+output is 'hyperref' (<https://ctan.org/pkg/hyperref>). For plain TeX,
+the Eplain package has some hyperlink support
+(<https://tug.org/eplain>).
+
+ This hypertext support (and original form of the documentation) was
+written by Mark Doyle and Tanmoy Bhattacharya as the 'dvihps' program.
+
+* Menu:
+
+* Hypertext caveats:: Font quality, missing character psi.
+* Hypertext specials:: The details on the specials.
+
+
+File: dvips.info, Node: Hypertext caveats, Next: Hypertext specials, Up: Hypertext
+
+5.4.1 Hypertext caveats
+-----------------------
+
+If you intend to go all the way to PDF, you may want to use the standard
+35 PostScript fonts exclusively, since other fonts are embedded as
+bitmaps by default. The Adobe PDF readers are extremely slow when
+dealing with bitmap fonts and the results look terrible on the screen.
+Printouts will probably look fine, but may not take full advantage of a
+high-resolution printer. Alternatively, you can have your fonts
+embedded as Type 1 scalable outlines. The resulting PostScript files
+may be larger, but can be effectively rasterized at any resolution.
+They can also be converted to PDF files that can be used effectively at
+any screen or printer resolution.
+
+ To get the TeX fonts embedded in the PostScript file as Type 1 fonts,
+add '-Ppdf' to the dvips command line switches. The printout for a run
+should look something like this:
+
+ dvips report -Ppdf -o report.ps
+ This is dvips(k) 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com)
+ ' TeX output 2001.06.15:0837' -> report.ps
+ <tex.pro><alt-rule.pro><texc.pro><texps.pro><special.pro>.
+ <cmbx9.pfb><cmsy6.pfb><cmsy7.pfb><cmr5.pfb><cmex10.pfb><cmr9.pfb>
+ <cmmi7.pfb><cmsy10.pfb><cmmib10.pfb><cmmi10.pfb><cmti10.pfb>
+ <cmr7.pfb><cmbx10.pfb><cmr10.pfb><cmti9.pfb><cmr12.pfb><cmbx12.pfb>
+ [1] [2<mean1.ps>] [3<bounce1-00.ps>] [4]
+
+ An entry like "<cmr10.pfb>" indicates success: dvips found the
+Computer Modern Roman 10 point font in a PostScript Font Binary file,
+translated it to an ASCII encoding, and embedded it. You can confirm
+this by examining the PostScript output file, looking for the section
+starting '%%BeginFont: CMR10' followed by an entry '/FontType 1 def'.
+
+ The '-Ppdf' option requires that the relevant outline ('.pfa' or
+'.pfb') files be installed (*note Font concepts::). For example, the
+'cmr10' file might be in
+'/usr/share/texmf/fonts/type1/bluesky/cm/cmr10.pfb'. Your TeX
+distribution may make those fonts available in a separate optional
+package (e.g., 'tetex-extra' in Debian). Failing that, commercial
+versions of the Computer Modern fonts are available from Blue Sky;
+public domain versions, in particular, the lm and cm-super font
+families, are available from CTAN and in TeX distributions.
+
+ You can convert a PostScript file to PDF using 'distill', which comes
+with Adobe Acrobat, or 'ps2pdf', which comes with Ghostscript. The
+'ps2pdf' that comes with 'Ghostscript' version 6.0 or earlier will not
+embed Type 1 fonts. Current recommendations are GNU Ghostscript 6.51 or
+Aladdin Ghostscript 7.0. You can check the fonts in a PDF file with
+Acrobat Reader by selecting the menu entries 'File|Document Info|Fonts'.
+
+ Also, the Adobe distillers prior to 2.1 drop trailing space
+characters (character code 32) from strings. Unfortunately, the
+PostScript fonts use this character code for characters other than space
+(notably the Greek letter psi in the 'Symbol' font), and so these
+characters are dropped. This bug is fixed in version 2.1.
+
+ If you can't upgrade, one workaround is to change all the trailing
+blanks in strings to a character code that isn't in the font. This
+works because the default behavior is to substitute a blank for a
+missing character, i.e., the distiller is fooled into substituting the
+right character. For instance, with the Blue Sky fonts, you can
+globally replace ' )' with '\200)' (with 'sed', for example) and get the
+desired result. With the public domain fonts, you will probably have to
+use a character code in the range 128 to 191 since these fonts duplicate
+the first 32 characters starting at 192 to avoid MS-DOS problems.
+
+ For more information on the use of TeX to produce PDF files, see the
+article "Creating quality Adobe PDF files from TeX with DVIPS" by
+Kendall Whitehouse of Adobe. Adobe seems not to offer the article any
+more, but copies are available elsewhere:
+ <http://www.math.hawaii.edu/~ralph/MathOnWeb/TeXPDF.html>
+ <http://www.utdallas.edu/~cantrell/online/543e.html>
+
+ You may also want to check "Notes on converting (La)TeX documents to
+robust PDF using Rokicki's dvips and Acrobat Distiller" by Timothy P.
+Van Zandt:
+<http://www.emrg.com/texpdf.htmlhttp://zandtwerk.insead.fr/tex2pdf.html>.
+
+
+File: dvips.info, Node: Hypertext specials, Prev: Hypertext caveats, Up: Hypertext
+
+5.4.2 Hypertext specials
+------------------------
+
+Current support for the World Wide Web in the TeX system does not
+involve modifying TeX itself. We need only define some specials; Arthur
+Smith (<apsmith@aps.org>), Tanmoy Bhattacharya, and Paul Ginsparg
+originally proposed and implemented the following:
+ html:<a href="XURL">
+ html:<a name="NAME">
+ html:</a>
+ html:<img src="XURL">
+ html:<base href="XURL">
+
+ Like all TeX '\special''s, these produce no visible output, and are
+uninterpreted by TeX itself. They are instructions to DVI processors
+only.
+
+ Here, XURL is a standard WWW uniform resource locator (URL), possibly
+extended with a '#TYPE.STRING' construct, where TYPE is 'page',
+'section', 'equation', 'reference' (for bibliographic references),
+'figure', 'table', etc. For example,
+ \special{html:<a href="http://www.maths.tcd.ie/~tim/ch1.dvi#equation.1.1">}
+is a link to equation (1.1) in an example document by Tim Murphy.
+
+ See the URL
+<http://www.w3.org/hypertext/WWW/Addressing/Addressing.html> for a
+precise description of base URL's.
+
+ Descriptions of the '\special''s:
+'href'
+ Creates links in your TeX document. For example:
+ \special{html:<a href="http://www.tug.org/">}\TeX\ Users
+ Group\special{html:</a>}
+ The user will be able to click on the text 'TeX Users Group' while
+ running Xdvi and get to the TUG home page. (By the way, this is
+ for illustration. In practice, you most likely want to use macros
+ to insert the '\special' commands; reference above.)
+
+'name'
+ Defines URL targets in your TeX documents, so links can be
+ resolved. For example:
+ \special{html:<a name="paradise">}Paradise\special{html:</a>}
+ is exactly where you are right now.
+ This will resolve an 'href="#paradise"'. You'll also have to
+ change the catcode of '#', etc. It's usually easiest to use
+ existing macro packages which take care of all the details, such as
+ 'hyperref' for LaTeX. The HyperTeX FAQ
+ (http://arxiv.org/hypertex/) has more information.
+
+'img'
+ Links to an arbitrary external file. Interactively, a viewer is
+ spawned to read the file according to the file extension and your
+ 'mailcap' file (see the Xdvi documentation).
+
+'base'
+ Defines a base URL that is prepended to all the 'name' targets.
+ Typically unnecessary, as the name of the DVI file being read is
+ used by default.
+
+ The 'img' and 'base' tags are not yet implemented in Dvips or the
+NeXTSTEP DVI viewer.
+
+
+File: dvips.info, Node: PostScript fonts, Next: Color, Prev: Interaction with PostScript, Up: Top
+
+6 PostScript fonts
+******************
+
+Dvips supports the use of PostScript fonts in TeX documents. To use a
+PostScript font conveniently, you need to prepare a corresponding
+virtual font; the program Afm2tfm, supplied with Dvips, helps with that.
+
+ All the necessary support for the standard 35 PostScript fonts
+('AvantGarde-Book' through 'ZapfDingbats'), plus other freely or
+commonly available PostScript fonts is available along with Dvips. To
+use these fonts, you need do nothing beyond what is mentioned in the
+installation procedure (*note Installation::). This chapter is
+therefore relevant only if you are installing new PostScript fonts not
+supplied with Dvips. (Or if you're curious.)
+
+* Menu:
+
+* Font concepts:: Metrics, glyphs, virtual fonts, and encodings.
+* Making a font available:: Installing and using a PostScript font.
+* Invoking afm2tfm:: Creating TFM and AFM files for a virtual font.
+* psfonts.map:: Defining available PostScript fonts.
+
+
+File: dvips.info, Node: Font concepts, Next: Making a font available, Up: PostScript fonts
+
+6.1 Font concepts
+=================
+
+The information needed to typeset using a particular font is contained
+in two files: a "metric file" that contains shape-independent
+information and a "glyph file" that contains the actual shapes of the
+font's characters. A "virtual font" is an optional additional file that
+can specify special ways to construct the characters. TeX itself (or
+LaTeX) look only at the metric file, but DVI drivers such as Dvips look
+at all three of these files.
+
+ An "encoding file" defines the correspondence between the code
+numbers of the characters in a font and their descriptive names. Two
+encoding files used together can describe a reencoding that rearranges,
+i.e., renumbers, the characters of a font.
+
+* Menu:
+
+* Metric files:: Shape-independent font information.
+* Glyph files:: Character shapes.
+* Virtual fonts:: Constructing one font from others.
+* Encodings:: Character codes and character names.
+* Bitmap font encodings:: Encodings for bitmapped fonts.
+* PostScript typesetting:: How PostScript typesets a character.
+
+
+File: dvips.info, Node: Metric files, Next: Glyph files, Up: Font concepts
+
+6.1.1 Metric files
+------------------
+
+A "metric file" describes properties of the font that are independent of
+what the characters actually look like. Aside from general information
+about the font itself, a metric file has two kinds of information:
+information about individual characters, organized by character code,
+and information about sequences of characters.
+
+ The per-character information specifies the width, height, depth, and
+italic correction of each character in the font. Any might be zero.
+
+ In addition to information on individual characters, the metric file
+specifies "kerning", i.e., adding or removing space between particular
+character pairs. It further specifies "ligature" information: when a
+sequence of input characters should be typeset as a single (presumably
+different) "ligature" character. For example, it's traditional for the
+input 'fi' to be typeset as 'fi', not as 'fi' (with the dot of the 'i'
+colliding with 'f'). (In English, the only common ligatures are fi, fl,
+ff, ffi, and ffl.)
+
+ Different typesetting systems use different metric file formats:
+
+ * Each Postscript font has an "Adobe font metrics" ('.afm') file.
+ These files are plain text, so you can inspect them easily. You
+ can get AFM files for Adobe's fonts from
+ <ftp://ftp.adobe.com/pub/adobe/Fonts/AFMs>.
+
+ * TeX uses "TeX font metrics" ('.tfm') files. When you say '\font =
+ FONT' in your TeX document, TeX reads a file named 'FONT.tfm'.
+ (Well, except for the 'texfonts.map' feature; *note
+ (kpathsea)Fontmap::). TeX can then calculate the space occupied by
+ characters from the font when typesetting. In addition, the DVI
+ drivers you use to print or view the DVI file produced by TeX may
+ need to look at the TFM file.
+
+ TFM files are binary (and hence are typically much smaller than AFM
+ files). You can use the 'tftopl' program (*note (web2c)tftopl
+ invocation::) that comes with TeX to transform a TFM file into a
+ human-readable "property list" ('.pl') file. You can also edit a
+ PL file and transform it back to a TeX-readable TFM with the
+ companion program 'pltotf' (*note (web2c)pltotf invocation::).
+ Editing metrics by hand is not something you're likely to want to
+ do often, but the capability is there.
+
+ * ATM and other typesetting systems use "printer font metric"
+ ('.pfm') files. These are binary files. They are irrelevant in
+ the TeX world, and not freely available, so we will not discuss
+ them further.
+
+ The Afm2tfm program distributed with Dvips converts an AFM file to a
+TFM file and performs other useful transformations as well. *Note
+Invoking afm2tfm::.
+
+
+File: dvips.info, Node: Glyph files, Next: Virtual fonts, Prev: Metric files, Up: Font concepts
+
+6.1.2 Glyph files
+-----------------
+
+Although a metric file (see the previous section) contains information
+about the spatial and other properties of the character at position 75,
+say, it contains nothing about what the character at position 75
+actually looks like. The glyphs--the actual shapes of the letterforms
+in a font--are defined by other files, which we call glyph files. TeX
+itself only reads the TFM file for a font; it does not need to know
+character shapes.
+
+ A "glyph file" is a file that defines the shapes of the characters in
+a font. The shapes can be defined either by outlines or by bitmaps.
+
+ PostScript fonts are defined as "outline fonts": Each character in
+the font is defined by giving the mathematical curves (lines, arcs, and
+splines) that define its contours. Different sizes of a character are
+generated by linearly scaling a single shape. For example, a 10-point
+'A' is simply half the size of a 20-point 'A'. Nowadays, outline fonts
+usually also contain "hints"--additional information to improve the
+appearance of the font at small sizes or low resolutions.
+
+ Although various kinds of PostScript outline fonts exist, by far the
+most common, and the only one we will consider, is called "Type 1". The
+glyph files for Postscript Type 1 fonts typically have names ending in
+'.pfa' ("printer font ASCII") or '.pfb' ("printer font binary").
+
+ In contrast, glyph files for Computer Modern and the other standard
+TeX fonts are "bitmap fonts", generated from Metafont ('.mf')
+descriptions. The Metafont program distributed with TeX generates
+bitmaps from these descriptions.
+
+ The glyph files for TeX bitmap fonts are usually stored in "packed
+font" (PK) files. The names of these files end in '.NNNpk', where NNN
+is the resolution of the font in dots per inch. For example,
+'cmr10.600pk' contains the bitmaps for the 'cmr10' font at a resolution
+of 600dpi. (On DOS filesystems, it's more likely 'dpi600\cmr10.pk'.)
+
+ Metafont actually outputs "generic font" (GF) files, e.g.,
+'cmr10.600gf', but the GF files are usually converted immediately to PK
+format (using the 'gftopk' utility that comes with TeX) since PK files
+are smaller and contain the same information. (The GF format is a
+historical artifact.)
+
+
+File: dvips.info, Node: Virtual fonts, Next: Encodings, Prev: Glyph files, Up: Font concepts
+
+6.1.3 Virtual fonts
+-------------------
+
+A "virtual font" is constructed by extracting characters from one or
+more existing fonts and rearranging them, or synthesizing new characters
+in various ways. The explanation in this manual is intended to suffice
+for understanding enough about virtual fonts to use them with Dvips. It
+isn't a reference manual on virtual fonts. For more information: The
+primary document on virtual fonts is Donald E. Knuth, 'TUGboat' 11(1),
+Apr. 1990, pp. 13-23, "Virtual Fonts: More Fun for Grand Wizards"
+(<mirror.ctan.org/info/virtual-fonts.knuth>). (Don't be intimidated by
+the subtitle.)
+
+ A virtual font ('.vf') file specifies, for each character in the
+virtual font, a recipe for typesetting that character. A VF file, like
+a TFM file, is in a compressed binary format. The 'vftovp' and 'vptovf'
+programs convert a VF file to a human-readable VPL (virtual property
+list) format and back again. *Note (web2c)vftovp invocation::, and
+*note (web2c)vptovf invocation::.
+
+ In the case of a PostScript font F being used in a straightforward
+way, the recipe says: character I in the VF font is character J in font
+F. The font F is called a "base font". For example, the VF file could
+remap the characters of the PostScript font to the positions where TeX
+expects to find them. *Note Encodings::.
+
+ Since TeX reads only TFM files, not VF's, each VF must have a
+corresponding TFM for use with TeX. This corresponding TFM is created
+when you run 'vptovf'.
+
+ You can "expand" virtual fonts into their base fonts with DVIcopy
+(*note (web2c)dvicopy invocation::). This is useful if you are using a
+DVI translator that doesn't itself understand vf's.
+
+ If a virtual font has no entry at a given codepoint and the first
+'MAPFONT' designates an (u)pTeX JFM, we designate the glyph of the same
+codepoint in the TFM(JFM) with the smallest font ID. This feature helps
+to reduce the size of Japanese virtual fonts. For more information
+about the extensive support of Japanese in TeX, see
+<https://github.com/texjporg>.
+
+
+File: dvips.info, Node: Encodings, Next: Bitmap font encodings, Prev: Virtual fonts, Up: Font concepts
+
+6.1.4 Encodings
+---------------
+
+Every font, whatever its type, has an "encoding", that specifies the
+correspondence between "logical" characters and character codes. For
+example, the ASCII encoding specifies that the character numbered 65
+(decimal) is an uppercase 'A'. The encoding does not specify what the
+character at that position looks like; there are lots of ways to draw an
+'A', and a glyph file (*note Glyph files::) tells how. Nor does it
+specify how much space that character occupies; that information is in a
+metric file (*note Metric files::).
+
+ TeX implicitly assumes a particular encoding for the fonts you use
+with it. For example, the plain TeX macro '\'', which typesets an acute
+accent over the following letter, assumes the acute accent is at
+position 19 (decimal). This happens to be true of standard TeX fonts
+such as Computer Modern, as you might expect, but it is not true of
+normal PostScript fonts.
+
+ It's possible but painful to change all the macros that assume
+particular character positions. A better solution is to create a new
+font with the information for the acute accent at position 19, where TeX
+expects it to be. *Note Making a font available::.
+
+ PostScript represents encodings as a sequence of 256 character names
+called an "encoding vector". An "encoding file" ('.enc') gives such a
+vector, together with ligature and kerning information (with which we
+are not concerned at the moment). These encoding files are used by the
+Afm2tfm program. Encoding files are also downloaded to the PostScript
+interpreter in your printer if you use one of them in place of the
+default encoding vector for a particular PostScript font.
+
+ Examples of encodings: the 'dvips.enc' encoding file that comes with
+the Fontname distribution (<http://tug.org/fontname>) is a good (but not
+perfect) approximation to the TeX encoding for TeX's Computer Modern
+text fonts. This is the encoding of the fonts that originated with
+Dvips, such as 'ptmr.tfm'. The distribution includes many other
+encoding files; for example, '8r.enc', which is the base font for the
+current PostScript font distribution, and three corresponding to the TeX
+mathematics fonts: 'texmext.enc' for math extensions, 'texmital.enc' for
+math italics, and 'texmsym.enc' for math symbols.
+
+
+File: dvips.info, Node: Bitmap font encodings, Next: PostScript typesetting, Prev: Encodings, Up: Font concepts
+
+6.1.5 Bitmap font encodings
+---------------------------
+
+To dvips, bitmapped fonts do not have any notion of linguistics; they
+are simply a vector of glyphs. By comparison, PostScript fonts are
+required to contain an encoding vector that at least provides glyph
+names; these names can permit PostScript and PDF viewers to extract
+legible text from Postscript and PDF output.
+
+ Unlike previous versions, dvips versions 2020 and later add glyph
+naming information to Type 3 bitmapped fonts (if they can locate such
+information) as an Encoding vector. This provides some support for
+search, for copy and paste, and even some limited support for
+accessibility. The 'bitmapfontenc' command line option (*note Option
+details:: and 'bitmapfontenc' configuration option (*note Configuration
+file commands::) enable and disable this functionality; by default it is
+set to enabled, without warnings.
+
+ To do this, dvips must find encoding information for the bitmapped
+fonts. It does this by first searching for a font-specific encoding
+file; for instance, for cmr10, it will search for 'dvips-cmr10.enc' in
+the standard encoding path. If it does not find such a file, it will
+search for a 'dvips-all.enc' file which contains a base set of encodings
+for many fonts.
+
+ The specific syntax of an encoding file is unspecified, except that
+it must be a PostScript fragment that leaves exactly one object on the
+operand stack. (This is different from the encoding files used to
+define encodings for PostScript fonts, described earlier). Normally
+that object is just an array of 256 names; in this case, that array is
+used as the encoding vector for the font. Alternatively, the object can
+be a procedure that, when executed, leaves a legal encoding vector on
+the stack. This second option is made available to support future
+enhancements that may add additional constructs to the font dictionary
+to enhance the interpretation of font characters.
+
+ The 'dvips-all.enc' file contains encodings for many fonts, and it is
+loaded by dvips at most once. The format is just a sequence of font
+names, one per line, each terminated by a colon, followed by the
+encoding to use for those files.
+
+ As part of its operation, to enable heuristics in PostScript and PDF
+viewers to properly identify word breaks and column gutters, dvips also
+generates a modified font bounding box and a modified font coordinate
+system.
+
+
+File: dvips.info, Node: PostScript typesetting, Prev: Bitmap font encodings, Up: Font concepts
+
+6.1.6 How PostScript typesets a character
+-----------------------------------------
+
+The output of Dvips is a program in the PostScript language that
+instructs your (presumably PostScript-capable) printer how to typeset
+your document by transforming it into toner on paper. Your printer, in
+turn, contains a PostScript interpreter that carries out the
+instructions in this typesetting program.
+
+ The program must include the definition of any PostScript fonts that
+you use in your document. Fonts built into your printer (probably the
+standard 35: 'Times-Roman', 'ZapfDingbats', ...) are defined within the
+interpreter itself. Other fonts must be downloaded as pfa or pfb files
+(*note Glyph files::) from your host (the computer on which you're
+running Dvips).
+
+ You may be wondering exactly how a PostScript interpreter figures out
+what character to typeset, with this mass of metrics, glyphs, encodings,
+and other information. (If you're not wondering, skip this section ...)
+
+ The basic PostScript operator for imaging characters is 'show'.
+Suppose you've asked TeX to typeset an 'S'. This will eventually wind up
+in the Dvips output as the equivalent of this PostScript operation:
+
+ (S) show
+
+Here is how PostScript typesets the 'S':
+
+ 1. PostScript interpreters use ASCII; therefore 'S' is represented as
+ the integer 83. (Any of the 256 possible characters representable
+ in a standard 8-bit byte can be typeset.)
+
+ 2. A PostScript "dictionary" is a mapping of names to arbitrary
+ values. A font, to the interpreter, is a dictionary which contains
+ entries for certain names. (If these entries are missing, the
+ interpreter refuses to do anything with that font.)
+
+ PostScript has a notion of "the current font"--whatever font is
+ currently being typeset in.
+
+ 3. One of the mandatory entries in a font dictionary is 'Encoding',
+ which defines the encoding vector (*note Encodings::) for that
+ font. This vector of 256 names maps each possible input character
+ to a name.
+
+ 4. The interpreter retrieves the entry at position 83 of the encoding
+ vector. This value is a PostScript name: '/S'.
+
+ 5. For Type 1 fonts (we're not going to discuss anything else), the
+ interpreter now looks up '/S' as a key in a dictionary named
+ 'CharStrings', another mandatory entry in a font dictionary.
+
+ 6. The value of 'S' in 'CharStrings' is the equivalent of a series of
+ standard PostScript commands like 'curveto', 'lineto', 'fill', and
+ so on. These commands are executed to draw the character. There
+ can also be "hint information" that helps adapt the character to
+ low-resolution rasters. (*Note Glyph files::.) The commands are
+ actually represented in a more compact way than standard PostScript
+ source; see the Type 1 book for details.
+
+ This method for typesetting characters is used in both Level 1 and
+Level 2 PostScript. See the PostScript reference manuals for more
+information.
+
+
+File: dvips.info, Node: Making a font available, Next: Invoking afm2tfm, Prev: Font concepts, Up: PostScript fonts
+
+6.2 Making a PostScript font available
+======================================
+
+To make a PostScript font available in a TeX document, you need to
+install the font on your system and then define it within the document.
+Once you have installed the font, of course, it is available for any
+document thereafter and you don't need to reinstall it. You must have
+an AFM file for any font you install. Unless the font is built into
+your printer, you must also have a PFA or PFB file.
+
+ In the following examples, we use the font 'Times-Roman' to
+illustrate the process. But you should use the prebuilt fonts for Times
+and the other standard fonts, rather than rebuilding them. The prebuilt
+fonts are made using a more complicated process than that described
+here, to make them work as well as possible with TeX. So following the
+steps in this manual will not generate files identical to the
+distributed ones. *Note PostScript font installation::, for pointers to
+the prebuilt fonts.
+
+ Installation of a PostScript font proceeds in three steps. *Note
+Font concepts::, for descriptions of the various files involved.
+
+ 1. Run 'afm2tfm' to create a TFM file for the original font, and the
+ VPL form of the virtual font:
+ afm2tfm Times-Roman -v ptmr rptmr
+
+ 2. Run 'vptovf' to generate a VF and TFM file for the virtual font
+ from the VPL file:
+ vptovf ptmr.vpl ptmr.vf ptmr.tfm
+
+ 3. Insert an entry for the font in 'psfonts.map' (*note
+ psfonts.map::):
+ rptmr Times-Roman <ptmr8a.pfa
+
+ 4. Install the files in the standard locations, as in:
+ cp ptmr.vf FONTDIR/vf/...
+ cp *ptmr.tfm FONTDIR/tfm/...
+ cp ptmr.afm FONTDIR/afm/...
+ cp ptmr.pf? FONTDIR/type1/...
+
+ The simplest invocation of Afm2tfm to make virtual fonts goes
+something like this:
+
+ afm2tfm Times-Roman -v ptmr rptmr
+
+This reads the file 'Times-Roman.afm', and produces two files as output,
+namely the virtual property list'file 'ptmr.vpl', and the "raw" font
+metric file 'rptmr.tfm'. To use the font in TeX, you first run
+
+ vptovf ptmr.vpl ptmr.vf ptmr.tfm
+
+You should then install the virtual font file 'ptmr.vf' where Dvips will
+see it and install 'ptmr.tfm' and 'rptmr.tfm' where TeX and Dvips will
+see them.
+
+ Using these raw fonts is not recommended; there are no raw fonts in
+the prebuilt PostScript fonts distributed along with Dvips. But
+nevertheless, that's how Afm2tfm presently operates, so that's what we
+document here. The 'r' prefix convention is likewise historical
+accident.
+
+ You can also make more complex virtual fonts by editing 'ptmr.vpl'
+before running 'vptovf'; such editing might add the uppercase Greek
+characters in the standard TeX positions, for instance. (This has
+already been done for the prebuilt fonts.)
+
+ Once the files have been installed, you're all set. You can now do
+things like this in TeX:
+ \font\myfont = ptmr at 12pt
+ \myfont Hello, I am being typeset in 12-point Times-Roman.
+
+ Thus, we have two fonts, one actual ('rptmr', which is analogous to
+the font in the printer) and one virtual ('ptmr', which has been
+remapped to the standard TeX encoding (almost)), and has typesetting
+know-how added. You could also say
+
+ \font\raw = rptmr at 10pt
+
+and typeset directly with that, but then you would have no ligatures or
+kerning, and you would have to use Adobe character positions for special
+letters like the ligature 'AE'. The virtual font 'ptmr' not only has
+ligatures and kerning, and most of the standard accent conventions of
+TeX, it also has a few additional features not present in the Computer
+Modern fonts. For example, it includes all the Adobe characters (such
+as the Polish ogonek and the French guillemots). The only things you
+lose from ordinary TeX text fonts are the dotless 'j' (which can be
+hacked into the VPL file with literal PostScript specials if you have
+the patience) and uppercase Greek letters (which just don't exist unless
+you buy them separately). *Note Reencoding with Afm2tfm::.
+
+ As a final step you need to record information about both the virtual
+font and the original font (if you ever might want to use it) in the
+'psfonts.map' file (*note psfonts.map::). For our example, you'd insert
+the following into 'psfonts.map':
+ rptmr Times-Roman <ptmr8a.pfa
+
+Of course, 'Times-Roman' is already built in to most every printer, so
+there's no need to download any Type 1 file for it. But if you are
+actually following these instructions for new fonts, most likely they
+are not built in to the printer.
+
+ These PostScript fonts can be scaled to any size. Go wild! Using
+PostScript fonts, however, does use up a great deal of the printer's
+memory and it does take time. You may find downloading bitmap fonts
+(possibly compressed, with the 'Z' option) to be faster than using the
+built-in PostScript fonts.
+
+
+File: dvips.info, Node: Invoking afm2tfm, Next: psfonts.map, Prev: Making a font available, Up: PostScript fonts
+
+6.3 Invoking Afm2tfm
+====================
+
+The Afm2tfm program converts an AFM file for a PostScript font to a TFM
+file and a VPL file for a corresponding virtual font (or, in its
+simplest form, to a TFM file for the PostScript font itself). The
+results of the conversion are affected by the command-line options and
+especially by the reencodings you can specify with those options. You
+can also obtain special effects such as an oblique font.
+
+ Alternatives to Afm2tfm for creating virtual fonts include 'fontinst'
+<https://ctan.org/pkg/fontinst>, 'lcdf-typetools', particularly
+'otftotfm' (<https://ctan.org/pkg/lcdf-typetools>), and 'afm2pl'
+(<http://tex.aanhet.net/afm2pl/>), among others.
+
+* Menu:
+
+* Changing font encodings:: Reencoding with -t, -p, -T.
+* Special font effects:: Oblique fonts, small caps, and such.
+* Afm2tfm options:: afm2tfm command-line options.
+
+
+File: dvips.info, Node: Changing font encodings, Next: Special font effects, Up: Invoking afm2tfm
+
+6.3.1 Changing font encodings
+-----------------------------
+
+Afm2tfm allows you to specify a different encoding for a PostScript font
+(for a general introduction to encodings, *note Encodings::). The '-t'
+option changes the TeX encoding, '-p' changes the PostScript encoding,
+and '-T' changes both simultaneously, as detailed in the sections below.
+
+* Menu:
+
+* Changing TeX encodings:: Where TeX finds a character.
+* Changing PostScript encodings:: Where PostScript finds a character.
+* Changing both encodings:: One and the same, simultaneously.
+* Reencoding with Afm2tfm:: Problems with the default encoding.
+* Encoding file format:: Syntax of an encoding file.
+
+
+File: dvips.info, Node: Changing TeX encodings, Next: Changing PostScript encodings, Up: Changing font encodings
+
+6.3.1.1 '-t': Changing TeX encodings
+....................................
+
+To build a virtual font with Afm2tfm, you specify the '-v' or '-V'
+option. You can then specify an encoding for that virtual font with '-t
+TEX-ENC'. ('-t' is ignored if neither '-v' nor '-V' is present.) Any
+ligature and kerning information you specify in TEX-ENC will be used in
+the VPL, in addition to the ligature and kerning information from the
+AFM file.
+
+ If the AFM file has no entry for a character specified in TEX-ENC,
+that character will be omitted from the output VPL.
+
+ The '-t' option is likely to be needed when you have a PostScript
+font corresponding to a TeX font other than a normal text font such as
+Computer Modern. For instance, if you have a PostScript font that
+contains math symbols, you'd probably want to use the encoding in the
+'texmsym.enc' file supplied with Dvips. (For a start; to actually get
+usable math fonts, you have to define much more than just an encoding.)
+
+
+File: dvips.info, Node: Changing PostScript encodings, Next: Changing both encodings, Prev: Changing TeX encodings, Up: Changing font encodings
+
+6.3.1.2 '-p': Changing PostScript encodings
+...........................................
+
+By default, Afm2tfm uses the encoding it finds in the AFM file. You can
+specify a different PostScript encoding with '-p PS-ENC'. This makes
+the raw TFM file (the one output by Afm2tfm) have the encoding specified
+in the encoding file PS-ENC. Any ligature or kern information specified
+in PS-ENC is ignored by Afm2tfm, since ligkern info is always omitted
+from the raw TFM.
+
+ If you use this option, you must also arrange to download PS-ENC as
+part of any document that uses this font. You do this by adding a line
+like the following one to 'psfonts.map' (*note psfonts.map::):
+ zpopr Optima "MyEncoding ReEncodeFont" <myenc.enc
+
+ Using '-p' is the only way to access characters in a PostScript font
+that are neither encoded in the AFM file nor constructed from other
+characters. For instance, Adobe's 'Times-Roman' font contains the extra
+characters 'trademark' and 'registered' (among others); these can only
+be accessed through such a PostScript reencoding.
+
+ The '8r' base encoding used for the current PostScript font
+distribution does do this reencoding, for precisely this reason.
+
+
+File: dvips.info, Node: Changing both encodings, Next: Reencoding with Afm2tfm, Prev: Changing PostScript encodings, Up: Changing font encodings
+
+6.3.1.3 '-T': Changing both TeX and PostScript encodings
+........................................................
+
+The option '-T ENC-FILE' is equivalent to '-p ENC-FILE -t ENC-FILE'. If
+you make regular use of a private non-standard reencoding '-T' is
+usually a better idea than the individual options, to avoid unexpected
+inconsistencies in mapping otherwise. An example of when you might use
+this option is a dingbats font: when you have a TeX encoding that is
+designed to be used with a particular PostScript font.
+
+
+File: dvips.info, Node: Reencoding with Afm2tfm, Next: Encoding file format, Prev: Changing both encodings, Up: Changing font encodings
+
+6.3.1.4 Reencoding with Afm2tfm
+...............................
+
+The Afm2tfm program creates the TFM and VF files for the virtual font
+corresponding to a PostScript font by "reencoding" the PostScript font.
+Afm2tfm generates these files from two encodings: one for TeX and one
+for PostScript. The TeX encoding is used to map character numbers to
+character names while the PostScript encoding is used to map each
+character name to a possibly different number. In combination, you can
+get access to any character of a PostScript font at any position for TeX
+typesetting.
+
+ In the default case, when you specify none of the '-t', '-p', or '-T'
+options, Afm2tfm uses a default TeX encoding (which mostly corresponds
+to the Computer Modern text fonts) and the PostScript encoding found in
+the AFM file being read. The reencoding is also sometimes called a
+"remapping".
+
+ For example, the default encodings reencode the acute accent in two
+steps: first the default TeX encoding maps the number 19 to the
+character name 'acute'; then the default PostScript encoding, as found
+in the AFM file for an ordinary PostScript font, maps the character name
+'acute' to the number 194. (The PostScript encoding works in reverse,
+by looking in the encoding vector for the name and then yielding the
+corresponding number.) The combined mapping of 19 to 194 shows up
+explicitly in the VF file and also implicitly in the fact that the
+properties of PostScript character 194 appear in position 19 of the TFM
+file for the virtual font.
+
+ The default encoding of the distributed fonts (e.g., 'ptmr.tfm')
+mostly follows plain TeX conventions for accents. The exceptions: the
+Hungarian umlaut (which is at position '0x7D' in 'cmr10', but position
+'0xCD' in 'ptmr'); the dot accent (at positions '0x5F' and '0xC7',
+respectively); and the Scandinavian A ring '\AA', whose definition needs
+different tweaking. In order to use these accents with PostScript fonts
+or in math mode when '\textfont0' is a PostScript font, you will need to
+use the following definitions. These definitions will not work with the
+Computer Modern fonts for the relevant accents. They are already part
+of the distributed 'psfonts.sty' for use with LaTeX.
+
+ \def\H#1{{\accent"CD #1}}
+ \def\.#1{{\accent"C7 #1}}
+ \def\dot{\mathaccent"70C7 }
+ \newdimen\aadimen
+ \def\AA{\leavevmode\setbox0\hbox{h}\aadimen\ht0
+ \advance\aadimen-1ex\setbox0\hbox{A}\rlap{\raise.67\aadimen
+ \hbox to \wd0{\hss\char'27\hss}}A}
+
+ As a kind of summary, here are the 'CODINGSCHEME's that result from
+the various possible choices for reencoding.
+
+default encoding
+ (CODINGSCHEME TeX text + AdobeStandardEncoding)
+
+'-p dc.enc'
+ (CODINGSCHEME TeX text + DCEncoding)
+
+'-t dc.enc'
+ (CODINGSCHEME DCEncoding + AdobeStandardEncoding)
+
+'-T dc.enc'
+ (CODINGSCHEME DCEncoding + DCEncoding)
+
+The 'CODINGSCHEME' line appears in the VPL file but is ignored by Dvips.
+
+
+File: dvips.info, Node: Encoding file format, Prev: Reencoding with Afm2tfm, Up: Changing font encodings
+
+6.3.1.5 Encoding file format
+............................
+
+Afm2tfm's encoding files have the same format as an encoding vector in a
+PostScript font. Here is a skeletal example:
+
+ % Comments are ignored, unless the first word after the percent sign
+ % is 'LIGKERN'; see below.
+ /MyEncoding [ % exactly 256 entries follow, each with a leading '/'
+ /Alpha /Beta /Gamma /Delta ...
+ /A /B ... /Z
+ ... /.notdef /xfooaccent /yfooaccent /zfooaccent
+ ] def
+
+ These encoding files are downloaded as part of changing the encoding
+at the PostScript level (see the previous section).
+
+ Comments, which start with a percent sign and continue until the end
+of the line, are ignored unless they start with 'LIGKERN' (see below).
+
+ The first non-comment word of the file must start with a forward
+slash '/' (i.e., a PostScript literal name) and defines the name of the
+encoding. The next word must be an left bracket '['. Following that
+must be precisely 256 character names; use '/.notdef' for any that you
+want to leave undefined. Then there must be a matching right bracket
+']'. A final 'def' token is optional. All names are case-sensitive.
+
+ Any ligature or kern information is given as a comment. If the first
+word after the '%' is 'LIGKERN', then the entire rest of the line is
+parsed for ligature and kern information. This ligature and kern
+information is given in groups of words: each group is terminated by a
+space and a semicolon and (unless the semicolon is at the end of a line)
+another space.
+
+ In these 'LIGKERN' statements, three types of information may be
+specified. These three types are ligature pairs, kerns to ignore, and
+the character value of this font's boundary character.
+
+ Throughout a 'LIGKERN' statement, the boundary character is specified
+as '||'. To set the font's boundary character value for TeX:
+
+ % LIGKERN || = 39 ;
+
+ To indicate a kern to remove, give the names of the two characters
+(without the leading slash) separated by '{}', as in 'one {} one ;'.
+This is intended to be reminiscent of the way you might use '{}' in a
+TeX file to turn off ligatures or kerns at a particular location.
+Either or both of the character names can be given as '*', which is a
+wild card matching any character; thus, all kerns can be removed with '*
+{} * ;'.
+
+ To specify a ligature, specify the names of the pair of characters,
+followed by the ligature operation (as in Metafont), followed by the
+replacing character name. Either (but not both) of the first two
+characters can be '||' to indicate a word boundary.
+
+ The most common operation is '=:' meaning that both characters are
+removed and replaced by the third character, but by adding the '|'
+character on either side of the '=:', you can retain either or both of
+the two leading characters. In addition, by suffixing the ligature
+operation with one or two '>' signs, you can make the ligature scanning
+operation skip that many resulting characters before proceeding. This
+works just like in Metafont. For example, the 'fi' ligature is
+specified with 'f i =: fi ;'. A more convoluted ligature is 'one one
+|=:|>> exclam ;' which separates a pair of adjacent '1''s with an
+exclamation point, and then skips over two of the resulting characters
+before continuing searching for ligatures and kerns. You cannot give
+more >'s than |'s in an ligature operation, so there are a total of
+eight possibilities:
+
+ =: |=: |=:> =:| =:|> |=:| |=:|> |=:|>>
+
+ The default set of ligatures and kerns built in to Afm2tfm is:
+
+ % LIGKERN question quoteleft =: questiondown ;
+ % LIGKERN exclam quoteleft =: exclamdown ;
+ % LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;
+ % LIGKERN quoteleft quoteleft =: quotedblleft ;
+ % LIGKERN quoteright quoteright =: quotedblright ;
+ % LIGKERN space {} * ; * {} space ; 0 {} * ; * {} 0 ;
+ % LIGKERN 1 {} * ; * {} 1 ; 2 {} * ; * {} 2 ; 3 {} * ; * {} 3 ;
+ % LIGKERN 4 {} * ; * {} 4 ; 5 {} * ; * {} 5 ; 6 {} * ; * {} 6 ;
+ % LIGKERN 7 {} * ; * {} 7 ; 8 {} * ; * {} 8 ; 9 {} * ; * {} 9 ;
+
+
+File: dvips.info, Node: Special font effects, Next: Afm2tfm options, Prev: Changing font encodings, Up: Invoking afm2tfm
+
+6.3.2 Special font effects
+--------------------------
+
+Besides the reencodings described in the previous section, Afm2tfm can
+do other manipulations. (Again, it's best to use the prebuilt fonts
+rather than attempting to remake them.)
+
+ '-s SLANT' makes an obliqued variant, as in:
+
+ afm2tfm Times-Roman -s .167 -v ptmro rptmro
+
+This creates 'ptmro.vpl' and 'rptmro.tfm'. To use this font, put the
+line
+
+ rptmro Times-Roman ".167 SlantFont"
+
+into 'psfonts.map'. Then 'rptmro' (our name for the obliqued Times)
+will act as if it were a resident font, although it is actually
+constructed from Times-Roman via the PostScript routine 'SlantFont'
+(which will slant everything 1/6 to the right, in this case).
+
+ Similarly, you can get an expanded font with
+
+ afm2tfm Times-Roman -e 1.2 -v ptmrre rptmrre
+
+and by recording the pseudo-resident font
+
+ rptmrre Times-Roman "1.2 ExtendFont"
+
+in 'psfonts.map'.
+
+ You can also create a small caps font with a command such as
+
+ afm2tfm Times-Roman -V ptmrc rptmrc
+
+This will generate a set of pseudo-small caps mapped into the usual
+lowercase positions and scaled down to 0.8 of the normal cap dimensions.
+You can also specify the scaling as something other than the default
+0.8:
+
+ afm2tfm Times-Roman -c 0.7 -V ptmrc rptmrc
+
+ It is unfortunately not possible to increase the width of the small
+caps independently of the rest of the font. If you want a really
+professional looking set of small caps, you need to acquire a small caps
+font.
+
+ To change the 'PaintType' in a font from filled (0) to outlined (2),
+you can add '"/PaintType 2 store"' to 'psfonts.map', as in the
+following:
+
+ rphvrl Helvetica "/PaintType 2 store"
+
+ Afm2tfm writes to standard output the line you need to add to
+'psfonts.map' to use that font, assuming the font is resident in the
+printer; if the font is not resident, you must add the '<FILENAME'
+command to download the font. Each identical line only needs to be
+specified once in the 'psfonts.map' file, even though many different
+fonts (small caps variants, or ones with different output encodings) may
+be based on it.
+
+
+File: dvips.info, Node: Afm2tfm options, Prev: Special font effects, Up: Invoking afm2tfm
+
+6.3.3 Afm2tfm options
+---------------------
+
+Synopsis:
+ afm2tfm [OPTION]... AFMFILE[.afm] [TFMFILE[.tfm]]
+
+ Afm2tfm reads AFMFILE and writes a corresponding (but "raw", see
+below) TFM file. If TFMFILE is not supplied, the base name of the AFM
+file is extended with '.tfm' to get the output filename.
+
+ The simplest example:
+
+ afm2tfm Times-Roman rptmr
+
+The TFM file thus created is "raw" because it omits ligature and kern
+information, and does no character remapping; it contains only the
+character information in the AFM file in TFM format, which is the form
+that TeX understands. The characters have the same code in the TFM file
+as in the AFM file. For text fonts, this means printable ASCII
+characters will work ok, but little else, because standard PostScript
+fonts have a different encoding scheme than the one that plain TeX
+expects (*note Encodings::). Although the encodings agree for most
+printable ASCII characters, other characters such as ligatures and
+accents vary. Thus, in practice, it's almost always desirable to create
+a virtual font as well with the '-v' or '-V' option. *Note Making a
+font available::.
+
+ The command line options to Afm2tfm:
+
+'-a'
+ By default, Afm2tfm looks for precomposed accented characters, such
+ as tdieresis, and possibly adjusts the height of the basic letter
+ (t) upward so that the result of using '\accent' (as in '\"t') is
+ visually the same as the precomposed characters. The '-a' option
+ omits such adjustments, so that all characters' heights remain as
+ they are given in the AFM file. (Until Afm2tfm 8.4, released in
+ 2016, heights could also be adjusted downward, but this is no
+ longer the case.)
+
+'-c RATIO'
+ See '-V'; overrides the default ratio of 0.8 for the scaling of
+ small caps.
+
+'-e RATIO'
+ Stretch characters horizontally by RATIO; if less than 1.0, you get
+ a condensed font.
+
+'-O'
+ Output all character codes in the 'vpl' file as octal numbers, not
+ names; this is useful for symbol or other special-purpose fonts
+ where character names such as 'A' have no meaning.
+
+'-p PS-ENC'
+ Use PS-ENC for the destination (PostScript) encoding of the font;
+ PS-ENC must be mentioned as a header file for the font in
+ 'psfonts.map'. *Note Changing PostScript encodings::.
+
+'-s SLANT'
+ Slant characters to the right by SLANT. If SLANT is negative, the
+ letters slope to the left (or they might be upright if you start
+ with an italic font).
+
+'-t TEX-ENC'
+ Use TEX-ENC for the target (TeX) encoding of the font. Ligature
+ and kern information may also be specified in FILE. FILE is not
+ mentioned in 'psfonts.map'.
+
+'-T PS-TEX-ENC'
+ Use PS-TEX-ENC for both the PostScript and target TeX encodings of
+ the font. Equivalent to '-p FILE -t FILE'.
+
+'-u'
+ Use only those characters specified in the TeX encoding, and no
+ others. By default, Afm2tfm tries to include all characters in the
+ input font, even those not present in the TeX encoding (it puts
+ them into otherwise-unused positions, arbitrarily).
+
+'-v VPL-FILE'
+ Output a VPL (virtual property list) file, as well as a TFM file.
+
+'-V VPL-FILE'
+ Same as '-v', but the virtual font generated is a pseudo small caps
+ font obtained by scaling uppercase letters by 0.8 to typeset
+ lowercase. This font handles accented letters and retains proper
+ kerning.
+
+
+File: dvips.info, Node: psfonts.map, Prev: Invoking afm2tfm, Up: PostScript fonts
+
+6.4 'psfonts.map': PostScript font catalog
+==========================================
+
+The 'psfonts.map' file associates a PostScript font with related files
+and constructs. Each line has the format:
+
+ FILENAME POSTSCRIPT-NAME OPTIONS
+
+ For example, the line
+ rpstrn StoneInformal <StoneInformal.pfb
+causes Dvips to download 'StoneInformal.pfb' (just as if it were a
+header file, *note Header files::) if the DVI file (or a virtual font,
+*note Virtual fonts::) references the TFM file 'rpstrn'. The PostScript
+'/FontName' of the font defined inside the 'pfb' file should be
+'StoneInformal'.
+
+ You can generate transformed fonts with a line like this:
+ rpstrc StoneInformal <StoneInformal.pfb ".8 ExtendFont"
+
+*Note Special font effects::, for a complete list of font effects.
+
+ You can change the encoding of the Type 1 font at the PostScript
+level with a 'ReEncodeFont' instruction, plus the name of the encoding
+file. This allows you access to characters that may be present in the
+Type 1 font file, but not encoded by default--most of the preaccented
+characters, for example. An example:
+ pstrn8r StoneInformal "TeXBase1Encoding ReEncodeFont" <8r.enc <pstrn8a.pfb
+
+ The '8r' encoding mentioned here has been designed to serve as a base
+for all downloadable fonts; it allows access to all the characters
+commonly present in a Type 1 font. For more details, see the '8r.enc'
+source file that comes with (and is installed with) Dvips.
+
+ You may notice that the same syntax is used for downloading encoding
+vectors and Type 1 font files. To make your intentions clear, you can
+also use '<[' to explicitly indicate you are downloading an encoding
+vector, as in:
+ pstrn8r StoneInformal "TeXBase1Encoding ReEncodeFont" <[8r.enc <pstrn8a.pfb
+
+ If the filename of your encoding vector does not end in '.enc', and
+you are using partial font downloading, you must use the '<[' syntax, or
+Dvips will not download the font properly.
+
+ Similarly, the name of the Type 1 font file itself must have
+extension '.pfa' or '.pfb' for partial downloading to work properly.
+
+ When using PFB files, Dvips is smart enough to unpack the binary PFB
+format into printable ASCII so there is no need to perform this
+conversion yourself. In addition, Dvips scans the font to determine its
+memory usage, just as it does for other header files (*note Header
+files::).
+
+ If the 'j' config file or command-line option is enabled (as it is by
+default), 'StoneInformal.pfb' will be "partially downloaded"--only those
+characters your document actually uses will be extracted and downloaded,
+and the remainder discarded. *Note Option details::.
+
+ Adobe Multiple Master fonts, such as Minion, cannot be partially
+downloaded. To partially download in general, but avoid partial
+downloading for individual fonts, use '<<' instead '<':
+ pmnr8r Minion <<Minion.pfb
+
+ Here is a brief summary of how 'psfonts.map' is read:
+
+ 1. If a line is empty or begins with a space, percent, asterisk,
+ semicolon, or hash mark, it is ignored.
+
+ 2. Otherwise, the line is separated into words, where words are
+ separated by spaces or tabs, except that if a word begins with a
+ double quote, it extends until the next double quote or the end of
+ the line.
+
+ 3. If a word starts with '<<', it is taken as a font file to be wholly
+ downloaded. Use this to avoid partial downloading, as described
+ above.
+
+ 4. If a word starts with '<[', it is taken as an encoding file to be
+ downloaded. Use this if the name of the encoding file does end in
+ '.enc', also as described above.
+
+ 5. If a word starts with a '<' character, it is treated as a header
+ file that needs to be downloaded. If the name ends in '.pfa' or
+ '.pfb', it is taken as Type 1 font file that will be partially
+ downloaded if the 'j' option is in effect. There can be more than
+ one such header for a given font. If a '<' is a word by itself,
+ the next word is taken as the name of the header file.
+
+ 6. If a word starts with a '"' character, it is taken as PostScript
+ code used in generating that font, and is inserted into the output
+ verbatim at the appropriate point. (And the double quotes
+ beginning and ending the word are removed.)
+
+ 7. Otherwise the word is a name. The first such name is the TFM file,
+ that either a DVI file or a virtual font file can refer to. If
+ there is a second name, it is used as the PostScript name and
+ should match what is defined in the downloaded file; if there is
+ only one name, it is used for both the TeX name and the PostScript
+ name.
+
+
+File: dvips.info, Node: Color, Next: Index, Prev: PostScript fonts, Up: Top
+
+7 Color
+*******
+
+Dvips supports one-pass multi-color printing of TeX documents on any
+color PostScript device. Initially added by Jim Hafner, IBM Research,
+<hafner@almaden.ibm.com>, the color support has gone through many
+changes by Tomas Rokicki. Besides the source code support itself, there
+are additional TeX macro files: 'colordvi.tex' and 'blackdvi.tex', and
+corresponding '.sty' versions for use with LaTeX.
+
+ In this section we describe the use of color from the document
+preparer's point of view and then add some instructions on installation
+for the TeX administrator.
+
+* Menu:
+
+* Color macro files:: TeX macro definitions.
+* User-definable colors:: Adding your own colors.
+* Color subtleties:: Subtleties in using color.
+* Ted Turner:: Printing in black/white after colorizing.
+* Color device configuration:: Configuring Dvips for color devices.
+* Color support details:: Color support details
+
+
+File: dvips.info, Node: Color macro files, Next: User-definable colors, Up: Color
+
+7.1 Color macro files
+=====================
+
+All the color macro commands are defined in 'colordvi.tex' (or
+'colordvi.sty'). To access these macros simply add to the top of your
+plain TeX file the command:
+ \input colordvi
+For (the obsolete) LaTeX 2.09, add the 'colordvi' style option as in:
+ \documentstyle[12pt,colordvi]{article}
+For LaTeX2e, these examples are not applicable. Instead, please see the
+documentation for the graphics package
+(<https://ctan.org/pkg/graphics>), and the epslatex document
+(<https://ctan.org/pkg/epslatex>).
+
+ These macros provide two basic kinds of color macros: ones for local
+color changes (a few words, a single symbol) and one for global color
+changes (the whole document). All the color names use a mixed case
+scheme to avoid conflicts with other macros. There are 68 predefined
+colors, with names taken primarily from the Crayola crayon box of 64
+colors, and one pair of macros for the user to set his own color pattern
+(*note User-definable colors::). You can browse the file 'colordvi.tex'
+for a list of the predefined colors. The comments in this file also
+show a rough correspondence between the crayon names and Pantones.
+
+ A local color command has the form
+
+ \COLORNAME{this is the color COLORNAME}
+
+where COLORNAME is the name of a predefined color, e.g., 'Blue'. As
+shown, these macros take one argument, the text to print in the
+specified color. This can be used for nested color changes since it
+restores the original color state when it completes. For example:
+
+ This text is normal but here we are \Red{switching to red,
+ \Blue{nesting blue}, recovering the red} and back to original.
+
+The color nesting level has no hard limit, but it is not advisable to
+nest too deeply lest you and the reader lose track of the color history.
+
+ The global color command has the form
+
+ \textCOLORNAME
+
+These macros take no arguments and changes the default color from that
+point on to COLORNAME. This of course can be overridden globally by
+another such command or locally by local color commands. For example,
+expanding on the example above, we might have
+
+ \textGreen
+ This text is green but here we are \Red{switching to red,
+ \Blue{nesting blue}, recovering the red} and back to
+ original green.
+ \textCyan
+ The text from here on will be cyan until
+ \Yellow{locally changed to yellow}. Now we are back to cyan.
+
+ The color commands will even work in math mode and across math mode
+boundaries. This means that if you have a color before going into math
+mode, the mathematics will be set in that color as well. In alignment
+environments like '\halign', 'tabular' or 'eqnarray', local color
+commands cannot extend beyond the alignment characters.
+
+ Because local color commands respect only some environment and
+delimiter changes besides their own, care must be taken in setting their
+scope. It is best not to have them stretch too far.
+
+ At the present time there are no macros for color environments in
+LaTeX which might have a larger range. This is primarily to keep the
+TeX and LaTeX use compatible.
+
+
+File: dvips.info, Node: User-definable colors, Next: Color subtleties, Prev: Color macro files, Up: Color
+
+7.2 User-definable colors
+=========================
+
+There are two ways for the user to specify colors not already defined.
+For local changes, there is the command '\Color' which takes two
+arguments. The first argument is four numbers between zero and one and
+specifies the intensity of cyan, magenta, yellow and black (CMYK) in
+that order. The second argument is the text that should appear in the
+given color. For example, suppose you want the words "this color is
+pretty" to appear in a color which is 50% cyan, 85% magenta, 40% yellow
+and 20% black. You would use the command
+
+ \Color{.5 .85 .4 .2}{this color is pretty}
+
+ For global color changes, there is a command '\textColor' which takes
+one argument, the CMYK quadruple of relative color intensities. For
+example, if you want the default color to be as above, then the command
+
+ \textColor{.5 .85 .4 .2}
+ The text from now on will be this pretty color
+
+will do the trick.
+
+ Making a global color change in the midst of nested local colors is
+highly discouraged. Consequently, Dvips will give you warning message
+and do its best to recover by discarding the current color history.
+
+
+File: dvips.info, Node: Color subtleties, Next: Ted Turner, Prev: User-definable colors, Up: Color
+
+7.3 Color subtleties
+====================
+
+Color macros are defined via '\special' keywords. As such, they are put
+in the '.dvi' file only as explicit message strings to the driver. The
+(unpleasant) result is that certain unprotected regions of the text can
+have unwanted color side effects. For example, if a color region is
+split by TeX across a page boundary, then the footers of the current
+page (e.g., the page number) and the headers of the next page can
+inherit that color. To avoid this effect globally, users should make
+sure that these special regions of the text are defined with their own
+local color commands. For example, to protect the header and footer in
+plain TeX, use
+
+ \headline{\Black{My Header}}
+ \footline{\Black{\hss\tenrm\folio\hss}}
+
+ This warning also applies to figures and other insertions, so be
+careful!
+
+ Of course, in LaTeX, this is much more difficult to do because of the
+complexity of the macros that control these regions. This is
+unfortunate but inevitable, because TeX and LaTeX were not written with
+color in mind.
+
+ Even when writing your own macros, much care must be taken. The
+macros that 'colorize' a portion of the text work prefix the text work
+by outputting one '\special' command to turn the color on before the
+text, and outputting another '\special' command afterwards to restore
+the original color. It is often useful to ensure that TeX is in
+horizontal mode before the first special command is issued; this can be
+done by prefixing the color command with '\leavevmode'.
+
+
+File: dvips.info, Node: Ted Turner, Next: Color device configuration, Prev: Color subtleties, Up: Color
+
+7.4 Printing in black/white after colorizing
+============================================
+
+If you have a TeX or LaTeX document written with color macros and you
+want to print it in black and white there are two options. On all
+(good) PostScript devices, printing a color file will print in
+corresponding gray levels. This is useful to get a rough idea of the
+colors without using expensive color printing devices. The second
+option is to replace the call to input 'colordvi.tex' with
+'blackdvi.tex' (and similarly for the '.sty' files). So in the above
+example, replacing the word 'colordvi' with 'blackdvi' suffices.
+'blackdvi.tex' defines the color macros as no-ops, and so will produce
+normal black/white printing. By this simple mechanism, the user can
+switch to all black/white printing without having to ferret out the
+color commands. Also, some device drivers, particularly non-PostScript
+ones like screen previewers, will simply ignore the color commands and
+so print in black/white. Hopefully, in the future screen previewers for
+color displays will be compatible with some form of color support.
+
+
+File: dvips.info, Node: Color device configuration, Next: Color support details, Prev: Ted Turner, Up: Color
+
+7.5 Color device configuration
+==============================
+
+To configure Dvips for a particular color device you need to fine tune
+the color parameters to match your device's color rendition. To do
+this, you will need a Pantone chart for your device. The header file
+'color.lpro' shows a (rough) correspondence between the Crayola crayon
+names and the Pantone numbers and also defines default CMYK values for
+each of the colors. Note that these colors must be defined in CMYK
+terms and not RGB, as Dvips outputs PostScript color commands in CMYK.
+This header file also defines (if they are not known to the interpreter)
+the PostScript commands 'setcmykcolor' and 'currentcmykcolor' in terms
+of a RGB equivalent so if your device only understands RGB, there should
+be no problem.
+
+ The parameters set in this file were determined by comparing the
+Pantone chart of a Tektronix Phaser printer with the actual Crayola
+Crayons. Because these were defined for a particular device, the actual
+color rendition on your device may be very different. There are two
+ways to adjust this. One is to use the PAntone chart for your device to
+rewrite 'color.lpro' prior to compilation and installation. A better
+alternative, which supports multiple devices, is to add a header file
+option in the configuration file (*note Configuration file commands::)
+for each device that defines, in 'userdict', the color parameters for
+those colors that need redefining.
+
+ For example, if you need to change the parameters defining
+'Goldenrod' (approximately Pantone 109 on the Phaser) for your device
+'mycolordev', do the following. In the Pantone chart for your device,
+find the CMYK values for Pantone 109. Let's say they are '{\ 0 0.10
+0.75 0.03 }'. Then create a header file named 'mycolordev.pro' with the
+commands
+
+ userdict begin
+ /Goldenrod { 0 0.10 0.75 0.03 setcmykcolor} bind def
+
+Finally, in 'config.mycolordev' add the line
+
+ h mycolordev.pro
+
+This will then define 'Goldenrod' in your device's CMYK values in
+'userdict' which is checked before defining it in 'TeXdict' by
+'color.pro'. (On MS-DOS, you will have to call this file
+'mycolordev.cfg'.)
+
+ This mechanism, together with additions to 'colordvi.tex' and
+'blackdvi.tex' (and the '.sty' files), can also be used to predefine
+other colors for your users.
+
+
+File: dvips.info, Node: Color support details, Prev: Color device configuration, Up: Color
+
+7.6 Color support details
+=========================
+
+To support color, Dvips recognizes a certain set of specials. These
+specials start with the keyword 'color' or the keyword 'background',
+followed by a color specification.
+
+* Menu:
+
+* Color specifications::
+* Color specials::
+
+
+File: dvips.info, Node: Color specifications, Next: Color specials, Up: Color support details
+
+7.6.1 Color specifications
+--------------------------
+
+What is a color specification? One of three things. First, it might be
+a PostScript procedure as defined in a PostScript header file. The
+'color.pro' file defines 64 of these, including 'Maroon'. This
+PostScript procedure must set the current color to be some value; in
+this case, 'Maroon' is defined as '0 0.87 0.68 0.32 setcmykcolor'.
+
+ The second possibility is the name of a color model (initially, one
+of 'rgb', 'hsb', 'cmyk', or 'gray') followed by the appropriate number
+of parameters. When Dvips encounters such a macro, it sends out the
+parameters first, followed by the string created by prefixing 'TeXcolor'
+to the color model. Thus, the color specification 'rgb 0.3 0.4 0.5'
+would generate the PostScript code '0.3 0.4 0.5 TeXrgbcolor'. Note that
+the case of zero arguments is disallowed, as that is handled by the
+single keyword case ('Maroon') above, where no changes to the name are
+made before it is sent to the PostScript file.
+
+ The third and final type of color specification is a double quote
+followed by any sequence of PostScript. The double quote is stripped
+from the output. For instance, the color specification '"AggiePattern
+setpattern' will set the 'color' to the Aggie logo pattern (assuming
+such exists.)
+
+
+File: dvips.info, Node: Color specials, Prev: Color specifications, Up: Color support details
+
+7.6.2 Color specials
+--------------------
+
+We will describe 'background' first, since it is the simplest. The
+'background' keyword must be followed by a color specification. That
+color specification is used as a fill color for the background. The
+last 'background' special on a page is the one that gets issued, and it
+gets issued at the very beginning of the page, before any text or
+specials are sent. (This is possible because the prescan phase of Dvips
+notices all of the color specials so that the appropriate information
+can be written out during the second phase.)
+
+ The 'color' special itself has three forms. The first is just
+'color' followed by a color specification. In this case, the current
+global color is set to that color; the color stack must be empty when
+such a command is executed.
+
+ The second form is 'color push' followed by a color specification.
+This saves the current color on the color stack and sets the color to be
+that given by the color specification. This is the most common way to
+set a color.
+
+ The final version of the 'color' special is just 'color pop', with no
+color specification; this says to pop the color last pushed on the color
+stack from the color stack and set the current color to be that color.
+
+ Dvips correctly handles these color specials across pages, even when
+the pages are repeated or reversed.
+
+ These color specials can be used for things such as patterns or
+screens as well as simple colors. However, note that in the PostScript,
+only one color specification can be active at a time. For instance, at
+the beginning of a page, only the bottommost entry on the color stack is
+sent; also, when a color is popped, all that is done is that the color
+specification from the previous stack entry is sent. No 'gsave' or
+'grestore' is used. This means that you cannot easily mix usage of the
+'color' specials for screens and colors, just one or the other. This
+may be addressed in the future by adding support for different
+categories of color-like state.
+
+
+File: dvips.info, Node: Index, Prev: Color, Up: Top
+
+Index
+*****
+
+
+* Menu:
+
+* ! special (literal PS header): Literal headers. (line 6)
+* ! starting output filename: Option details. (line 247)
+* " special (literal PostScript): " special. (line 6)
+* %%BoundingBox: Bounding box. (line 17)
+* %%Page, and multi-page information: PostScript hooks. (line 37)
+* %%Page, not generating: Option details. (line 212)
+* %%Page, removing: Option details. (line 165)
+* %%Page, required by Ghostview: Ghostscript installation.
+ (line 12)
+* %%Title: Option details. (line 357)
+* %%VMusage: Headers and memory usage.
+ (line 12)
+* %*Font: Fonts in figures. (line 6)
+* (atend), bounding box specification: Bounding box. (line 28)
+* +PSMAPFILE: Configuration file commands.
+ (line 126)
+* -: Option details. (line 11)
+* - as output filename: Option details. (line 247)
+* --help: Option summary. (line 7)
+* --help <1>: Option details. (line 15)
+* --version: Option details. (line 18)
+* -a: Option details. (line 21)
+* -A: Option details. (line 27)
+* -a <1>: Afm2tfm options. (line 33)
+* -B: Option details. (line 37)
+* -b NUM: Option details. (line 31)
+* -bitmapfontenc OPTION: Option details. (line 41)
+* -c NUM: Option details. (line 46)
+* -C NUM: Option details. (line 51)
+* -c RATIO: Afm2tfm options. (line 43)
+* -d NUM: Option details. (line 57)
+* -D NUM: Option details. (line 63)
+* -E: Option details. (line 87)
+* -e NUM: Option details. (line 76)
+* -e RATIO: Afm2tfm options. (line 47)
+* -f: Option details. (line 103)
+* -F: Option details. (line 115)
+* -G: Option details. (line 122)
+* -h NAME: Option details. (line 127)
+* -i: Option details. (line 132)
+* -j for partial font downloading: Option details. (line 151)
+* -K: Option details. (line 165)
+* -k for cropmarks: Option details. (line 157)
+* -L: Option details. (line 183)
+* -l [=]NUM: Option details. (line 174)
+* -m: Option details. (line 187)
+* -M: Option details. (line 199)
+* -mode MODE: Option details. (line 190)
+* -N: Option details. (line 212)
+* -n NUM: Option details. (line 209)
+* -noomega: Option details. (line 220)
+* -noptex: Option details. (line 226)
+* -O: Afm2tfm options. (line 51)
+* -o NAME: Option details. (line 242)
+* -O X-OFFSET,Y-OFFSET: Option details. (line 259)
+* -P PRINTER: Option details. (line 291)
+* -p PS-ENC: Changing PostScript encodings.
+ (line 6)
+* -p PS-ENC <1>: Afm2tfm options. (line 56)
+* -p [=]NUM: Option details. (line 277)
+* -pp FIRST-LAST: Option details. (line 286)
+* -pp RANGE: Option details. (line 286)
+* -PPRINTER, and config file searching: Configuration file searching.
+ (line 27)
+* -q: Option details. (line 310)
+* -r: Option details. (line 314)
+* -R: Option details. (line 317)
+* -s: Option details. (line 325)
+* -S NUM: Option details. (line 332)
+* -s SLANT: Afm2tfm options. (line 61)
+* -T ENC-FILE: Changing both encodings.
+ (line 6)
+* -T HSIZE,VSIZE: Option details. (line 363)
+* -t PAPERTYPE: Option details. (line 337)
+* -T PS-TEX-ENC: Afm2tfm options. (line 71)
+* -t TEX-ENC: Changing TeX encodings.
+ (line 6)
+* -t TEX-ENC <1>: Afm2tfm options. (line 66)
+* -title STR: Option details. (line 357)
+* -U: Option details. (line 378)
+* -u: Afm2tfm options. (line 75)
+* -u PSMAPFILE: Option details. (line 370)
+* -v: Option details. (line 386)
+* -V: Option details. (line 389)
+* -v VPL-FILE: Afm2tfm options. (line 81)
+* -V VPL-FILE: Afm2tfm options. (line 84)
+* -x NUM: Option details. (line 398)
+* -X NUM: Option details. (line 406)
+* -Y NUM: Option details. (line 413)
+* -z: Hypertext. (line 6)
+* -Z for compressing bitmap fonts: Option details. (line 422)
+* -z for recognizing hyperdvi: Option details. (line 416)
+* '..'-relative filenames: Option details. (line 317)
+* .afm Adobe metric files: Metric files. (line 26)
+* .dvipsrc, searched for: Configuration file searching.
+ (line 14)
+* .enc extension for encoding vectors: psfonts.map. (line 42)
+* .lpro long prologue files: Header files. (line 12)
+* .mf Metafont source files: Glyph files. (line 30)
+* .NNNpk packed font bitmaps: Glyph files. (line 35)
+* .pfa extension required for partial downloading: psfonts.map.
+ (line 46)
+* .pfa printer font ascii files: Glyph files. (line 25)
+* .pfb extension required for partial downloading: psfonts.map.
+ (line 46)
+* .pfb printer font binary files: Glyph files. (line 25)
+* .pfm printer font metric files: Metric files. (line 48)
+* .pl property list files: Metric files. (line 39)
+* .pro prologue files: Header files. (line 12)
+* .tfm TeX font metric files: Metric files. (line 31)
+* /#copies: Option details. (line 31)
+* /#copies <1>: Option details. (line 46)
+* /magscale: EPSF scaling. (line 66)
+* 612 792 bounding box size: Bounding box. (line 43)
+* 8r encoding, and extra characters: Changing PostScript encodings.
+ (line 24)
+* 8r font encoding: psfonts.map. (line 31)
+* 8r.enc: Encodings. (line 35)
+* < font downloading: psfonts.map. (line 11)
+* << whole font downloading: psfonts.map. (line 60)
+* <[ encoding vector downloading: psfonts.map. (line 36)
+* =: ligature operation: Encoding file format.
+ (line 59)
+* @ config command (define paper sizes): Configuration file commands.
+ (line 18)
+* \.: Reencoding with Afm2tfm.
+ (line 43)
+* \AA: Reencoding with Afm2tfm.
+ (line 43)
+* \COLORNAME: Color macro files. (line 31)
+* \dot: Reencoding with Afm2tfm.
+ (line 43)
+* \epsffile macro: EPSF macros. (line 38)
+* \epsfsize: EPSF scaling. (line 29)
+* \epsfverbosetrue: EPSF macros. (line 46)
+* \epsfxsize: EPSF scaling. (line 14)
+* \epsfysize: EPSF scaling. (line 20)
+* \H: Reencoding with Afm2tfm.
+ (line 43)
+* \includegraphics LaTeX macro: \includegraphics. (line 6)
+* \leavevmode: EPSF macros. (line 26)
+* \magnification: EPSF scaling. (line 62)
+* \rotninety: Literal examples. (line 27)
+* \textCOLORNAME: Color macro files. (line 46)
+* | starting output filename: Option details. (line 247)
+* a config command (conserve memory): Configuration file commands.
+ (line 21)
+* A ring, Scandinavian letter: Reencoding with Afm2tfm.
+ (line 32)
+* a3 papertype: Option details. (line 337)
+* a4 paper size: Config file paper sizes.
+ (line 82)
+* a4 papertype: Option details. (line 337)
+* A4size paper size: Config file paper sizes.
+ (line 90)
+* absolute filenames, disabling: Option details. (line 317)
+* absolute page number, and '-l': Option details. (line 174)
+* absolute page number, and '-p': Option details. (line 277)
+* accent height adjustment, omitting: Afm2tfm options. (line 33)
+* accents, in wrong position: Reencoding with Afm2tfm.
+ (line 32)
+* accents, wrong: Afm2tfm options. (line 17)
+* accuracy in positioning: Option details. (line 76)
+* afm files: Metric files. (line 26)
+* afm2tfm: Making a font available.
+ (line 46)
+* afm2tfm <1>: Invoking afm2tfm. (line 6)
+* afm2tfm options: Afm2tfm options. (line 6)
+* after header, inserting code: Including headers from TeX.
+ (line 28)
+* Aladdin Ghostscript: Ghostscript installation.
+ (line 6)
+* Anderson, Laurie: Hypertext specials. (line 42)
+* angle ('psfile' special option): psfile special. (line 36)
+* arcs: Glyph files. (line 17)
+* ASCII character codes, used by PostScript: PostScript typesetting.
+ (line 31)
+* atend, bounding box specification: Bounding box. (line 28)
+* b config command (#copies): Configuration file commands.
+ (line 24)
+* base: Hypertext specials. (line 57)
+* base encoding, recommended: psfonts.map. (line 31)
+* base fonts: Virtual fonts. (line 23)
+* bbfig: Bounding box. (line 37)
+* before header, inserting code: Including headers from TeX.
+ (line 28)
+* Bhattacharya, Tanmoy: Hypertext. (line 22)
+* big points: Bounding box. (line 11)
+* binary files, not supported: Including graphics fails.
+ (line 23)
+* bitmap font encoding: Option details. (line 41)
+* bitmap font encodings: Bitmap font encodings.
+ (line 6)
+* bitmap fonts: Glyph files. (line 30)
+* bitmapfontenc config command (bitmap font encoding): Configuration file commands.
+ (line 27)
+* bop undefined error: Printer errors. (line 6)
+* bop-hook: Paper trays. (line 6)
+* bop-hook <1>: EPSF scaling. (line 74)
+* bop-hook <2>: PostScript hooks. (line 11)
+* bop-hook, and offset pages: Option details. (line 272)
+* boundary character: Encoding file format.
+ (line 41)
+* bounding box, comment for: Bounding box. (line 6)
+* bounding box, defined: Bounding box. (line 11)
+* bounding box, determining: Bounding box. (line 37)
+* bounding box, finding tight: Option details. (line 87)
+* bounding box, for bitmap fonts: Bitmap font encodings.
+ (line 44)
+* bounding box, inaccurate: EPSF clipping. (line 6)
+* bounding box, supplying to TeX: \includegraphics. (line 36)
+* bounding box, supplying to TeX <1>: EPSF macros. (line 26)
+* c config command (include another config file): Configuration file commands.
+ (line 32)
+* changing PostScript encodings: Changing PostScript encodings.
+ (line 6)
+* changing TeX encodings: Changing TeX encodings.
+ (line 6)
+* character definitions in PostScript: PostScript typesetting.
+ (line 55)
+* character lookup procedure in PostScript: PostScript typesetting.
+ (line 6)
+* CharStrings Type 1 dictionary: PostScript typesetting.
+ (line 51)
+* clip ('psfile' special option): psfile special. (line 39)
+* clipping of EPSF: EPSF clipping. (line 6)
+* CODINGSCHEME: Reencoding with Afm2tfm.
+ (line 51)
+* collated copies: Option details. (line 51)
+* color: Color. (line 6)
+* color configuration: Color device configuration.
+ (line 6)
+* color macros: Color macro files. (line 6)
+* color names, mixed case: Color macro files. (line 17)
+* color nesting level: Color macro files. (line 39)
+* color separations: Option details. (line 31)
+* color specifications: Color specifications.
+ (line 6)
+* color subtleties: Color subtleties. (line 6)
+* colors, user-definable: User-definable colors.
+ (line 6)
+* command line, including headers from: Including headers from the command line.
+ (line 6)
+* command-line options: Invoking Dvips. (line 6)
+* comments, in configuration files: Configuration file commands.
+ (line 13)
+* comments, in encoding files: Encoding file format.
+ (line 20)
+* comments, removing included: Option details. (line 165)
+* compilation: Installation. (line 6)
+* compressed PostScript: Dynamic creation of graphics.
+ (line 6)
+* compressing bitmap fonts: Option details. (line 422)
+* Computer Modern in PostScript: Hypertext caveats. (line 6)
+* Computer Modern, encoding of: Encodings. (line 15)
+* condensed fonts: Afm2tfm options. (line 47)
+* config.proto: config.ps installation.
+ (line 14)
+* config.ps: Option details. (line 291)
+* config.ps installation: config.ps installation.
+ (line 6)
+* config.ps paper sizes: Config file paper sizes.
+ (line 82)
+* config.ps, searched for: Configuration file searching.
+ (line 10)
+* configuration file options: Configuration file commands.
+ (line 6)
+* configuration file paper size command: Config file paper sizes.
+ (line 6)
+* configuration file path: Environment variables.
+ (line 56)
+* configuration file searching: Configuration file searching.
+ (line 6)
+* configuration files: Config files. (line 6)
+* configuration files, creating: config.ps installation.
+ (line 6)
+* configuration files, prototype: config.ps installation.
+ (line 14)
+* configuration, of color devices: Color device configuration.
+ (line 6)
+* configuration, of Dvips: Installation. (line 6)
+* continuation lines, not supported: Configuration file commands.
+ (line 13)
+* control-D: Option details. (line 115)
+* coordinate system, for bitmap fonts: Bitmap font encodings.
+ (line 44)
+* copies, collated: Option details. (line 51)
+* copies, duplicated page bodies: Option details. (line 31)
+* copies, uncollated: Option details. (line 46)
+* Crayola crayon box: Color macro files. (line 17)
+* crop.pro: Option details. (line 157)
+* cropmarks: Option details. (line 157)
+* current font, in PostScript: PostScript typesetting.
+ (line 35)
+* D config command (dpi): Configuration file commands.
+ (line 36)
+* dated output: PostScript hooks. (line 16)
+* datestamp, in output: Configuration file commands.
+ (line 42)
+* debugging: Diagnosing problems. (line 6)
+* debugging <1>: Option details. (line 57)
+* debugging options: Debug options. (line 6)
+* default resolutions: Configuration file commands.
+ (line 147)
+* default_texsizes Make variable: Configuration file commands.
+ (line 163)
+* Deutsch, Peter: Ghostscript installation.
+ (line 6)
+* device dependency, and virtual fonts: Configuration file commands.
+ (line 186)
+* dictionary, 'CharStrings': PostScript typesetting.
+ (line 51)
+* dictionary, PostScript language: PostScript typesetting.
+ (line 35)
+* dictionary, 'SDict': Literal headers. (line 6)
+* dictionary, 'userdict': Header files. (line 21)
+* distillation, and '-z': Option details. (line 416)
+* distiller, for PDF files: Hypertext. (line 11)
+* document title, specifying: Option details. (line 357)
+* dot accent: Reencoding with Afm2tfm.
+ (line 32)
+* double-sided printing: Option details. (line 37)
+* downloading fonts partially: psfonts.map. (line 55)
+* downloading PostScript fonts: psfonts.map. (line 6)
+* Doyle, Mark: Hypertext. (line 22)
+* draft copies: PostScript hooks. (line 16)
+* dual paper trays: Paper trays. (line 6)
+* duplex printers: Including headers from the command line.
+ (line 13)
+* DVI magnification: EPSF scaling. (line 62)
+* dvihps, hyperdvi to PostScript: Hypertext. (line 22)
+* Dvips configuration file options: Configuration file commands.
+ (line 6)
+* dvips-all.enc: Bitmap font encodings.
+ (line 21)
+* dvips.enc: Encodings. (line 35)
+* DVIPSDEBUG: Environment variables.
+ (line 17)
+* DVIPSFONTS: Environment variables.
+ (line 26)
+* DVIPSHEADERS: Environment variables.
+ (line 31)
+* DVIPSHEADERS, overrides H: Configuration file commands.
+ (line 60)
+* DVIPSMAKEPK: Environment variables.
+ (line 35)
+* DVIPSRC: Environment variables.
+ (line 41)
+* DVIPSSIZES: Environment variables.
+ (line 46)
+* DVIPSSIZES, overrides R: Configuration file commands.
+ (line 160)
+* dynamic creation of graphics: Dynamic creation of graphics.
+ (line 6)
+* e config command (maxdrift): Configuration file commands.
+ (line 39)
+* E config command (shell escape): Configuration file commands.
+ (line 42)
+* efficiency, and fonts: Making a font available.
+ (line 104)
+* ehandler.ps: No output. (line 12)
+* embedding Type 1 fonts: Hypertext caveats. (line 6)
+* encoding changes: Changing font encodings.
+ (line 6)
+* encoding file format: Encoding file format.
+ (line 6)
+* encoding files: Encodings. (line 27)
+* Encoding Type 1 dictionary: PostScript typesetting.
+ (line 43)
+* encoding vectors, defined: Encodings. (line 27)
+* encoding vectors, in Type 1 fonts: PostScript typesetting.
+ (line 43)
+* encodings: Encodings. (line 6)
+* encodings, for bitmap fonts: Bitmap font encodings.
+ (line 6)
+* end-hook: PostScript hooks. (line 11)
+* environment variables: Environment variables.
+ (line 6)
+* EOF: Option details. (line 115)
+* eop-hook: PostScript hooks. (line 11)
+* EPS, and Ghostview: Ghostscript installation.
+ (line 12)
+* EPSF macros: EPSF macros. (line 6)
+* EPSF, generating: Option details. (line 87)
+* epsf.sty: EPSF macros. (line 15)
+* epsf.tex: EPSF macros. (line 13)
+* Epson printers: Ghostscript installation.
+ (line 6)
+* error messages from printer: Printer errors. (line 6)
+* even pages only: Option details. (line 37)
+* examples of literal PostScript: Literal examples. (line 6)
+* expanded fonts: Special font effects.
+ (line 24)
+* expanded fonts <1>: Afm2tfm options. (line 47)
+* expanded fonts <2>: psfonts.map. (line 19)
+* expansion, of virtual fonts: Virtual fonts. (line 33)
+* extended URL: Hypertext specials. (line 20)
+* ExtendFont: Special font effects.
+ (line 28)
+* extra characters, accessing: Changing PostScript encodings.
+ (line 18)
+* f config command (filter): Configuration file commands.
+ (line 50)
+* F config command (filter): Configuration file commands.
+ (line 50)
+* failure, and printer errors: Printer errors. (line 6)
+* failure, of long documents: Long documents fail. (line 6)
+* failure, to include graphics: Including graphics fails.
+ (line 6)
+* failure, to print at all: No output. (line 6)
+* fallback resolutions: Configuration file commands.
+ (line 147)
+* figures and fonts: Fonts in figures. (line 6)
+* figures, natural size: EPSF macros. (line 38)
+* figures, scaling: EPSF scaling. (line 6)
+* filter, running as a: Option details. (line 103)
+* first page printed: Option details. (line 277)
+* font concepts: Font concepts. (line 6)
+* font encodings, bitmap: Bitmap font encodings.
+ (line 6)
+* font generation, avoiding: Option details. (line 199)
+* fontinst: Invoking afm2tfm. (line 13)
+* fonts, as header files: Including headers from TeX.
+ (line 13)
+* fonts, changing encoding of: Changing font encodings.
+ (line 6)
+* fonts, downloading: psfonts.map. (line 6)
+* fonts, expanded: Special font effects.
+ (line 24)
+* fonts, in PostScript figures: Fonts in figures. (line 6)
+* fonts, installation of PostScript: PostScript font installation.
+ (line 6)
+* fonts, installing: Making a font available.
+ (line 6)
+* fonts, outlined: Special font effects.
+ (line 50)
+* fonts, slanted: Special font effects.
+ (line 6)
+* fonts, small caps: Special font effects.
+ (line 34)
+* fonts, system PostScript: PostScript font installation.
+ (line 11)
+* G config command (character shifting): Configuration file commands.
+ (line 53)
+* gf files: Glyph files. (line 41)
+* gftopk: Glyph files. (line 41)
+* Ghostscript installation: Ghostscript installation.
+ (line 6)
+* ghostview: Ghostscript installation.
+ (line 12)
+* Ghostview, and no 'N': Ghostscript installation.
+ (line 12)
+* glyph files: Glyph files. (line 6)
+* GLYPHFONTS, overrides P: Configuration file commands.
+ (line 135)
+* gnuplot: Dynamic creation of graphics.
+ (line 25)
+* graphics inclusion fails: Including graphics fails.
+ (line 6)
+* gs installation: Ghostscript installation.
+ (line 6)
+* gsave/grestore, and literal PS: Literal examples. (line 27)
+* gsftopk: Option details. (line 390)
+* h config command (download additional header): Configuration file commands.
+ (line 57)
+* H config command (PostScript header path): Configuration file commands.
+ (line 60)
+* Hafner, Jim: Color. (line 6)
+* header file, downloading: Option details. (line 127)
+* header files, defined: Header files. (line 6)
+* header path, defining: Configuration file commands.
+ (line 60)
+* header=FILE \special: Including headers from TeX.
+ (line 6)
+* headers and memory usage: Headers and memory usage.
+ (line 6)
+* headers, including from the command line: Including headers from the command line.
+ (line 6)
+* headers, including in TeX: Including headers from TeX.
+ (line 6)
+* hints: PostScript typesetting.
+ (line 55)
+* hoffset ('psfile' special option): psfile special. (line 18)
+* HP4Si printer and paper trays: Paper trays. (line 6)
+* href: Hypertext specials. (line 32)
+* hscale ('psfile' special option): psfile special. (line 30)
+* hsize ('psfile' special option): psfile special. (line 24)
+* html specials: Hypertext. (line 6)
+* html specials, and '-z': Option details. (line 416)
+* 'http://xxx.lanl.gov/hypertex': Hypertext. (line 22)
+* Hungarian umlaut: Reencoding with Afm2tfm.
+ (line 32)
+* hyperdvi extensions, enabling: Option details. (line 416)
+* hypertext and bitmap fonts: Hypertext caveats. (line 6)
+* hypertext caveats: Hypertext caveats. (line 6)
+* hypertext caveats <1>: Hypertext caveats. (line 6)
+* hypertext specials: Hypertext specials. (line 6)
+* hypertext support: Hypertext. (line 6)
+* i config command (pages/section): Configuration file commands.
+ (line 64)
+* Illustrator, workaround for: Including graphics fails.
+ (line 10)
+* img: Hypertext specials. (line 52)
+* including graphics fails: Including graphics fails.
+ (line 6)
+* including headers from the command line: Including headers from the command line.
+ (line 6)
+* including headers in TeX: Including headers from TeX.
+ (line 6)
+* installation of 'config.ps': config.ps installation.
+ (line 6)
+* installation of PostScript fonts: PostScript font installation.
+ (line 6)
+* installation, of Dvips: Installation. (line 6)
+* installing fonts: Making a font available.
+ (line 6)
+* interaction with PostScript: Interaction with PostScript.
+ (line 6)
+* inverted output: Small or inverted. (line 6)
+* invoking Dvips: Invoking Dvips. (line 6)
+* j config command (partial font downloading): Configuration file commands.
+ (line 68)
+* Japanese font metric file: Virtual fonts. (line 37)
+* Jeffrey, Alan: Invoking afm2tfm. (line 13)
+* JFM file, and virtual font fallback: Virtual fonts. (line 37)
+* K config command (comment removal): Configuration file commands.
+ (line 72)
+* kerning, defined: Metric files. (line 15)
+* KPATHSEA_DEBUG: Environment variables.
+ (line 18)
+* L config command (last paper size wins): Configuration file commands.
+ (line 76)
+* landscape orientation, defined: Paper size and landscape.
+ (line 11)
+* landscape papertype: Option details. (line 337)
+* landscape, as '\special': 'papersize' special. (line 16)
+* last page printed: Option details. (line 174)
+* last-resort font scaling, with 'DVIPSSIZES': Environment variables.
+ (line 47)
+* last-resort scaling, with 'R': Configuration file commands.
+ (line 147)
+* ledger papertype: Option details. (line 337)
+* legal papertype: Option details. (line 337)
+* letter paper size: Config file paper sizes.
+ (line 82)
+* letter papertype: Option details. (line 337)
+* letterhead tray: Paper trays. (line 10)
+* letterSize paper size: Config file paper sizes.
+ (line 90)
+* ligature operations: Encoding file format.
+ (line 54)
+* ligature, defined: Metric files. (line 15)
+* LIGKERN encoding file command: Encoding file format.
+ (line 37)
+* lines in figures, wrong width: EPSF clipping. (line 6)
+* links, hypertext: Hypertext specials. (line 33)
+* literal headers: Literal headers. (line 6)
+* literal PostScript, examples: Literal examples. (line 6)
+* literal PostScript, using: Literal PS. (line 6)
+* llx ('psfile' special option): psfile special. (line 42)
+* lly ('psfile' special option): psfile special. (line 42)
+* long documents not printing: Long documents fail. (line 6)
+* low characters, shifting: Option details. (line 122)
+* lpr spooler, MS-DOS emulation: Option details. (line 247)
+* m config command (available memory): Configuration file commands.
+ (line 80)
+* M config command (mf mode): Configuration file commands.
+ (line 107)
+* macros for color: Color macro files. (line 6)
+* macros for epsf inclusion: \includegraphics. (line 6)
+* macros for epsf inclusion <1>: EPSF macros. (line 6)
+* magnification, DVI: EPSF scaling. (line 62)
+* magnification, overriding DVI: Option details. (line 398)
+* magnification, vertical: Option details. (line 409)
+* mailcap and hypertext: Hypertext specials. (line 53)
+* manual feed: Option details. (line 187)
+* maxdrift: Option details. (line 76)
+* maximum pages printed: Option details. (line 209)
+* media: Option details. (line 337)
+* memory available: Configuration file commands.
+ (line 80)
+* memory of printer exhausted: Printer errors. (line 14)
+* memory usage, and headers: Headers and memory usage.
+ (line 6)
+* memory, conserving: Option details. (line 21)
+* memory, used by PostScript fonts: Making a font available.
+ (line 104)
+* Metafont ligature operations: Encoding file format.
+ (line 54)
+* Metafont mode, specifying: Option details. (line 190)
+* Metafont source files: Glyph files. (line 30)
+* metric files: Metric files. (line 6)
+* Minion typeface family: psfonts.map. (line 60)
+* missfont.log: Option details. (line 199)
+* MISSFONT_LOG: Option details. (line 202)
+* Mitsubishi Shinko CHC-S446i printer: No output. (line 14)
+* mkdvipspapers: Config file paper sizes.
+ (line 79)
+* mktexpk, avoiding: Option details. (line 199)
+* mktexpk, changing name: Environment variables.
+ (line 36)
+* mode name, specifying: Option details. (line 190)
+* mtpk: Option details. (line 390)
+* multiple master fonts: psfonts.map. (line 60)
+* multiple output files: Option details. (line 132)
+* multiple paper trays: Paper trays. (line 6)
+* Murphy, Tim: Hypertext specials. (line 20)
+* N config command (disable EPS): Configuration file commands.
+ (line 110)
+* name: Hypertext specials. (line 41)
+* narrow fonts: psfonts.map. (line 19)
+* no output at all: No output. (line 6)
+* non-printing characters, shifting: Option details. (line 122)
+* non-resident fonts: psfonts.map. (line 6)
+* nopaper, paper format for '-t': Config file paper sizes.
+ (line 74)
+* o config command (output destination): Configuration file commands.
+ (line 115)
+* O config command (page offsets): Configuration file commands.
+ (line 123)
+* oblique fonts: Special font effects.
+ (line 6)
+* octal character codes: Afm2tfm options. (line 51)
+* odd pages only: Option details. (line 27)
+* offset pages: Option details. (line 259)
+* Omega extensions: Option details. (line 220)
+* option, details of: Option details. (line 6)
+* options, debugging: Debug options. (line 6)
+* options, Dvips: Invoking Dvips. (line 6)
+* options, reading from standard input: Option details. (line 11)
+* options, summary: Option summary. (line 6)
+* options, to Afm2tfm: Afm2tfm options. (line 6)
+* outline fonts: Glyph files. (line 17)
+* outline fonts <1>: Special font effects.
+ (line 50)
+* output file, sectioning of: Headers and memory usage.
+ (line 6)
+* output file, setting: Configuration file commands.
+ (line 115)
+* output files, multiple: Option details. (line 132)
+* output title, specifying: Option details. (line 357)
+* output, inverted: Small or inverted. (line 6)
+* output, none: No output. (line 6)
+* output, redirecting: Option details. (line 242)
+* output, too small: Small or inverted. (line 6)
+* p config command (font aliases): Configuration file commands.
+ (line 126)
+* P config command (PK path): Configuration file commands.
+ (line 135)
+* page range: Option details. (line 286)
+* page, first printed: Option details. (line 277)
+* page, last printed: Option details. (line 174)
+* pages, maximum printed: Option details. (line 209)
+* PaintType: Special font effects.
+ (line 50)
+* Pantone colors: Color macro files. (line 17)
+* paper size configuration file command: Config file paper sizes.
+ (line 6)
+* paper size, default: config.ps installation.
+ (line 6)
+* paper size, general: Paper size and landscape.
+ (line 6)
+* paper trays: Paper trays. (line 6)
+* paper type: Option details. (line 337)
+* papersize special: 'papersize' special. (line 6)
+* papersize special, and no '-t': Option details. (line 337)
+* 'papersize' special, first vs. last: Option details. (line 183)
+* partial font downloading: psfonts.map. (line 55)
+* PDF files, font quality: Hypertext caveats. (line 6)
+* PDF files, making: Ghostscript installation.
+ (line 6)
+* PDF files, making <1>: Hypertext. (line 11)
+* PDF files, option for: Option details. (line 416)
+* pdfmark: Hypertext. (line 6)
+* pfa files: Glyph files. (line 25)
+* pfb files: Glyph files. (line 25)
+* pfb files, automatically unpacked: psfonts.map. (line 49)
+* pfm files: Metric files. (line 48)
+* Phaser printer, used for color calibration: Color device configuration.
+ (line 18)
+* physical page number, and '-l': Option details. (line 174)
+* physical page number, and '-p': Option details. (line 277)
+* physical page number, and 'bop-hook': PostScript hooks. (line 26)
+* pipes, not readable: Option details. (line 103)
+* pk files: Glyph files. (line 35)
+* PKFONTS, overrides P: Configuration file commands.
+ (line 135)
+* plotfile, 'ps' subspecial: ps special. (line 29)
+* pltotf: Metric files. (line 39)
+* popen for output: Option details. (line 247)
+* portrait orientation, defined: Paper size and landscape.
+ (line 11)
+* positioning accuracy: Option details. (line 76)
+* post code after headers: Including headers from TeX.
+ (line 28)
+* PostScript code, literal: Literal PS. (line 6)
+* PostScript encoding: Encodings. (line 27)
+* PostScript encoding, changing: Changing PostScript encodings.
+ (line 6)
+* PostScript font alias file: Option details. (line 370)
+* PostScript font alias file <1>: Configuration file commands.
+ (line 126)
+* PostScript fonts: PostScript fonts. (line 6)
+* PostScript fonts, installing: PostScript font installation.
+ (line 6)
+* PostScript fonts, on your system: PostScript font installation.
+ (line 11)
+* PostScript header files: Header files. (line 6)
+* PostScript hooks: PostScript hooks. (line 6)
+* PostScript interaction: Interaction with PostScript.
+ (line 6)
+* PostScript previewers: Ghostscript installation.
+ (line 6)
+* PostScript units: Bounding box. (line 11)
+* PowerPage PostScript implementation: No output. (line 14)
+* pre code before headers: Including headers from TeX.
+ (line 28)
+* previewing Dvips output: Ghostscript installation.
+ (line 6)
+* PRINTER: Environment variables.
+ (line 50)
+* printer configuration: config.ps installation.
+ (line 6)
+* printer configuration file, prototype: config.ps installation.
+ (line 14)
+* printer errors: Printer errors. (line 6)
+* printer memory: Configuration file commands.
+ (line 80)
+* printer memory exhausted: Printer errors. (line 14)
+* printer offset: Option details. (line 259)
+* PRINTER, and config file searching: Configuration file searching.
+ (line 36)
+* PRINTER, avoided with '-f': Option details. (line 103)
+* printer, driving directly: Option details. (line 115)
+* problems: Diagnosing problems. (line 6)
+* property list files: Metric files. (line 39)
+* prototype printer configuration file: config.ps installation.
+ (line 14)
+* ps special: ps special. (line 6)
+* psfile special: psfile special. (line 6)
+* psfonts.map: PostScript font installation.
+ (line 11)
+* psfonts.map <1>: Special font effects.
+ (line 19)
+* psfonts.map <2>: psfonts.map. (line 6)
+* psheaderdir: Header files. (line 12)
+* psi character missing: Hypertext caveats. (line 53)
+* pstopk: Option details. (line 390)
+* pTeX extensions: Option details. (line 220)
+* pTeX extensions <1>: Option details. (line 226)
+* ptex JFM: Virtual fonts. (line 37)
+* q config command (quiet): Configuration file commands.
+ (line 141)
+* Q config command (quiet): Configuration file commands.
+ (line 141)
+* quiet operation: Option details. (line 310)
+* R config command (fallback resolution): Configuration file commands.
+ (line 147)
+* r config command (page reversal): Configuration file commands.
+ (line 144)
+* raw tfm files: Afm2tfm options. (line 17)
+* reencode/*.enc: Encodings. (line 35)
+* reencoding: Reencoding with Afm2tfm.
+ (line 6)
+* reencoding PostScript fonts: psfonts.map. (line 24)
+* registered character, accessing: Changing PostScript encodings.
+ (line 18)
+* remapping: Reencoding with Afm2tfm.
+ (line 6)
+* resident fonts, different in different printers: Option details.
+ (line 370)
+* resident fonts, different in different printers <1>: Configuration file commands.
+ (line 126)
+* resolution: Option details. (line 406)
+* resolution <1>: Option details. (line 413)
+* resolution, setting: Option details. (line 63)
+* reverse pagination: Option details. (line 314)
+* rhi ('psfile' special option): psfile special. (line 46)
+* Rokicki, Tomas: Why Dvips. (line 52)
+* rotate.tex: ps special. (line 33)
+* rwi ('psfile' special option): psfile special. (line 46)
+* s config command (global save/restore): Configuration file commands.
+ (line 169)
+* S config command (pict path): Configuration file commands.
+ (line 172)
+* save/restore, and inverted output: Small or inverted. (line 6)
+* save/restore, and literal PS: Literal examples. (line 27)
+* save/restore, and specials: ps special. (line 6)
+* save/restore, generating global: Option details. (line 325)
+* scaleunit: psfile special. (line 66)
+* scaling of figures: EPSF scaling. (line 6)
+* scaling small caps: Afm2tfm options. (line 43)
+* Scandinavian A ring: Reencoding with Afm2tfm.
+ (line 32)
+* screen frequencies, setting: Including headers from the command line.
+ (line 13)
+* SDict: psfile special. (line 66)
+* SDict dictionary: Literal headers. (line 6)
+* searching config files, order of: Configuration file searching.
+ (line 6)
+* sections of output file, and memory: Headers and memory usage.
+ (line 6)
+* sections output, in separate files: Option details. (line 132)
+* security: Option details. (line 317)
+* shell command execution, disabling: Option details. (line 317)
+* shell escape, in config file: Configuration file commands.
+ (line 42)
+* Shinko CHC-S446i printer: No output. (line 14)
+* show PostScript operator: PostScript typesetting.
+ (line 23)
+* silent operation: Option details. (line 310)
+* simplex mode on duplex printers: Including headers from the command line.
+ (line 13)
+* slanted fonts: Special font effects.
+ (line 6)
+* slanted fonts, making: Afm2tfm options. (line 61)
+* SlantFont: Special font effects.
+ (line 17)
+* small caps fonts: Special font effects.
+ (line 34)
+* Smith, Arthur: Hypertext specials. (line 6)
+* spaces, dropped trailing: Hypertext caveats. (line 53)
+* specials, hypertext: Hypertext specials. (line 6)
+* splines: Glyph files. (line 17)
+* spooler, lacking: Option details. (line 115)
+* spooling to lpr on MS-DOS: Option details. (line 247)
+* standard I/O: Option details. (line 103)
+* standard input, reading options from: Option details. (line 11)
+* standard output, output to: Option details. (line 242)
+* standard PostScript, required by Ghostview: Ghostscript installation.
+ (line 12)
+* start-hook: PostScript hooks. (line 11)
+* structured comments: Option details. (line 212)
+* system in config file: Configuration file commands.
+ (line 42)
+* T config command (TFM path): Configuration file commands.
+ (line 177)
+* Tektronix Phaser printer, used for color calibration: Color device configuration.
+ (line 18)
+* testpage.tex: Option details. (line 266)
+* TeX encoding, changing: Changing TeX encodings.
+ (line 6)
+* TeX, including headers in: Including headers from TeX.
+ (line 6)
+* TEXCONFIG: Environment variables.
+ (line 55)
+* TEXFONTS, overrides P: Configuration file commands.
+ (line 135)
+* TEXFONTS, overrides T: Configuration file commands.
+ (line 177)
+* TEXINPUTS, overrides S: Configuration file commands.
+ (line 172)
+* texmext.enc: Encodings. (line 35)
+* TEXMFOUTPUT: Option details. (line 202)
+* texmital.enc: Encodings. (line 35)
+* texmsym.enc: Encodings. (line 35)
+* texmsym.enc <1>: Changing TeX encodings.
+ (line 16)
+* TEXPICTS: Environment variables.
+ (line 62)
+* TEXPICTS, overrides S: Configuration file commands.
+ (line 172)
+* TEXPKS, overrides P: Configuration file commands.
+ (line 135)
+* TEXSIZES, overrides R: Configuration file commands.
+ (line 160)
+* text in figures, chopped off: EPSF clipping. (line 6)
+* tfm files: Metric files. (line 31)
+* TFMFONTS, overrides T: Configuration file commands.
+ (line 177)
+* tftopl: Metric files. (line 39)
+* Theisen, Tim: Ghostscript installation.
+ (line 12)
+* tight bounding box, finding: Option details. (line 87)
+* title, specifying: Option details. (line 357)
+* too-small output: Small or inverted. (line 6)
+* trademark character, accessing: Changing PostScript encodings.
+ (line 18)
+* trailing spaces, dropped: Hypertext caveats. (line 53)
+* TranScript: Option details. (line 212)
+* transforming downloaded fonts: psfonts.map. (line 19)
+* trouble: Diagnosing problems. (line 6)
+* Type 1 fonts: Glyph files. (line 25)
+* typesetting in PostScript: PostScript typesetting.
+ (line 6)
+* U config command (Xerox 4045): Configuration file commands.
+ (line 182)
+* uncollated copies: Option details. (line 46)
+* uncompressing PostScript: Dynamic creation of graphics.
+ (line 6)
+* uniform resource locator: Hypertext specials. (line 20)
+* unknown, paper format for '-t': 'papersize' special. (line 29)
+* unknown, paper format for '-t' <1>: Config file paper sizes.
+ (line 69)
+* uptex JFM: Virtual fonts. (line 37)
+* URL, definition: Hypertext specials. (line 27)
+* URL, extended for TeX: Hypertext specials. (line 20)
+* urx ('psfile' special option): psfile special. (line 42)
+* ury ('psfile' special option): psfile special. (line 42)
+* usage, basic: Basic usage. (line 6)
+* user-definable colors: User-definable colors.
+ (line 6)
+* userdict, and dictionary files: Header files. (line 21)
+* userdict, used for header files: Option details. (line 127)
+* V config command (vf path): Configuration file commands.
+ (line 186)
+* verbose EPSF processing: EPSF macros. (line 46)
+* vf files: Virtual fonts. (line 16)
+* virtual font expansion: Virtual fonts. (line 33)
+* virtual font path: Configuration file commands.
+ (line 186)
+* virtual fonts: Virtual fonts. (line 6)
+* virtual fonts, creating: Invoking afm2tfm. (line 13)
+* VM exhausted: Printer errors. (line 14)
+* VMusage: Headers and memory usage.
+ (line 12)
+* voffset ('psfile' special option): psfile special. (line 21)
+* vpl files: Virtual fonts. (line 16)
+* vptovf: Making a font available.
+ (line 52)
+* vscale ('psfile' special option): psfile special. (line 33)
+* vsize ('psfile' special option): psfile special. (line 27)
+* W config command (emit warning): Configuration file commands.
+ (line 191)
+* warning messages, defining: Configuration file commands.
+ (line 191)
+* warnings, suppressing: Option details. (line 310)
+* whole font downloading: psfonts.map. (line 60)
+* wide fonts: psfonts.map. (line 19)
+* X config command (horizontal resolution): Configuration file commands.
+ (line 198)
+* Xerox 4045: Option details. (line 378)
+* Y config command (vertical resolution): Configuration file commands.
+ (line 201)
+* Z config command (compress fonts): Configuration file commands.
+ (line 204)
+* z config command (secure mode): Configuration file commands.
+ (line 207)
+
+
+
+Tag Table:
+Node: Top521
+Node: Why Dvips1271
+Node: Installation3854
+Node: config.ps installation4789
+Node: PostScript font installation7396
+Node: Ghostscript installation8316
+Node: Diagnosing problems9255
+Node: Debug options10346
+Node: No output11350
+Node: Small or inverted12816
+Node: Printer errors13534
+Node: Long documents fail14866
+Node: Including graphics fails15207
+Node: Invoking Dvips16446
+Node: Basic usage17068
+Node: Command-line options18066
+Node: Option summary18514
+Node: Option details20789
+Node: Environment variables41006
+Node: Config files43867
+Node: Configuration file searching44537
+Node: Configuration file commands47734
+Node: Paper size and landscape55708
+Node: 'papersize' special57335
+Node: Config file paper sizes59045
+Node: Paper trays63203
+Node: Interaction with PostScript64537
+Node: PostScript figures65190
+Node: Bounding box65916
+Node: \includegraphics69288
+Node: EPSF macros71580
+Node: EPSF scaling73579
+Node: EPSF clipping76149
+Node: psfile special76791
+Node: Dynamic creation of graphics79183
+Node: Fonts in figures80501
+Node: Header files82151
+Node: Including headers from TeX83361
+Node: Including headers from the command line85399
+Node: Headers and memory usage86498
+Node: Literal PS87709
+Node: " special88291
+Node: ps special89032
+Node: Literal headers90530
+Node: PostScript hooks91239
+Node: Literal examples93335
+Node: Hypertext94789
+Node: Hypertext caveats95963
+Node: Hypertext specials100319
+Node: PostScript fonts102953
+Node: Font concepts104070
+Node: Metric files105300
+Node: Glyph files108080
+Node: Virtual fonts110439
+Node: Encodings112594
+Node: Bitmap font encodings114996
+Node: PostScript typesetting117526
+Node: Making a font available120623
+Node: Invoking afm2tfm125657
+Node: Changing font encodings126677
+Node: Changing TeX encodings127468
+Node: Changing PostScript encodings128570
+Node: Changing both encodings129914
+Node: Reencoding with Afm2tfm130588
+Node: Encoding file format133691
+Node: Special font effects137895
+Node: Afm2tfm options140155
+Node: psfonts.map143680
+Node: Color148410
+Node: Color macro files149454
+Node: User-definable colors152664
+Node: Color subtleties153940
+Node: Ted Turner155592
+Node: Color device configuration156817
+Node: Color support details159261
+Node: Color specifications159639
+Node: Color specials161043
+Node: Index163172
+
+End Tag Table
diff --git a/Build/source/texk/dvipsk/dvips.texi b/Build/source/texk/dvipsk/dvips.texi
new file mode 100644
index 00000000000..38f129ce99e
--- /dev/null
+++ b/Build/source/texk/dvipsk/dvips.texi
@@ -0,0 +1,4738 @@
+\input texinfo
+@setfilename dvips.info
+@settitle Dvips: A DVI-to-PostScript translator
+
+@set version 2021.1
+@set month-year February 2021
+
+@copying
+This manual documents Dvips version @value{version}
+(@value{month-year}), a program to translate a DVI file into
+PostScript. You may freely use, modify and/or distribute this file.
+@end copying
+
+@c Define a new index for filenames and options.
+@defcodeindex fl
+@defcodeindex op
+
+@c Put everything in one index (arbitrarily chosen to be the concept index).
+@syncodeindex fl cp
+@syncodeindex fn cp
+@syncodeindex ky cp
+@syncodeindex op cp
+@syncodeindex pg cp
+@syncodeindex vr cp
+
+@dircategory TeX
+@direntry
+* DVI-to-Postscript: (dvips). Translating TeX DVI files to PostScript.
+* afm2tfm: (dvips)Invoking afm2tfm. Making Type 1 fonts available to TeX.
+* dvips: (dvips)Invoking Dvips. DVI-to-PostScript translator.
+@end direntry
+
+@titlepage
+@title Dvips: A DVI-to-PostScript Translator
+@subtitle for version @value{version}
+@subtitle @value{month-year}
+@author Tomas Rokicki
+@author @url{https://tug.org/dvips}
+
+@page
+@insertcopying
+@vskip 0pt plus 1filll
+@end titlepage
+
+@summarycontents
+@contents
+
+@ifnottex
+@node Top
+@top Dvips
+
+@insertcopying
+
+@menu
+* Why Dvips:: Why use Dvips?
+* Installation:: How to compile and install Dvips.
+* Invoking Dvips:: Command-line options, configuration files, etc.
+* Paper size and landscape:: Changing the paper dimensions.
+* Interaction with PostScript:: TeX meets Dvips meets PostScript.
+* PostScript fonts:: Installing and using PostScript fonts.
+* Color:: Using color with Dvips.
+* Index:: General index.
+@end menu
+@end ifnottex
+
+
+@node Why Dvips
+@chapter Why use Dvips?
+
+The Dvips program has a number of features that set it apart from
+other PostScript drivers for @TeX{}. This rather long section describes
+the advantages of using Dvips, and may be skipped if you are just
+interested in learning how to use the program. @xref{Installation}, for
+details of compilation and installation.
+
+The Dvips driver generates excellent, standard PostScript, that
+can be included in other documents as figures or printed through a
+variety of spoolers. The generated PostScript requires very little
+printer memory, so very complex documents with a lot of fonts can easily
+be printed even on PostScript printers without much memory, such as the
+original Apple LaserWriter. The PostScript output is also compact,
+requiring less disk space to store and making it feasible as a transfer
+format.
+
+Even those documents that are too complex to print in their entirety on
+a particular printer can be printed, since Dvips will
+automatically split such documents into pieces, reclaiming the printer
+memory between each piece.
+
+The Dvips program supports graphics in a natural way, allowing
+PostScript graphics to be included and automatically scaled and
+positioned in a variety of ways.
+
+Printers with any resolution are supported, even if they have different
+resolutions in the horizontal and vertical directions. High resolution
+output is supported for typesetters, including an option that compresses
+the bitmap fonts so that typesetter virtual memory is not exhausted.
+This option also significantly reduces the size of the PostScript file
+and decoding in the printer is very fast.
+
+Missing fonts can be automatically generated if Metafont exists on
+the system, or fonts can be converted from GF to PK format
+on demand. If a font cannot be generated, a scaled version of the same
+font at a different size can be used instead, although Dvips will
+complain loudly about the poor aesthetics of the resulting output.
+
+One of the most important features is the support of virtual fonts,
+which add an entirely new level of flexibility to @TeX{}. Dvips even
+comes with its own Afm2tfm program that can create the virtual fonts
+and @TeX{} font metric files automatically from Adobe font metric
+files.
+
+Source is provided and freely distributable, so adding a site-specific feature
+is possible. Adding such features is made easier by the highly modular
+structure of the program.
+
+@cindex Rokicki, Tomas
+Tom Rokicki wrote and maintains the original Dvips program.
+
+
+@node Installation
+@chapter Installation
+
+@cindex configuration, of Dvips
+@cindex compilation
+@cindex installation, of Dvips
+
+@c ifset version
+@c (A copy of this chapter is in the distribution file @file{dvipsk/INSTALL}.)
+@c end ifset
+
+Installing Dvips is mostly the same as installing any Kpathsea-using
+program. Therefore, for the basic steps involved,
+@pxref{Installation,,, kpathsea, Kpathsea}.
+
+For solutions to common installation problems and information on how to
+report a bug, see the file @file{kpathsea/BUGS} (@pxref{Bugs,,,
+kpathsea, Kpathsea}). For solutions to Dvips-specific problems,
+@pxref{Debug options}.
+
+Dvips does require some additional installation, detailed in the
+sections below. Also, to configure color devices, @pxref{Color device
+configuration}.
+
+@menu
+* config.ps installation:: Printer and site Dvips configuration.
+* PostScript font installation:: Many PostScript fonts are freely available.
+* Ghostscript installation:: A free PostScript interpreter.
+* Diagnosing problems:: Some common runtime difficulties.
+@end menu
+
+
+@node config.ps installation
+@section @file{config.ps} installation
+
+@flindex config.ps @r{installation}
+@cindex installation of @file{config.ps}
+@cindex printer configuration
+@cindex paper size, default
+@cindex configuration files, creating
+
+Dvips has its own configuration files: a file @file{config.ps} for
+sitewide defaults, and a file @file{config.@var{printer}} for each
+printer (output device). Since these are site-specific, @code{make
+install} does not create them; you must create them yourself.
+
+(These Dvips configuration files are independent of the Kpathsea
+configuration file @file{texmf.cnf} (@pxref{Config files,,,kpathsea,
+Kpathsea}).
+
+@flindex config.proto
+@cindex prototype printer configuration file
+@cindex printer configuration file, prototype
+@cindex configuration files, prototype
+Dvips configuration files contents and searching are described fully in
+@ref{Config files}. The simplest way to create a new configuration file
+is to copy and modify the file @file{dvipsk/contrib/config.proto},
+seasoning with options to your taste from @ref{Config files}. Here is
+@file{config.proto}
+for your reading pleasure:
+@example
+@include contrib/config.proto
+@end example
+
+
+@node PostScript font installation
+@section PostScript font installation
+
+@cindex installation of PostScript fonts
+@cindex fonts, installation of PostScript
+@cindex PostScript fonts, installing
+
+To use PostScript fonts with @TeX{} and Dvips, you need both metric
+files (@file{.tfm} and @file{.vf}) and the outlines (@file{.pfa} or
+@file{.pfb}). @xref{Font concepts}. Current @TeX{} systems
+come with support for 35 base PostScript fonts and many more.
+
+@cindex fonts, system PostScript
+@cindex PostScript fonts, on your system
+@flindex psfonts.map
+If you have additional PostScript fonts, you can make them available
+to Dvips by (1)@tie{}giving them appropriate filenames; and
+(2)@tie{}running Afm2tfm (@pxref{Making a font available}) to make TFM
+and VF metrics for @TeX{} and Dvips to use. Also add them to
+@file{psfonts.map} (@pxref{psfonts.map}); this file must contain
+everything available in the system. The @code{updmap} program is
+usually used to maintain @file{psfonts.map}; run @samp{updmap --help}
+for lots of information about how it works.
+
+
+@node Ghostscript installation
+@section Ghostscript installation
+
+@cindex Ghostscript installation
+@pindex gs @r{installation}
+
+@cindex Deutsch, Peter
+@cindex Epson printers
+@cindex previewing Dvips output
+@cindex PostScript previewers
+@cindex PDF files, making
+@cindex Aladdin Ghostscript
+Ghostscript is a PostScript interpreter freely available to end-users,
+originally written by Peter Deutsch. It can read the PostScript
+produced by Dvips and render it on your monitor, or for another device
+(e.g., an Epson printer) that does not support PostScript, or in PDF
+format. The latest version is available via
+@url{https://ghostscript.com}.
+
+@cindex Theisen, Tim
+@pindex ghostview
+@cindex Ghostview, and no @samp{N}
+@cindex EPS, and Ghostview
+@cindex standard PostScript, required by Ghostview
+@findex %%Page@r{, required by Ghostview}
+The program Ghostview, originally written by Johannes Plass and Tim
+Theisen, provides typical previewing capabilities (next page/previous
+page, magnification, etc.). It requires Ghostscript to run, and files
+in structured Postscript, specifically with @samp{%%Page} comments (no
+@samp{N} in @file{config.ps}). The current version is known as GV,
+and is available from @url{https://www.gnu.org/software/gv}.
+
+
+@node Diagnosing problems
+@section Diagnosing problems
+
+@cindex problems
+@cindex trouble
+@cindex debugging
+
+You've gone through all the trouble of installing Dvips, carefully read
+all the instructions in this manual, and still can't get something to
+work. The following sections provide some helpful hints if you find
+yourself in such a situation.
+
+For details on effective bug reporting, common installation problems,
+and @code{mktexpk} problems, @pxref{Bugs,,, kpathsea, Kpathsea}.
+
+A good first debugging operation is to set the environment variable
+@env{DVIPSDEBUG}, which will display any configuration and map files
+read by Dvips. This way you can be sure it's finding the files and
+settings you expect.
+
+@menu
+* Debug options:: Getting diagnostics.
+* No output:: No output at all.
+* Small or inverted:: Output too small or inverted.
+* Printer errors:: The printer sends back errors.
+* Long documents fail:: Long documents fail to print.
+* Including graphics fails:: Figures don't work.
+@end menu
+
+
+@node Debug options
+@subsection Debug options
+
+@cindex debugging options
+@cindex options, debugging
+
+The @samp{-d} flag to Dvips helps in tracking down certain errors.
+The parameter to this flag is an integer that tells what errors are
+currently being tracked. To track a certain class of debug messages,
+specify the appropriate number given below; if you wish to track
+multiple classes, sum the numbers of the classes you wish to track.
+To track all classes, you can use @code{-1}.
+
+You can also set the environment variable @env{KPATHSEA_DEBUG} instead
+of using @samp{-d}. Some of these debugging options are actually
+provided by Kpathsea (@pxref{Debugging, , , kpathsea, Kpathsea}).
+
+The classes are:
+
+@table @asis
+@item 1
+specials
+@item 2
+paths
+@item 4
+fonts
+@item 8
+pages
+@item 16
+headers
+@item 32
+font compression
+@item 64
+files
+@item 128
+(omitted)
+@item 256
+config files
+@item 512
+Kpathsea @code{stat} calls
+@item 1024
+Kpathsea hash table lookups
+@item 2048
+Kpathsea path element expansion
+@item 4096
+Kpathsea path searches
+@end table
+
+
+@node No output
+@subsection No output at all
+
+@cindex output, none
+@cindex no output at all
+@cindex failure, to print at all
+
+If you are not getting any output at all, even from the simplest
+one-character file (for instance, @samp{\ \bye}), then something is very
+wrong. Practically any file sent to a PostScript laser printer should
+generate some output, at the very least a page detailing what error
+occurred, if any. Talk to your system administrator about downloading a
+PostScript error handler. (Adobe distributes a good one called
+@samp{ehandler.ps}.)
+@flindex ehandler.ps
+
+@cindex PowerPage PostScript implementation
+@cindex Shinko CHC-S446i printer
+@cindex Mitsubishi Shinko CHC-S446i printer
+It is possible, especially if you are using non-Adobe PostScript, that
+your PostScript interpreter is broken. Even then it should generate an
+error message. Dvips tries to work around as many bugs as possible in
+common non-Adobe PostScript interpreters, but doubtless it misses a few.
+PowerPage Revision 1, Interpreter Version 20001.001, on a Mitsubishi
+Shinko CHC-S446i color thermal dye sublimation printer is known to be
+unable to print with any but builtin fonts.
+
+If Dvips gives any strange error messages, or compilation on your
+machine generated a lot of warnings, perhaps the Dvips program itself is
+broken. Try using the debug options to determine where the error
+occurred (@pxref{Debug options}).
+
+It is possible your spooler is broken and is misinterpreting the
+structured comments. Try the @samp{-N} flag to turn off structured
+comments and see what happens.
+
+
+@node Small or inverted
+@subsection Output too small or inverted
+
+@cindex output, too small
+@cindex output, inverted
+@cindex inverted output
+@cindex too-small output
+
+@cindex save/restore, and inverted output
+If some documents come out inverted or too small, probably your spooler
+is not supplying an end of job indicator at the end of each file. (This
+commonly happens on small machines that don't have spoolers.) You can
+force Dvips to do this with the @samp{-F} flag (or @samp{F} config file
+option), but this generates files with a terminating binary character
+(control-D). You can also try using the @samp{-s} flag (or @samp{s}
+config file option) to enclose the entire job in a save/restore pair.
+@xref{Command-line options}, and @ref{Config files}.
+
+
+@node Printer errors
+@subsection Error messages from printer
+
+@cindex printer errors
+@cindex error messages from printer
+@cindex failure, and printer errors
+
+@cindex @t{bop undefined} error
+If your printer returns error messages, the error message gives very
+good information on what might be going wrong. One of the most common
+error messages is @samp{bop undefined}. This is caused by old versions
+of Transcript and other spoolers that do not properly parse the setup
+section of the PostScript. To fix this, turn off structured comments
+with the @samp{-N} option, but it'd be best to get your spooling
+software updated.
+
+@cindex VM exhausted
+@cindex printer memory exhausted
+@cindex memory of printer exhausted
+Another error message is @samp{VM exhausted}. Some printers indicate
+this error by locking up, others quietly reset. This is caused by Dvips
+thinking that the printer has more memory than it actually does, and
+then printing a complicated document. To fix this, try lowering the
+@samp{m} parameter in the configuration file; use the debug option to
+make sure you adjust the correct file.
+
+Other errors may indicate you are trying to include graphics that don't
+nest properly in other PostScript documents, among other things. Try
+the PostScript file on a QMS PS-810 or other Adobe PostScript printer if
+you have one, or Ghostscript (@pxref{Ghostscript installation}); it
+might be a problem with the printer itself.
+
+
+@node Long documents fail
+@subsection Long documents fail to print
+
+@cindex long documents not printing
+@cindex failure, of long documents
+
+This is usually caused by incorrectly specifying the amount of memory
+the printer has in the configuration file; see the previous section.
+
+
+@node Including graphics fails
+@subsection Including graphics fails
+
+@cindex including graphics fails
+@cindex graphics inclusion fails
+@cindex failure, to include graphics
+
+The most common problem with including graphics is an incorrect bounding
+box (@pxref{Bounding box}). Complain to whoever wrote the software that
+generated the file if the bounding box is indeed incorrect.
+
+@cindex Illustrator, workaround for
+Another possible problem is that the figure you are trying to include
+does not nest properly; there are certain rules PostScript applications
+must follow when generating files to be included. The Dvips program
+includes work-arounds for such errors in Adobe Illustrator and other
+programs, but there are certainly applications that haven't been tested.
+
+One possible thing to try is the @samp{-K} flag which strips the comments
+from an included figure. This might be necessary if the PostScript
+spooling software does not read the structured comments correctly. Use
+of this flag will break graphics from some applications, though, since
+some applications read the PostScript file from the input stream,
+looking for a particular comment.
+
+@cindex binary files, not supported
+Any application which generates graphics output containing raw binary
+(not ASCII hex) will probably fail with Dvips.
+
+
+@node Invoking Dvips
+@chapter Invoking Dvips
+
+@cindex command-line options
+@cindex options, Dvips
+@cindex invoking Dvips
+
+Dvips reads a DVI file as output by (for example) @TeX{}, and converts
+it to PostScript, taking care of builtin or downloaded PostScript fonts,
+font reencoding, color, etc. These features are described in other
+chapters in this document.
+
+There many ways to control Dvips' behavior: configuration files,
+environment variables, and command-line options.
+
+@menu
+* Basic usage::
+* Command-line options::
+* Environment variables::
+* Config files::
+@end menu
+
+
+@node Basic usage
+@section Basic usage of Dvips
+
+@cindex usage, basic
+
+To use Dvips at its simplest, simply type
+
+@example
+dvips foo
+@end example
+
+@noindent
+where @file{foo.dvi} is the output of @TeX{} that you want to print.
+The default output is to a corresponding file @file{foo.ps}; Dvips may
+also have been locally configured to output directly to a printer by
+default.
+
+If you use fonts that have not been used on your system before, they may
+be automatically generated; this process can take a few minutes, so
+progress reports appear by default. The next time that document is
+printed, these fonts will have been saved in the proper directories, so
+printing will go much faster. (If Dvips tries to endlessly generate the
+same fonts over and over again, it hasn't been installed properly.
+@xref{Unable to generate fonts,,, kpathsea, Kpathsea}.)
+
+Many options are available (see the next section). For a brief summary
+of available options, run
+
+@example
+dvips --help
+@end example
+
+
+@node Command-line options
+@section Command-line options
+
+Dvips has a plethora of command line options. Reading through this
+section will give a good idea of the capabilities of the driver.
+
+@menu
+* Option summary:: Quick listing, from Dvips --help.
+* Option details:: More information about each option.
+@end menu
+
+
+@node Option summary
+@subsection Option summary
+
+@cindex options, summary
+Here is a handy summary of the options; it is printed out when you run
+Dvips with no arguments or with the standard @samp{--help} option.
+@opindex --help
+
+@verbatiminclude dvips.help
+
+
+@node Option details
+@subsection Option details
+
+@cindex option, details of
+
+Many of the parameterless options listed here can be turned off by
+suffixing the option with a zero (@samp{0}); for instance, to turn off
+page reversal, use @samp{-r0}. Such options are marked with a trailing
+@samp{*}.
+
+@table @samp
+@item -
+@opindex -
+@cindex options, reading from standard input
+@cindex standard input, reading options from
+Read additional options from standard input after processing the command
+line.
+
+@item --help
+@opindex --help
+Print a usage message and exit.
+
+@item --version
+@opindex --version
+Print the version number and exit.
+
+@item -a*
+@opindex -a
+@cindex memory, conserving
+Conserve memory by making three passes over the DVI file instead
+of two and only loading those characters actually used. Generally only
+useful on machines with a very limited amount of memory, like some PCs.
+
+@item -A
+@opindex -A
+@cindex odd pages only
+Print only the odd pages. This option uses @TeX{}
+page numbers, not physical page numbers.
+
+@item -b @var{num}
+@opindex -b @var{num}
+@vindex /#copies
+@cindex copies, duplicated page bodies
+@cindex color separations
+Generate @var{num} copies of each page, but duplicating the page body
+rather than using the @samp{/#copies} PostScript variable. This can
+be useful in conjunction with a header file setting @samp{bop-hook} to
+do color separations or other neat tricks.
+
+@item -B
+@opindex -B
+@cindex even pages only
+@cindex double-sided printing
+Print only the even pages. This option uses @TeX{} page numbers, not
+physical page numbers.
+
+@item -bitmapfontenc @var{option}
+@opindex -bitmapfontenc @var{option}
+@cindex bitmap font encoding
+Turns bitmap font encoding to @samp{off}, @samp{on} (no warnings
+for missing bitmap font encodings), or @samp{strict} (with warnings
+for missing bitmap font encodings).
+
+@item -c @var{num}
+@opindex -c @var{num}
+@vindex /#copies
+@cindex copies, uncollated
+@cindex uncollated copies
+Generate @var{num} consecutive copies of every page, i.e., the output is
+uncollated. This merely sets the builtin PostScript variable
+@samp{/#copies}.
+
+@item -C @var{num}
+@opindex -C @var{num}
+@cindex copies, collated
+@cindex collated copies
+Generate @var{num} copies, but collated (by replicating the data in the
+PostScript file). Slower than the @samp{-c} option, but easier on the
+hands, and faster than resubmitting the same PostScript file multiple
+times.
+
+@item -d @var{num}
+@opindex -d @var{num}
+@cindex debugging
+Set the debug flags, showing what Dvips (thinks it) is doing. This will
+work unless Dvips has been compiled without the @samp{DEBUG} option (not
+recommended). @xref{Debug options}, for the possible values of
+@var{num}. Use @samp{-d -1} as the first option for maximum output.
+
+@item -D @var{num}
+@opindex -D @var{num}
+@cindex resolution, setting
+Set both the horizontal and vertical resolution to @var{num}, given in
+dpi (dots per inch). This affects the choice of bitmap fonts that are
+loaded and also the positioning of letters in resident PostScript
+fonts. Must be between 10 and 10000. This affects both the horizontal
+and vertical resolution. If a high resolution (something greater than
+400 dpi, say) is selected, the @samp{-Z} flag should probably also be
+used. If you are using fonts made with Metafont, such as Computer
+Modern, @file{mktexpk} needs to know about the value for @var{num}
+that you use or Metafont will fail. See the file
+@url{ftp://ftp.tug.org/tex/modes.mf} for a list of resolutions and mode
+names for most devices.
+
+@item -e @var{num}
+@opindex -e @var{num}
+@cindex maxdrift
+@cindex accuracy in positioning
+@cindex positioning accuracy
+Maximum drift in pixels of each character from its `true'
+resolution-independent position on the page. The default value of this
+parameter is resolution dependent (it is the number of entries in the
+list [100, 200, 300, 400, 500, 600, 800, 1000, 1200, 1600, 2000, 2400,
+2800, 3200, @dots{}] that are less than or equal to the resolution in
+dots per inch). Allowing individual characters to `drift' from their
+correctly rounded positions by a few pixels, while regaining the true
+position at the beginning of each new word, improves the spacing of
+letters in words.
+
+@item -E*
+@opindex -E
+@cindex EPSF, generating
+@cindex tight bounding box, finding
+@cindex bounding box, finding tight
+Generate an EPSF file with a tight bounding box. This only looks at
+marks made by characters and rules, not by any included graphics. In
+addition, it gets the glyph metrics from the TFM file, so characters
+that print outside their enclosing TFM box may confuse it. In addition,
+the bounding box might be a bit too loose if the character glyph has
+significant left or right side bearings. Nonetheless, this option works
+well enough for creating small EPSF files for equations or tables or the
+like. (Of course, Dvips output, especially when using bitmap fonts, is
+resolution-dependent and thus does not make very good EPSF files,
+especially if the images are to be scaled; use these EPSF files with
+care.) For multiple page input files, also specify @samp{-i} to get
+each page as a separate EPSF file; otherwise, all the pages are overlaid
+in the single output file.
+
+@item -f*
+@opindex -f
+@cindex filter, running as a
+@cindex standard I/O
+@cindex pipes, not readable
+@vindex PRINTER@r{, avoided with @samp{-f}}
+Run as a filter. Read the DVI file from standard input and write the
+PostScript to standard output. The standard input must be seekable, so
+it cannot be a pipe. If your input must be a pipe, write a shell script
+that copies the pipe output to a temporary file and then points Dvips at
+this file. This option also disables the automatic reading of the
+@code{PRINTER} environment variable; use @samp{-P$PRINTER} after the
+@samp{-f} to read it anyway. It also turns off the automatic sending of
+control-D if it was turned on with the @samp{-F} option or in the
+configuration file; use @samp{-F} after the @samp{-f} to send it anyway.
+
+@item -F*
+@opindex -F
+@cindex EOF
+@cindex control-D
+@cindex printer, driving directly
+@cindex spooler, lacking
+Write control-D (ASCII code 4) as the very last character of the
+PostScript file. This is useful when Dvips is driving the printer
+directly instead of working through a spooler, as is common on personal
+systems. On systems shared by more than one person, this is not
+recommended.
+
+@item -G*
+@opindex -G
+@cindex low characters, shifting
+@cindex non-printing characters, shifting
+Shift non-printing characters (ASCII 0-32, 127) to higher-numbered positions.
+This was useful to work around bugs in old versions of Adobe's PDF
+reader. It's more likely to cause problems nowadays.
+
+@item -h @var{name}
+@opindex -h @var{name}
+@cindex header file, downloading
+@cindex userdict@r{, used for header files}
+Prepend @var{name} as an additional header file, or, if @var{name} is
+@samp{-}, suppress all header files. Any definitions in the header file
+get added to the PostScript @samp{userdict}.
+
+@item -i*
+@opindex -i
+@cindex sections output, in separate files
+@cindex multiple output files
+@cindex output files, multiple
+Make each section be a separate file; a @dfn{section} is a part of the
+document processed independently, most often created to avoid memory
+overflow. The filenames are created replacing the suffix of the
+supplied output file name by a three-digit sequence number. This option
+is most often used in conjunction with the @samp{-S} option which sets
+the maximum section length in pages; if @samp{-i} is specified and
+@samp{-S} is not, each page is output as a separate file. For instance,
+some phototypesetters cannot print more than ten or so consecutive pages
+before running out of steam; these options can be used to automatically
+split a book into ten-page sections, each to its own file.
+
+On the other hand, if your document uses very large fonts or very
+large included figures, Dvips might take it upon itself to split the
+output into unwanted sections, to try to avoid overflowing printer
+memory. @xref{Headers and memory usage}, for ways to handle this.
+
+@item -j*
+@opindex -j @r{for partial font downloading}
+Download only needed characters from Type 1 fonts. This is the
+default in the current release. Some debugging flags trace this operation
+(@pxref{Debug options}). You can also control partial downloading on a
+per-font basis (@pxref{psfonts.map}).
+
+@item -k*
+@opindex -k @r{for cropmarks}
+@cindex cropmarks
+@flindex crop.pro
+Print crop marks. This option increases the paper size (which should be
+specified, either with a paper size special or with the @samp{-T}
+option) by a half inch in each dimension. It translates each page by a
+quarter inch and draws cross-style crop marks. It is mostly useful with
+typesetters that can set the page size automatically. This works by
+downloading @file{crop.pro}.
+
+@item -K*
+@opindex -K
+@cindex comments, removing included
+@findex %%Page@r{, removing}
+Remove comments in included PostScript graphics, font files, and
+headers; only necessary to get around bugs in spoolers or PostScript
+post-processing programs. Specifically, the @samp{%%Page}
+comments, when left in, often cause difficulties. Use of this flag can
+cause other graphics to fail, however, since the PostScript header
+macros from some software packages read portion the input stream line by
+line, searching for a particular comment.
+
+@item -l [=]@var{num}
+@opindex -l [=]@var{num}
+@cindex last page printed
+@cindex page, last printed
+@cindex physical page number, and @samp{-l}
+@cindex absolute page number, and @samp{-l}
+The last page printed will be the first one numbered @var{num}. Default
+is the last page in the document. If @var{num} is prefixed by an equals
+sign, then it (and the argument to the @samp{-p} option, if specified)
+is treated as a physical (absolute) page number, rather than a value to
+compare with the @TeX{} @samp{\count0} values stored in the DVI file.
+Thus, using @samp{-l =9} will end with the ninth page of the document,
+no matter what the pages are actually numbered.
+
+@item -L*
+@opindex -L
+@cindex @samp{papersize} special, first vs.@: last
+By default or with @code{-L1}, the last @samp{papersize} special wins;
+with @code{-L0}, the first special wins. @xref{@samp{papersize} special}.
+
+@item -m*
+@opindex -m
+@cindex manual feed
+Specify manual feed, if supported by the output device.
+
+@item -mode @var{mode}
+@opindex -mode @var{mode}
+@cindex mode name, specifying
+@cindex Metafont mode, specifying
+Use @var{mode} as the Metafont device name for path searching and font
+generation. This overrides any value from configuration files. With
+the default paths, explicitly specifying the mode also makes the program
+assume the fonts are in a subdirectory named @var{mode}.
+@xref{TeX directory structure,, @TeX{} directory structure, kpathsea,
+Kpathsea}. If Metafont does not understand the @var{mode} name, see
+@ref{Unable to generate fonts,,, kpathsea, Kpathsea}.
+
+@item -M*
+@opindex -M
+@cindex font generation, avoiding
+@pindex mktexpk@r{, avoiding}
+@flindex missfont.log
+@comment this description repeated in kpathsea.texi
+Turns off automatic font generation (@file{mktexpk}). If
+@code{mktexpk}, the invocation is appended to a file
+@file{missfont.log} (by default) in the current directory. You can then
+execute the log file to create the missing files after fixing the
+problem.
+@vindex TEXMFOUTPUT
+@vindex MISSFONT_LOG
+If the current directory is not writable and the environment variable or
+configuration file value @samp{TEXMFOUTPUT} is set, its value is used.
+Otherwise, nothing is written. The name @samp{missfont.log} is
+overridden by the @samp{MISSFONT_LOG} environment variable or
+configuration file value.
+
+@item -n @var{num}
+@opindex -n @var{num}
+@cindex maximum pages printed
+@cindex pages, maximum printed
+Print at most @var{num} pages. Default is 100000.
+
+@item -N*
+@opindex -N
+@cindex structured comments
+@cindex TranScript
+@findex %%Page@r{, not generating}
+Turns off generation of structured comments such as @samp{%%Page}; this
+may be necessary on some systems that try to interpret PostScript
+comments in weird ways, or on some PostScript printers. Old versions of
+TranScript in particular cannot handle modern Encapsulated PostScript.
+Beware: This also disables page movement, etc., in PostScript viewers
+such as Ghostview.
+
+@item -noomega
+@opindex -noomega
+@cindex Omega extensions
+@cindex p@TeX{} extensions
+Disable the use of Omega extensions when interpreting DVI
+files. By default, the additional opcodes @samp{129} and @samp{134}
+are recognized by Dvips as Omega or p@TeX{} extensions and interpreted as
+requests to set 2-byte characters.
+
+@item -noptex
+@opindex -noptex
+@cindex p@TeX{} extensions
+Disable the use of p@TeX{} extensions when interpreting DVI files. By
+default, the additional opcodes @samp{130} and @samp{135} are
+recognized by Dvips as Omega extensions and interpreted as requests to
+set 3-byte characters, and @samp{255} as request to change the
+typesetting direction.
+
+The only drawback is that the virtual font array will (at least
+temporarily) require 65536 or more positions instead of the default
+256 positions, i.e., the memory requirements of Dvips will be somewhat
+larger. If you find this unacceptable or encounter another problem
+with the Omega or p@TeX{} extensions, you can switch off the p@TeX{}
+extension by using @samp{-noptex}, or both by using @samp{-noomega}
+(but please do send a bug report if you find such problems,
+@pxref{Bugs,,, kpathsea, Kpathsea}).
+
+@item -o @var{name}
+@opindex -o @var{name}
+@cindex output, redirecting
+@cindex standard output, output to
+Send output to the file @var{name}. If @samp{-o} is specified without
+@var{name} (i.e., it is the last thing on the command line), the
+default is @samp{@var{file}.ps} where the input DVI file was
+@samp{@var{file}.dvi}. If @samp{-o} isn't given at all, the
+configuration file default is used.
+
+@findex popen @r{for output}
+@kindex - @r{as output filename}
+@kindex ! @r{starting output filename}
+@kindex | @r{starting output filename}
+@cindex lpr spooler, MS-DOS emulation
+@cindex spooling to lpr on MS-DOS
+If @var{name} is @samp{-}, output goes to standard output. If the first
+character of @var{name} is @samp{!} or @samp{|}, then the remainder will
+be used as an argument to @code{popen}; thus, specifying @samp{|lpr} as
+the output file will automatically queue the file for printing as
+usual. (The MS-DOS version will print to the local printer device
+@file{PRN} when @var{name} is @samp{|lpr} and a program by that name
+cannot be found.)
+
+@samp{-o} disables the automatic reading of the @code{PRINTER}
+environment variable, and turns off the automatic sending of control-D.
+See the @samp{-f} option for how to override this.
+
+@item -O @var{x-offset},@var{y-offset}
+@opindex -O @var{x-offset},@var{y-offset}
+@cindex offset pages
+@cindex printer offset
+Move the origin by @var{x-offset},@var{y-offset}, a comma-separated
+pair of dimensions such as @samp{.1in,-.3cm} (@pxref{@samp{papersize}
+special}). The origin of the page is shifted from the default position
+(of one inch down, one inch to the right from the upper left corner of
+the paper) by this amount. This is usually best specified in the
+printer-specific configuration file.
+
+@flindex testpage.tex
+This is useful for a printer that consistently offsets output pages by a
+certain amount. You can use the file @file{testpage.tex} to determine
+the correct value for your printer. Be sure to do several runs with the
+same @code{O} value---some printers vary widely from run to run.
+
+@findex bop-hook@r{, and offset pages}
+If your printer offsets every other page consistently, instead of every
+page, your best recourse is to use @samp{bop-hook} (@pxref{PostScript
+hooks}).
+
+@item -p [=]@var{num}
+@opindex -p [=]@var{num}
+@cindex first page printed
+@cindex page, first printed
+@cindex physical page number, and @samp{-p}
+@cindex absolute page number, and @samp{-p}
+The first page printed will be the first one numbered @var{num}. Default
+is the first page in the document. If @var{num} is prefixed by an
+equals sign, then it (and the argument to the @samp{-l} option, if
+specified) is treated as a physical (absolute) page number, rather than
+a value to compare with the @TeX{} @samp{\count0} values stored in the
+DVI file. Thus, using @samp{-p =3} will start with the third page of
+the document, no matter what the pages are actually numbered.
+
+@item -pp @var{first}-@var{last}
+@opindex -pp @var{first}-@var{last}
+@cindex page range
+@opindex -pp @var{range}
+Print pages @var{first} through @var{last}; equivalent to @samp{-p
+@var{first} -l @var{last}}, except that multiple @samp{-pp} options
+accumulate, unlike @samp{-p} and @samp{-l}. The @samp{-} separator can
+also be @samp{:}.
+
+@item -P @var{printer}
+@opindex -P @var{printer}
+@flindex config.ps
+Read the configuration file @file{config.@var{printer}}
+(@file{@var{printer}.cfg} on MS-DOS), which typically sets the output
+name (most likely @samp{o |lpr -P@var{printer}}), resolution, Metafont
+mode, and perhaps other printer-specific defaults. It works best to
+put sitewide defaults in the one master @samp{config.ps} file and only
+things that vary from printer to printer in the
+@samp{config.@var{printer}} files; @samp{config.ps} is read before
+@samp{config.@var{printer}}.
+
+A configuration file for eventual creation of Adobe PDF files is
+provided in @samp{config.pdf} and thus can be loaded with
+@samp{-Ppdf}. It will try to include Type 1 outline fonts into the
+PostScript file (@pxref{Hypertext caveats}).
+
+If no @samp{-P} or @samp{-o} is given, the environment variable
+@code{PRINTER} is checked. If that variable exists, and a corresponding
+@file{config.@var{printer}} (@file{@var{printer}.cfg} on MS-DOS) file
+exists, it is read.
+@xref{Configuration file searching}.
+
+@item -q*
+@opindex -q
+@cindex quiet operation
+@cindex silent operation
+@cindex warnings, suppressing
+Run quietly. Don't chatter about pages converted, etc.@:,
+and report no warnings (only errors) to standard error.
+
+@item -r*
+@opindex -r
+@cindex reverse pagination
+Output pages in reverse order. By default, page 1 is output first.
+
+@item -R
+@opindex -R
+@cindex security
+@cindex shell command execution, disabling
+@cindex absolute filenames, disabling
+@cindex @file{..}-relative filenames
+Run securely. @samp{-R2} disables both shell command execution in
+@code{\special} (via @samp{`}, @pxref{Dynamic creation of graphics})
+and config files (via the @samp{E} option, @pxref{Configuration file
+commands}) and opening of any absolute or @file{..}-relative
+filenames. @samp{-R1}, the default, forbids shell escapes but allows
+absolute filenames. @samp{-R0} allows both.
+
+@item -s*
+@opindex -s
+@cindex save/restore, generating global
+Enclose the output in a global save/restore pair. This causes the file
+to not be truly conformant, and is thus not recommended, but is useful
+if you are driving a deficient printer directly and thus don't care too
+much about the portability of the output to other environments.
+
+@item -S @var{num}
+@opindex -S @var{num}
+Set the maximum number of pages in each `section'. This option is most
+commonly used with the @samp{-i} option; see its description above for
+more information.
+
+@item -t @var{papertype}
+@opindex -t @var{papertype}
+@cindex paper type
+@cindex media
+@cindex letter papertype
+@cindex legal papertype
+@cindex ledger papertype
+@cindex a4 papertype
+@cindex a3 papertype
+@cindex landscape papertype
+@cindex papersize special, and no @samp{-t}
+Set the paper type to @var{papertype}, usually defined in one of the
+configuration files, along with the appropriate PostScript code to
+select it (@pxref{Config file paper sizes}).
+@itemize @minus{}
+@item You can also specify a @var{papertype} of @samp{landscape},
+which rotates a document by 90 degrees.
+@item To rotate a document whose paper type is not the default, you
+can use the @samp{-t} option twice, once for the paper type, and once
+for @samp{landscape}.
+@item In general, you should not use any @samp{-t} option when
+using a @samp{papersize} special, which some @LaTeX{} packages (e.g.,
+@samp{hyperref}) insert.
+@item One exception is when using a nonstandard paper size that is not
+already defined in @file{config.ps}; in this case, you need to specify
+@samp{-t@tie{}unknown}.
+@item Another exception is when producing multi-page files for further
+processing; use @samp{-t@tie{}nopaper} to omit any paper size
+information in the output. (If you just have a single page document,
+you can use @samp{-E} to get pure EPSF output.)
+@end itemize
+
+@item -title @var{string}
+@opindex -title @var{str}
+@cindex title, specifying
+@cindex output title, specifying
+@cindex document title, specifying
+@findex %%Title
+Use @var{string} as the title in the generated PostScript
+(@code{%%Title}). If not specified, the default is the basename of the
+input file; for example, running @code{dvips /foo/bar.dvi} will have a
+@code{%%Title} of @samp{bar.dvi}.
+
+@item -T @var{hsize},@var{vsize}
+@opindex -T @var{hsize},@var{vsize}
+Set the paper size to (@var{hsize},@var{vsize}), a comma-separated
+pair of dimensions such as @samp{.1in,-.3cm} (@pxref{@samp{papersize}
+special}). It overrides any paper size special in the DVI file. Be
+careful, as the paper size will stick to a predefined size if there is
+one close enough. To disable this behavior, use @samp{-tunknown}.
+
+@item -u @var{psmapfile}
+@opindex -u @var{psmapfile}
+@cindex PostScript font alias file
+@cindex resident fonts, different in different printers
+Set @var{psmapfile} to be the file that dvips uses for looking up
+PostScript font aliases. If @var{psmapfile} begins with a @samp{+}
+character, then the rest of the name is used as the name of the map file,
+and the map file is appended to the list of map files (instead of replacing
+the list). In either case, if the name has no extension, then @samp{.map}
+is added at the end.
+
+@item -U*
+@opindex -U
+@cindex Xerox 4045
+Disable a PostScript virtual memory-saving optimization that stores the
+character metric information in the same string that is used to store
+the bitmap information. This is only necessary when driving the Xerox
+4045 PostScript interpreter, which has a bug that puts garbage on the
+bottom of each character. Not recommended unless you must drive this
+printer.
+
+@item -v
+@opindex -v
+Print the dvips version number and exit.
+
+@item -V*
+@opindex -V
+Download non-resident PostScript fonts as bitmaps. This requires use
+@pindex mtpk
+@pindex gsftopk
+@pindex pstopk
+of @code{mtpk} or @code{gsftopk} or @code{pstopk} or some combination
+thereof to generate the required bitmap fonts; these programs are
+supplied with Dvips. The bitmap must be put into @file{psfonts.map} as
+the downloadable file for that font. This is useful only for those
+fonts for which you do not have real outlines, being downloaded to
+printers that have no resident fonts, i.e., very rarely.
+
+
+@item -x @var{num}
+@opindex -x @var{num}
+@cindex magnification, overriding DVI
+Set the magnification ratio to @math{@var{num}/1000}. Overrides
+the magnification specified in the DVI file. Must be between 10 and
+100000. It is recommended that you use standard magstep values (1095,
+1200, 1440, 1728, 2074, 2488, 2986, and so on) to help reduce the total
+number of PK files generated. @var{num} may be a real number, not an
+integer, for increased precision.
+
+@item -X @var{num}
+@opindex -X @var{num}
+@cindex resolution
+Set the horizontal resolution in dots per inch to @var{num}.
+
+@item -y @var{num}
+@cindex magnification, vertical
+Set the magnification ratio to @math{@var{num}/1000} times the
+magnification specified in the DVI file. See
+@samp{-x} above.
+
+@item -Y @var{num}
+@opindex -Y @var{num}
+Set the vertical resolution in dots per inch to @var{num.}
+@cindex resolution
+
+@item -z*
+@opindex -z @r{for recognizing hyperdvi}
+@cindex hyperdvi extensions, enabling
+@cindex distillation, and @samp{-z}
+@cindex PDF files, option for
+@findex html @r{specials, and @samp{-z}}
+Pass @samp{html} hyperdvi specials through to the output for eventual
+distillation into PDF. This is not enabled by default to avoid
+including the header files unnecessarily, and use of temporary files in
+creating the output. @xref{Hypertext}.
+
+@item -Z*
+@opindex -Z @r{for compressing bitmap fonts}
+@cindex compressing bitmap fonts
+Compress bitmap fonts in the output file, thereby reducing the size of
+what gets downloaded. Especially useful at high resolutions or when
+very large fonts are used. May slow down printing, especially on early
+68000-based PostScript printers. Generally recommend today, and can be
+enabled in the configuration file (@pxref{Configuration file commands}).
+
+@end table
+
+
+@node Environment variables
+@section Environment variables
+
+@cindex environment variables
+
+Dvips looks for many environment variables, to define search paths and
+other things. The path variables are read as needed, after all
+configuration files are read, so they override values in the
+configuration files. (Except for @code{TEXCONFIG}, which defines where
+the configuration files themselves are found.)
+
+@xref{Path specifications,,, kpathsea, Kpathsea}, for details of
+interpretation of path and other environment variables common to all
+Kpathsea-using programs. Only the environment variables specific to
+Dvips are mentioned here.
+
+@vtable @code
+@item DVIPSDEBUG
+@vindex KPATHSEA_DEBUG
+Write the absolute path names of any configuration or map files to
+standard output, for debugging. This isn't done by default because
+these files are read even before the banner is printed. For
+voluminous additional debugging, set the environment variable
+@env{KPATHSEA_DEBUG} to @samp{-1}
+(@pxref{Debugging,,,kpathsea,Kpathsea}). (If @env{KPATHSEA_DEBUG} is
+set to any value, it automatically turns on @env{DVIPSDEBUG}.)
+
+@item DVIPSFONTS
+Default path to search for all fonts. Overrides all the font path
+config file options and other environment variables (@pxref{Supported
+file formats,,, kpathsea, Kpathsea}).
+
+@item DVIPSHEADERS
+Default path to search for PostScript header files. Overrides the @samp{H}
+config file option (@pxref{Configuration file commands}).
+
+@item DVIPSMAKEPK
+@pindex mktexpk@r{, changing name}
+Overrides @samp{mktexpk} as the name of the program to invoke to
+create missing PK fonts. You can change the arguments passed to the
+@code{mktexpk} program with the @code{MAKETEXPK} environment
+variable; @pxref{MakeTeX script arguments,,, kpathsea, Kpathsea}.
+
+@item DVIPSRC
+Specifies the name of the startup file (@pxref{Configuration file
+searching}) which is read after @file{config.ps} but before any
+printer-specific configuration files.
+
+@item DVIPSSIZES
+@cindex last-resort font scaling, with @code{DVIPSSIZES}
+Last-resort sizes for scaling of unfound fonts. Overrides the @samp{R}
+definition in config files (@pxref{Configuration file commands}).
+
+@item PRINTER
+Determine the default printer configuration file. (Dvips itself does
+not use @code{PRINTER} to determine the output destination in any way.)
+
+@item TEXCONFIG
+@cindex configuration file path
+Path to search for Dvips' @file{config.@var{printer}} configuration
+files, including the base @file{config.ps}. Using this single
+environment variable, you can override everything else. (The
+printer-specific configuration files are called @file{@var{printer}.cfg}
+on MS-DOS, but @file{config.ps} is called by that name on all
+platforms.)
+
+@item TEXPICTS
+Path to search for included graphics files. Overrides the @samp{S}
+config file option (@pxref{Configuration file commands}). If not set,
+@code{TEXINPUTS} is looked for. @xref{Supported file formats,,,
+kpathsea, Kpathsea}.
+
+@end vtable
+
+
+@node Config files
+@section Dvips configuration files
+
+@cindex configuration files
+
+This section describes in detail the Dvips-specific @file{config.*}
+device configuration files (called @file{*.cfg} on MS-DOS), which
+override the @file{texmf.cnf}
+configuration files generic to Kpathsea which Dvips also reads
+(@pxref{Config files,,, kpathsea, Kpathsea}).
+
+For information about installing these files, including a prototype file
+you can copy, @pxref{config.ps installation}.
+
+@menu
+* Configuration file searching:: Where config.* files are searched for.
+* Configuration file commands:: What can go in a config.* file.
+@end menu
+
+
+@node Configuration file searching
+@subsection Configuration file searching
+
+@cindex configuration file searching
+@cindex searching config files, order of
+
+The Dvips program loads many different configuration files, so that
+parameters can be set globally across the system, on a per-device basis,
+or individually by each user.
+
+@enumerate
+@item
+@flindex config.ps@r{, searched for}
+Dvips first reads (if it exists) @file{config.ps}; it is searched for
+along the path for Dvips configuration files, as described in
+@ref{Supported file formats,,, kpathsea, Kpathsea}.
+
+@item
+@flindex .dvipsrc@r{, searched for}
+A user-specific startup file is loaded, so individual users can override
+any options set in the global file. The environment variable
+@code{DVIPSRC}, if defined, is used as the specification of the startup
+file. If this variable is undefined, Dvips uses a platform-specific
+default name. On Unix Dvips looks for the default startup file under
+the name @file{$HOME/.dvipsrc}, which is in the user's home directory.
+On MS-DOS and MS-Windows, where users generally don't have their private
+directories, the startup file is called @file{dvips.ini} and it is
+searched for along the path for Dvips configuration files (as described
+in @ref{Supported file formats,,, kpathsea, Kpathsea}.); users are
+expected to set this path as they see fit for their taste.
+
+@item
+@opindex -P@var{printer}@r{, and config file searching}
+The command line is read and parsed: if the @samp{-P@var{device}} option
+is encountered, at that point @file{config.@var{device}} is loaded.
+Thus, the printer configuration file can override anything in the
+site-wide or user configuration file, and it can also override options
+in the command line up to the point that the @samp{-P} option was
+encountered. (On MS-DOS, the printer configuration files are called
+@file{@var{device}.cfg}, since DOS doesn't allow more than 3 characters
+after the dot in filenames.)
+
+@item
+@vindex PRINTER@r{, and config file searching}
+If no @samp{-P} option was specified, and also the @samp{-o} and
+@samp{-f} command line options were not used, Dvips checks the
+environment variable @code{PRINTER}. If it exists, then
+@file{config.@var{$PRINTER}} (@file{@var{$PRINTER}.cfg} on MS-DOS) is
+loaded (if it exists).
+
+@end enumerate
+
+Because the @file{.dvipsrc} file is read before the printer-specific
+configuration files, individual users cannot override settings in the
+latter. On the other hand, the @code{TEXCONFIG} path can be set to
+anything, so the users can always define their own printer-specific
+configuration files to be found before the system's.
+
+A few command-line options are treated specially, in that they are not
+overridden by configuration files:
+
+@table @samp
+@item -D
+As well as setting the resolution, this unsets the mode, if the mode was
+previously set from a configuration file. If @file{config.$PRINTER} is
+read, however, any @samp{D} or @samp{M} lines from there will take
+effect.
+
+@item -mode
+This overrides any mode setting (@samp{M} line) in configuration files.
+@samp{-mode} does not affect the resolution.
+
+@item -o
+This overrides any output setting (@samp{o} line) in configuration files.
+
+@end table
+
+The purpose of these special cases is to (1) minimize the chance of
+having a mismatched mode and resolution (which @samp{mktexpk} cannot
+resolve), and (2) let command-line options override config files where
+possible.
+
+
+@node Configuration file commands
+@subsection Configuration file commands
+
+@cindex configuration file options
+@cindex Dvips configuration file options
+
+Most of the configuration file commands are similar to corresponding
+command line options, but there are a few exceptions. When they are the
+same, we omit the description here.
+
+As with command line options, many may be turned off by suffixing the
+letter with a zero (@samp{0}).
+
+@cindex comments, in configuration files
+@cindex continuation lines, not supported
+Within a configuration file, empty lines, and lines starting with a
+space, asterisk, equal sign, percent sign, or pound sign are ignored.
+There is no provision for continuation lines.
+
+@table @samp
+@item @@ @var{name hsize vsize}
+@opindex @@ @r{config command (define paper sizes)}
+Define paper sizes. @xref{Config file paper sizes}.
+
+@item a*
+@opindex a @r{config command (conserve memory)}
+Memory conservation. Same as @samp{-a}, @pxref{Option details}.
+
+@item b @var{#copies}
+@opindex b @r{config command (#copies)}
+Multiple copies. Same as @samp{-b}, @pxref{Option details}.
+
+@item bitmapfontenc @var{option}
+@opindex bitmapfontenc @r{config command (bitmap font encoding)}
+Turns bitmap font encoding to @samp{off}, @samp{on} (no warnings
+for missing bitmap font encodings), or @samp{strict} (with warnings
+for missing bitmap font encodings).
+
+@item c @var{filename}
+@opindex c @r{config command (include another config file)}
+Include @var{filename} as an additional configuration file, read
+immediately.
+
+@item D @var{dpi}
+@opindex D @r{config command (dpi)}
+Output resolution. Same as @samp{-D}, @pxref{Option details}.
+
+@item e @var{num}
+@opindex e @r{config command (maxdrift)}
+Max drift. Same as @samp{-e}, @pxref{Option details}.
+
+@item E @var{command}
+@opindex E @r{config command (shell escape)}
+@findex system @r{in config file}
+@cindex datestamp, in output
+@cindex shell escape, in config file
+Executes the command listed with @code{system}(3); can be used to get
+the current date into a header file for inclusion, for instance.
+Possibly dangerous; this may be disabled, in which case a warning will
+be printed if the option is used (and warnings are not suppressed).
+
+@item f*
+@itemx F
+@opindex f @r{config command (filter)}
+@opindex F @r{config command (filter)}
+Run as a filter. Same as @samp{-f}, @pxref{Option details}.
+
+@item G*
+@opindex G @r{config command (character shifting)}
+Shift low-numbered characters; obsolete. Same as @samp{-G},
+@pxref{Option details}.
+
+@item h @var{header}
+@opindex h @r{config command (download additional header)}
+Prepend @var{header} to output. Same as @samp{h-}, @pxref{Option details}.
+
+@item H @var{path}
+@opindex H @r{config command (PostScript header path)}
+@cindex header path, defining
+@vindex DVIPSHEADERS@r{, overrides} H
+Use @var{path} to search for PostScript header files. The environment
+variable @code{DVIPSHEADERS} overrides this.
+
+@item i @var{n}
+@opindex i @r{config command (pages/section)}
+Make multiple output files. Same as @samp{-i -S @var{n}}, @pxref{Option
+details}.
+
+@item j*
+@opindex j @r{config command (partial font downloading)}
+Partially download Type 1 fonts. Same as @samp{-j}, @pxref{Option details}.
+
+@item K*
+@opindex K @r{config command (comment removal)}
+Remove comments from included PostScript files. Same as @samp{-K},
+@pxref{Option details}.
+
+@item L*
+@opindex L @r{config command (last paper size wins)}
+If zero, the first paper size specified is effective, else the last.
+Same as @samp{-L}, @pxref{Option details}.
+
+@item m @var{num}
+@opindex m @r{config command (available memory)}
+@cindex memory available
+@cindex printer memory
+Declare @var{num} as the memory available for fonts and strings in the
+printer. The compile-time default is 180000, but this is typically
+overridden by @file{config.ps} or other configuration files. This
+value must be accurate if memory conservation and document splitting
+is to work correctly. To determine this value, send the following
+file to the printer:
+
+@example
+%! Hey, we're PostScript
+/Times-Roman findfont 30 scalefont setfont 144 432 moveto
+vmstatus exch sub 40 string cvs show pop showpage
+@end example
+
+@noindent
+The number printed by this file is the total memory free; it is usually
+best to tell Dvips that the printer has slightly less memory, because
+many programs download permanent macros that can reduce the memory in
+the printer. Some systems or printers can dynamically increase the
+memory available to a PostScript interpreter, in which case this file
+might return a ridiculously low number; for example, the NeXT computer
+and Ghostscript. In these cases, a value of, say, 10 million is
+likely fine.
+
+To go all out: If @var{num} is zero or negative, Dvips sets the
+available memory to a very large number (the maximum integer value in
+C), the idea being that output is not to a printer and thus no
+splitting of the output is desirable. The Dvips config file
+@file{config.maxmem} is provided to do this conveniently, namely with
+@samp{dvips -Pmaxmem}.
+
+@item M @var{mode}
+@opindex M @r{config command (mf mode)}
+Metafont mode. Same as @samp{-mode}, @pxref{Option details}.
+
+@item N*
+@opindex N @r{ config command (disable EPS)}
+Disable structured comments. Beware: This also turns off displaying
+page numbers or changing to specific pagenumbers in PostScript viewers.
+Same as @samp{-N}, @pxref{Option details}.
+
+@item o @var{name}
+@opindex o @r{config command (output destination)}
+@cindex output file, setting
+Send output to @var{name}. Same as @samp{-o}, @pxref{Option details}.
+In the file @file{config.foo}, a setting like this is probably
+appropriate:
+@example
+o |lpr -Pfoo
+@end example
+The MS-DOS version will emulate spooling to @code{lpr} by printing to
+the local printer device @file{PRN} if it doesn't find an executable
+program by that name in the current directory or along the @code{PATH}.
+
+@item O @var{xoff},@var{yoff}
+@opindex O @r{config command (page offsets)}
+Origin offset. Same as @samp{-O}, @pxref{Option details}.
+
+@item p @r{[+]}@var{name}
+@opindex p @r{config command (font aliases)}
+@cindex PostScript font alias file
+@cindex resident fonts, different in different printers
+@kindex +@var{psmapfile}
+Examine @var{name} for PostScript font aliases. Default is
+@file{psfonts.map}. This option allows you to specify different resident
+fonts that different printers may have. If @var{name} starts with a
+@samp{+} character, then the rest of the name (after any leading spaces)
+is used as an additional map file; thus, it is possible to have local
+map files pointed to by local configuration files that append to the
+global map file. This can be used for font families.
+
+@item P @var{path}
+@opindex P @r{config command (PK path)}
+@vindex PKFONTS@r{, overrides} P
+@vindex TEXPKS@r{, overrides} P
+@vindex GLYPHFONTS@r{, overrides} P
+@vindex TEXFONTS@r{, overrides} P
+Use @var{path} to search for bitmap PK font files is @var{path}. The
+@code{PKFONTS}, @code{TEXPKS}, @code{GLYPHFONTS}, and @code{TEXFONTS}
+environment variables override this. @xref{Supported file formats,,,
+kpathsea, Kpathsea}.
+
+@item q*
+@itemx Q
+@opindex q @r{config command (quiet)}
+@opindex Q @r{config command (quiet)}
+Run quietly. Same as @samp{-q}, @pxref{Option details}.
+
+@item r*
+@opindex r @r{config command (page reversal)}
+Page reversal. Same as @samp{-r}, @pxref{Option details}.
+
+@item R @var{num1 num2 @dots{}}
+@opindex R @r{config command (fallback resolution)}
+@cindex fallback resolutions
+@cindex default resolutions
+@cindex last-resort scaling, with @code{R}
+Define the list of default resolutions for PK fonts. If a font size
+actually used in a document is not available and cannot be created,
+Dvips will scale the font found at the closest of these resolutions to
+the requested size, using PostScript scaling. The resulting output may
+be ugly, and thus a warning is issued. To turn this last-resort scaling
+off, use a line with just the @samp{R} and no numbers.
+
+The given numbers must be sorted in increasing order; any number smaller
+than the preceding one is ignored. This is because it is better to
+scale a font up than down; scaling down can obliterate small features in
+the character shape.
+
+@vindex DVIPSSIZES@r{, overrides} R
+@vindex TEXSIZES@r{, overrides} R
+The environment and config file values @samp{DVIPSSIZES} or
+@samp{TEXSIZES} override this configuration file setting.
+
+@vindex default_texsizes @r{Make variable}
+If no @samp{R} settings or environment variables are specified, a list
+compiled in during installation is used. This default list is defined by
+the Makefile variable @samp{default_texsizes}, defined in the file
+@file{make/paths.make}.
+
+@item s*
+@opindex s @r{config command (global save/restore)}
+Output global save/restore. Same as @samp{-s}, @pxref{Option details}.
+
+@item S @var{path}
+@opindex S @r{config command (pict path)}
+@vindex TEXPICTS@r{, overrides} S
+@vindex TEXINPUTS@r{, overrides} S
+Use @var{path} to search for special illustrations (Encapsulated
+PostScript files or psfiles). The @code{TEXPICTS} and then
+@code{TEXINPUTS} environment variables override this.
+
+@item T @var{path}
+@opindex T @r{config command (TFM path)}
+@vindex TFMFONTS@r{, overrides} T
+@vindex TEXFONTS@r{, overrides} T
+Use @var{path} to search for TFM files. The @code{TFMFONTS} and then
+@code{TEXFONTS} environment variables overrides this. This path is used
+for resident fonts and fonts that can't otherwise be found.
+
+@item U*
+@opindex U @r{config command (Xerox 4045)}
+Work around bug in Xerox 4045 printer. Same as @samp{-U}, @pxref{Option
+details}.
+
+@item V @var{path}
+@opindex V @r{config command (vf path)}
+@cindex virtual font path
+@cindex device dependency, and virtual fonts
+Use @var{path} to search for virtual font files. This may be
+device-dependent if you use virtual fonts to simulate actual fonts on
+different devices.
+
+@item W @r{[@var{string}]}
+@opindex W @r{config command (emit warning)}
+@cindex warning messages, defining
+If @var{string} is supplied, write it to standard error after reading
+all the configuration files; with no @var{string}, cancel any previous
+@samp{W} message. This is useful in the default configuration file to
+remind users to specify a printer, for instance, or to notify users
+about special characteristics of a particular printer.
+
+@item X @var{num}
+@opindex X @r{config command (horizontal resolution)}
+Horizontal resolution. Same as @samp{-X} (@pxref{Option details}).
+
+@item Y @var{num}
+@opindex Y @r{config command (vertical resolution)}
+Vertical resolution. Same as @samp{-Y} (@pxref{Option details}).
+
+@item Z*
+@opindex Z @r{config command (compress fonts)}
+Compress bitmap fonts. Same as @samp{-Z} (@pxref{Option details}).
+
+@item z*
+@opindex z @r{config command (secure mode)}
+Disables execution of system commands, like @samp{-R}
+(@pxref{Option details}). If @samp{-R} is specified
+on the command line, that takes precedence.
+
+@end table
+
+
+@node Paper size and landscape
+@chapter Paper size and landscape orientation
+
+@cindex paper size, general
+
+Most @TeX{} documents at a particular site are designed to use the
+local standard paper size (letter size in the United States, A4
+elsewhere). The Dvips program can be customized either sitewide or
+for a particular printer.
+
+@cindex landscape orientation, defined
+@cindex portrait orientation, defined
+On the other hand, plenty of documents are designed for other paper
+sizes. For instance, you may want to design a document that has the
+long edge of the paper horizontal. This can be useful when
+typesetting booklets, brochures, complex tables, or many other
+documents. This type of paper orientation is called @dfn{landscape}
+orientation (the default orientation is called @dfn{portrait}).
+Alternatively, a document might be designed for ledger or A3 paper.
+
+Since the intended paper size in these cases is a document design
+decision, not a printing decision, such information should be given in
+the @TeX{} file and not on the Dvips command line. For this reason,
+Dvips supports a @samp{papersize} special. It is hoped that this
+special will become standard over time for @TeX{} previewers and other
+printer drivers.
+
+Some @LaTeX{} packages, e.g., @samp{hyperref.sty}, write a
+@samp{papersize} special into the DVI file. In this case, you need
+not and should not attempt to override it manually.
+
+@menu
+* @samp{papersize} special:: Specifying the paper size in TeX.
+* Config file paper sizes:: Specifying printer- and site-specific sizes.
+* Paper trays:: Changing paper trays automatically.
+@end menu
+
+
+@node @samp{papersize} special
+@section @samp{papersize} special
+
+@findex papersize @r{special}
+
+The format of the @samp{papersize} special is
+
+@example
+\special@{papersize=@var{width},@var{height}@}
+@end example
+
+@noindent
+@var{width} is the horizontal size of the page, and @var{height} is the
+vertical size. The dimensions supported are the same as for @TeX{};
+namely, in (inches), cm (centimeters), mm (millimeters), pt (points), sp
+(scaled points), bp (big points, the same as the default PostScript
+unit), pc (picas), dd (didot points), and cc (ciceros).
+
+@findex landscape@r{, as @code{\special}}
+For a US letter size landscape document, the @samp{papersize} would be:
+@example
+\special@{papersize=11in,8.5in@}
+@end example
+
+@noindent
+An alternate specification of @code{landscape}:
+@example
+\special@{landscape@}
+@end example
+
+@noindent
+This is supported for backward compatibility, but it is hoped that
+reventually the @samp{papersize} comment will dominate.
+
+Of course, such a @code{\special} only informs Dvips of the desired
+paper size; you must also adjust @code{\hsize} and @code{\vsize} in your
+@TeX{} document typeset to those dimensions.
+
+@findex unknown@r{, paper format for @samp{-t}}
+When using the @samp{papersize} special, you generally should not also
+specify @code{-t} on the command line (@pxref{Option details}). The
+exception is when using a nonstandard paper size that isn't
+predefined; in this case, use @code{-t@tie{}unknown}.
+
+The @samp{papersize} special must occur somewhere on the first page of
+the document. Some packages, notably @samp{hyperref}, insert this special.
+
+By default, if a DVI file contains multiple @samp{papersize} specials,
+the last one wins; this is also the behavior of the @code{dvipdfmx}
+driver. If the @code{-L0} command line option or @code{L0} config
+file command is specified, the first special wins---this was the
+behavior of Dvips prior to the 2017 release.
+
+
+@node Config file paper sizes
+@section Configuration file paper size command
+
+@cindex paper size configuration file command
+@cindex configuration file paper size command
+
+The @samp{@@} command in a configuration file sets the paper size
+defaults and options. The first @samp{@@} command defines the default
+paper size. It has three possible parameters:
+
+@example
+@@ @r{[}@var{name} @r{[}@var{hsize} @var{vsize}@r{]]}
+@end example
+
+If @samp{@@} is specified on a line by itself, with no parameters, it
+instructs Dvips to discard all previous paper size information (possibly
+from another configuration file).
+
+If three parameters are given, with the first parameter being a name and
+the second and third being a dimension (as in @samp{8.5in} or
+@samp{3.2cc}, just like in the @samp{papersize} special), then the
+option is interpreted as starting a new paper size description, where
+@var{name} is the name and @var{hsize} and @var{vsize} define the
+horizontal and vertical size of the sheet of paper, respectively. For
+example:
+
+@example
+@@ letterSize 8.5in 11in
+@end example
+
+If both @var{hsize} and @var{vsize} are zero (you must still specify
+units!)@: then any page size will match. If the @samp{@@} character is
+immediately followed by a @samp{+} sign, then the remainder of the line
+(after skipping any leading blanks) is treated as PostScript code to
+send to the printer, presumably to select that particular paper size:
+
+@example
+@@ letter 8.5in 11in
+@@+ %%BeginPaperSize: Letter
+@@+ letter
+@@+ %%EndPaperSize
+@end example
+
+After all that, if the first character of the line is an exclamation
+point, then the line is put in the initial comments section of the final
+output file; else, it is put in the setup section of the output file.
+For example:
+
+@example
+@@ legal 8.5in 14in
+@@+ ! %%DocumentPaperSizes: Legal
+@@+ %%BeginPaperSize: Legal
+@@+ legal
+@@+ %%EndPaperSize
+@end example
+
+When Dvips has a paper format name given on the command line, it looks
+for a match by the @var{name}; when it has a @samp{papersize} special,
+it looks for a match by dimensions. The best match found (from the
+paper size information in the configuration file) is used. The
+dimensions must match within 5bp.
+
+If nothing matches, a warning is printed and the first paper size with
+zero dimensions is used; this should be the @code{unknown} paper size
+definition mentioned below, resulting in the actual dimensions being
+used.
+
+Landscape mode for all paper sizes is automatically supported.
+
+If your printer has a command to set a special paper size, then give
+dimensions of @samp{0in 0in}; the PostScript code that sets the paper
+size can refer to the dimensions the user requested as @samp{hsize}
+and @samp{vsize}; these will be macros defined in the PostScript that
+return the requested size in default PostScript units. Also, some
+printers want @samp{BeginPaperSize} comments and paper size setting
+commands; others (such as the NeXT) want @samp{PaperSize} comments and
+they will handle setting the paper size. So paper size entries should
+typically specify both.
+
+@findex unknown@r{, paper format for @samp{-t}}
+When using a paper size that is not already defined in
+@file{config.ps}, you probably want to say @samp{-t@tie{}unknown} on
+the command line; the @code{unknown} paper size definition in
+@file{config.ps} has the requisite PostScript incantation to set the
+PostScript page size, as just described.
+
+@findex nopaper@r{, paper format for @samp{-t}}
+If you want no paper size information in the output at all, use
+@samp{-t@tie{}nopaper}. This is useful with multi-page output that
+will be processed further. If you just have a single page document,
+you can use @samp{-E} to get pure EPSF output.
+
+@flindex mkdvipspapers
+The Perl 5 script @file{contrib/configs/mkdvipspapers} in the
+distribution directory may help in determining appropriate paper size
+definitions.
+
+@flindex config.ps @r{paper sizes}
+@findex letter @r{paper size}
+@findex a4 @r{paper size}
+Notwithstanding the above, the default @code{letter} and @code{a4}
+paper size definitions in @file{config.ps} execute the
+@code{setpagedevice} operator if it exists (it was defined in
+PostScript Level@tie{}2), or the @samp{letter} or @samp{a4} operator
+if they exist (they are nonstandard and thus perhaps cause failures on
+certain (unknown) printers). Not executing any page size definition
+at all confuses PostScript conversion programs such as
+@command{ps2pdf}, so we want to execute one if we can.
+
+@findex letterSize @r{paper size}
+@findex A4size @r{paper size}
+The @code{letterSize} and @code{A4Size} paper size definitions are now
+synonyms for @code{letter} and @code{a4}.
+
+
+@node Paper trays
+@section Paper trays
+
+@cindex paper trays
+@cindex dual paper trays
+@cindex multiple paper trays
+@cindex HP4Si printer and paper trays
+
+@findex bop-hook
+Some printers, such as the Hewlett-Packard HP4si, have multiple paper
+trays. You can set up Dvips to take advantage of this using the
+@code{bop-hook} PostScript variable (@pxref{PostScript hooks}).
+
+@cindex letterhead tray
+For example, suppose you have an alternate tray stocked with letterhead
+paper; the usual tray has the usual paper. You have a document where
+you want the first page printed on letterhead, and the remaining pages
+on the usual paper. You can create a header file, say
+@file{firstletterhead.PS}, with the following (PostScript) code
+(@code{bop-hook} is passed the current physical page number, which
+starts at zero):
+
+@example
+/bop-hook @{ dup 0 eq @{ @var{alternatetray} @} @{ @var{normaltray} @} ifelse @} def
+@end example
+
+@noindent where @var{alternatetray} and @var{normaltray} are the appropriate
+commands to select the paper trays. On the 4SI, @var{alternatetray} is
+@samp{statusdict begin 1 setpapertray end} and @var{normaltray} is
+@samp{statusdict begin 0 setpapertray end}.
+
+Then, include the file with either
+@itemize @bullet
+@item the @samp{-h} command-line option (@pxref{Option details}); or
+
+@item the @samp{h} config file option (@pxref{Configuration file
+commands}); or
+
+@item @samp{\special@{header=@var{file}@}} in your @TeX{} document
+(@pxref{Including headers from TeX,, Including headers from @TeX{}}).
+
+@end itemize
+
+
+@node Interaction with PostScript
+@chapter Interaction with PostScript
+
+@cindex interaction with PostScript
+@cindex PostScript interaction
+
+Dvips supports inclusion of PostScript figure files (e.g., Encapsulated
+PostScript), downloading other header files (e.g., fonts), including
+literal PostScript code, and hypertext.
+
+@menu
+* PostScript figures:: Including an Encapsulated PostScript figure.
+* Header files:: Downloading extra definitions.
+* Literal PS:: Writing literal PostScript code.
+* Hypertext:: Producing HyperPostScript to make PDF.
+@end menu
+
+
+@node PostScript figures
+@section PostScript figures
+
+Scaling and including PostScript graphics is a breeze---if the PostScript
+file is correctly formed. Even if it is not, however, the file can usually
+be accommodated with just a little more work.
+
+@menu
+* Bounding box:: The %%BoundingBox EPS comment.
+* \includegraphics:: The LaTeX \includegraphics macro.
+* EPSF macros:: Including the file in TeX.
+* psfile special:: The basic special.
+* Dynamic creation of graphics:: Handling compressed or generated figures.
+* Fonts in figures:: The %*Font comment.
+@end menu
+
+
+@node Bounding box
+@subsection The bounding box comment
+
+@cindex bounding box, comment for
+
+The most important feature of a good PostScript file from the standpoint
+of including it in another document is an accurate bounding box comment.
+Every well-formed PostScript file has a comment describing where on the
+page the graphic is located, and how big that graphic is.
+
+@cindex big points
+@cindex PostScript units
+@cindex bounding box, defined
+This information is given as the lower left and upper right corners of
+the box just enclosing the graphic, and is thus referred to as the
+@dfn{bounding box}. These coordinates are given in the default
+PostScript units (there are precisely 72 PostScript units to the inch,
+like @TeX{} big points) with respect to the lower left corner of the
+sheet of paper.
+
+@findex %%BoundingBox
+To see if a PostScript file has a bounding box comment, just look at the
+first few lines of the file. PostScript files are standard ASCII, so
+you can use any text editor to do this. If within the first few dozen
+lines there is a line like
+
+@example
+%%BoundingBox: 25 50 400 300
+@end example
+
+@noindent
+(with any reasonable numbers), chances are very good that the file is
+Encapsulated PostScript and will work easily with Dvips. If the file
+contains instead a line like
+
+@findex atend@r{, bounding box specification}
+@findex (atend)@r{, bounding box specification}
+@example
+%%BoundingBox: (atend)
+@end example
+
+@noindent
+the file is still probably Encapsulated PostScript, but the bounding box
+is given at the end of the file. Dvips needs it at the beginning. You
+can move it with that same text editor, or a simple script. (The
+bounding box is given in this way when the program that generated the
+PostScript couldn't know the size in advance, or was too lazy to compute
+it.)
+
+@pindex bbfig
+@cindex bounding box, determining
+If the document lacks a @samp{%%BoundingBox:} altogether, you can
+determine one in a couple of ways. One is to use the @samp{bbfig}
+program distributed with Dvips in the @file{contrib} directory. This can
+usually find the correct bounding box automatically; it works best with
+Ghostscript.
+
+@vindex 612 792 @r{bounding box size}
+If the comment looks like this:
+@example
+%%BoundingBox: 0 0 612 792
+@end example
+
+@noindent
+the graphic claims to take up an entire sheet of paper. This is
+usually a symptom of a bug in the program that generated it.
+
+The other is to do it yourself: print the file. Now, take a ruler, and
+make the following measurements (in PostScript units, so measure in
+inches and multiply by 72): From the left edge of the paper to the
+leftmost mark on the paper is @var{llx}, the first number. From the
+bottom edge of the paper to the bottommost mark on the paper is
+@var{lly}, the second number. From the left edge of the paper to the
+rightmost mark on the paper is @var{urx}, the third number. The fourth
+and final number, @var{ury}, is the distance from the bottom of the page
+to the uppermost mark on the paper.
+
+Once you have the numbers, add a comment of the following form as the
+second line of the document. (The first line should already be a line
+starting with the two characters @samp{%!}; if it is not, the file
+probably isn't PostScript.)
+
+@example
+%%BoundingBox: @var{llx} @var{lly} @var{urx} @var{ury}
+@end example
+
+@noindent
+Or, if you don't want to modify the file, you can simply write these
+numbers down in a convenient place and give them in your @TeX{} document
+when you import the graphic, as described in the next section.
+
+If the document does not have such a bounding box, or if the bounding
+box is given at the end of the document, or the bounding box is wrong,
+please complain to the authors of the software package that generated
+the file.
+
+
+@node \includegraphics
+@subsection The \includegraphics macro for @LaTeX{}
+
+@cindex \includegraphics @LaTeX{} macro
+@cindex macros for epsf inclusion
+
+Once the figure file has a bounding box comment (see the previous
+section) you are ready to import the graphic into a La@TeX{}
+document. For @LaTeX{}2e, you can use the epsf, graphics or graphicx
+packages, but the last is recommended---it has the most flexible
+syntax, and is briefly described here. Further information can be
+found in @file{grfguide} or @file{epslatex}, which should be included
+in your @LaTeX{} distribution in DVI, PDF, or other formats. (If you
+are still using La@TeX{} 2.09, use epsf.sty).
+
+Just put the following command into your preamble:
+
+@example
+\usepackage[dvips]@{graphicx@}
+@end example
+
+Depending on your system, a suitable driver setup may already be
+present, so that @LaTeX{} automatically produces DVI files suitable for
+Dvips. In this case you can leave out the @samp{[dvips]} parameter.
+
+Now, at the point you want to include a file @file{foo.eps}, enter a
+line such as:
+
+@example
+\includegraphics@{foo.eps@}
+@end example
+
+However, it is usually best to omit the file extension and only use
+
+@example
+\includegraphics@{foo@}
+@end example
+
+@noindent because then you can process the same LaTeX file with
+different @TeX{} engines or DVI converters if you also provide
+suitable graphics files for them, e.g., @file{foo.pdf} or
+@file{foo.png}.
+
+@cindex bounding box, supplying to @TeX{}
+The \includegraphics command has many options, specified in
+@samp{key=value} syntax, to allow you to resize, rotate or trim the
+included graphic---see @file{grfguide} or @file{epslatex}. If your
+file does not have a bounding box comment, you can supply the numbers
+as determined in the previous section, in the same order they would
+have been in a normal bounding box comment:
+
+@example
+\includegraphics[bb=100 100 500 500]@{foo.ps@}
+@end example
+
+@noindent
+Now, save your changes and run @LaTeX{} and Dvips; the output should
+have your graphic positioned at precisely the point you indicated,
+occupying the proper amount of space.
+
+PostScript graphics have their origin in the lower left
+corner. Therefore, in @TeX{}, a graphic will occupy a box that extends
+far above the line where it is put in, but has depth zero below it.
+Combining @samp{\includegraphics} with @samp{\parbox} commands or
+minipages can sometimes be confusing when this is not taken into
+account.
+
+
+@node EPSF macros
+@subsection Using the EPSF macros
+
+@cindex EPSF macros
+@cindex macros for epsf inclusion
+
+If you are using @LaTeX{}2e, use the @samp{graphics} or @samp{graphicx}
+package. @xref{\includegraphics}.
+
+If you are using plain @TeX{} or La@TeX{} 2.09, you need @file{epsf.tex}
+(for plain @TeX{}) and @file{epsf.sty} (for La@TeX{}). For plain
+@TeX{}, add a line like this near the top of your input file:
+
+@flindex epsf.tex
+@example
+\input epsf
+@end example
+
+@noindent
+@flindex epsf.sty
+If you are using @LaTeX{} 2.09, add the @samp{epsf} style option, as in:
+
+@example
+\documentstyle[12pt,epsf]@{article@}
+@end example
+
+@noindent
+In any case, the above only needs to be done once, no matter how many
+figures you plan to include.
+
+Now, at the point you want to include a file, enter a line such as:
+
+@example
+\epsffile@{foo.eps@}
+@end example
+
+@findex \leavevmode
+@cindex bounding box, supplying to @TeX{}
+If you are using @LaTeX{}, you may need to add @code{\leavevmode}
+immediately before the @code{\epsffile} command to get certain
+environments to work correctly. If your file does not have a bounding
+box comment, you can supply the numbers as determined in the previous
+section, in the same order they would have been in a normal bounding box
+comment:
+
+@example
+\epsffile[100 100 500 500]@{foo.ps@}
+@end example
+
+@noindent
+Now, save your changes and run @TeX{} and Dvips; the output should have
+your graphic positioned at precisely the point you indicated, occupying
+the proper amount of space.
+
+@findex \epsffile @r{macro}
+@cindex figures, natural size
+The @code{\epsffile} macro typesets the figure as a @TeX{} @code{\vbox}
+at the point of the page that the command is executed. By default, the
+graphic will have its `natural' width (namely, the width of its bounding
+box). The @TeX{} box will have depth zero and its natural height. By
+default, the graphic will be scaled by any DVI magnification in effect,
+just as is everything else in your document. See the next section for
+more information on scaling.
+
+@vindex \epsfverbosetrue
+@cindex verbose EPSF processing
+If you want @TeX{} to report the size of the figure as a message on your
+terminal when it processes each figure, give the command:
+
+@example
+\epsfverbosetrue
+@end example
+
+@menu
+* EPSF scaling::
+* EPSF clipping::
+@end menu
+
+
+@node EPSF scaling
+@subsubsection EPSF scaling
+
+@cindex scaling of figures
+@cindex figures, scaling
+
+Usually, you will want to scale an EPSF figure to some size appropriate
+for your document, since its natural size is determined by the creator
+of the EPS file.
+
+The best way to do this is to assign the desired size to the @TeX{}
+@code{\epsfxsize} or @code{\epsfysize} variables, whichever is more
+convenient for you. That is, put
+
+@vindex \epsfxsize
+@example
+\epsfxsize=@var{dimen}
+@end example
+
+@noindent
+right before the call to @code{\epsffile}. Then the width of the @TeX{}
+box will be @var{dimen} and its height will be scaled proportionately.
+Similarly, you can set the vertical size with
+
+@vindex \epsfysize
+@example
+\epsfysize=@var{dimen}
+@end example
+
+@noindent
+in which case the height will be set and the width scaled
+proportionally.
+
+If you set both, both will be honored, but the aspect ratio of the
+included graphic may necessarily be distorted, i.e., its contents
+stretched in one direction or the other.
+
+@findex \epsfsize
+You can resize graphics in a more general way by redefining the
+@code{\epsfsize} macro. @code{\epsffile} calls this with two
+parameters: the natural horizontal and vertical sizes of the PostScript
+graphic. @code{\epsfsize} must expand to the desired horizontal size,
+that is, the width of the @code{\vbox}. Schematically:
+
+@example
+\def\epsfsize#1#2@{@var{body}@}
+@end example
+
+Some useful definitions of @var{body}:
+
+@table @samp
+@item \epsfxsize
+This definition (the default) enables the default features listed above,
+by setting @code{\epsfxsize} to the same value it had before the macro
+was called.
+
+@item #1
+Force the natural size by returning the first parameter (the original
+width).
+
+@item 0pt
+A special case, equivalent to @samp{#1}.
+
+@item 0.5#1
+Scale to half the natural size.
+
+@item \hsize
+Scale to the current @code{\hsize}. (In @LaTeX{}, use @code{\textwidth}
+instead of @code{\hsize}.)
+
+@item \ifnum#1>\hsize\hsize\else#1\fi
+If the natural width is greater than the current @code{\hsize}, scale to
+@code{\hsize}, otherwise use the natural width.
+
+@end table
+
+@cindex DVI magnification
+@cindex magnification, DVI
+@vindex \magnification
+For compatibility with other PostScript drivers, it is possible to turn
+off the default scaling of included figures by the DVI magnification
+with the following @TeX{} command:
+
+@vindex /magscale
+@example
+\special@{! /magscale false def@}
+@end example
+
+@noindent
+Use of this command is not recommended because it will make the
+@code{\epsffile} graphics the ``wrong'' size if global magnification is
+being used, and it will cause any PostScript graphics to appear
+improperly scaled and out of position if a DVI to DVI program is used to
+scale or otherwise modify the document.
+
+@findex bop-hook
+DVI magnification is not applied to any output from code you write in
+@samp{bop-hook} or its ilk (@pxref{PostScript hooks}),
+
+
+@node EPSF clipping
+@subsubsection EPSF clipping
+
+@cindex clipping of EPSF
+@cindex bounding box, inaccurate
+@cindex text in figures, chopped off
+@cindex lines in figures, wrong width
+
+By default, clipping is disabled for included EPSF images. This is
+because clipping to the bounding box dimensions often cuts off a
+small portion of the figure, due to slightly inaccurate bounding
+box arguments. The problem might be subtle; lines around the boundary
+of the image might be half their intended width, or the tops or
+bottoms of some text annotations might be sliced off. If you want to
+turn clipping on, just use the command
+
+@example
+\epsfclipon
+@end example
+
+@noindent
+and to turn clipping back off, use
+
+@example
+\epsfclipoff
+@end example
+
+
+@node psfile special
+@subsection @samp{psfile} special
+
+@findex psfile @r{special}
+
+The basic special for file inclusion is as follows:
+
+@example
+\special@{psfile=@var{filename}.ps @r{[}@var{key}=@var{value}@r{]} @dots{} @}
+@end example
+
+@noindent
+This downloads the PostScript file @file{@var{filename}.ps} such that
+the current point will be the origin of the PostScript coordinate
+system. The optional @var{key}@t{=}@var{value} assignments allow you to
+specify transformations on the PostScript.
+
+The possible @var{key}s are:
+
+@table @samp
+@item hoffset
+@opindex hoffset @r{(@samp{psfile} special option)}
+The horizontal offset (default 0).
+
+@item voffset
+@opindex voffset @r{(@samp{psfile} special option)}
+The vertical offset (default 0).
+
+@item hsize
+@opindex hsize @r{(@samp{psfile} special option)}
+The horizontal clipping size (default 612).
+
+@item vsize
+@opindex vsize @r{(@samp{psfile} special option)}
+The vertical clipping size (default 792).
+
+@item hscale
+@opindex hscale @r{(@samp{psfile} special option)}
+The horizontal scaling factor, as a percentage (default 100).
+
+@item vscale
+@opindex vscale @r{(@samp{psfile} special option)}
+The vertical scaling factor, as a percentage (default 100).
+
+@item angle
+@opindex angle @r{(@samp{psfile} special option)}
+The rotation, in degrees (default 0).
+
+@item clip
+@opindex clip @r{(@samp{psfile} special option)}
+Enable clipping to the bounding box (default disabled).
+
+@item llx, lly, urx, ury
+@opindex llx @r{(@samp{psfile} special option)}
+@opindex lly @r{(@samp{psfile} special option)}
+@opindex urx @r{(@samp{psfile} special option)}
+@opindex ury @r{(@samp{psfile} special option)}
+Bounding box of the included image, just as in a @code{%%BoundingBox}
+comment. Values are in big points, and may be fractional.
+
+@item rhi, rwi
+@opindex rhi @r{(@samp{psfile} special option)}
+@opindex rwi @r{(@samp{psfile} special option)}
+Desired width and height of the resulting figure in the output, in
+tenths of big points (720 to the inch); may be fractional.
+
+If both @code{rwi} and @code{rhi} are nonzero, the picture is scaled,
+possibly losing aspect ratio. If only one of @code{rwi} and
+@code{rhi} is nonzero, the picture is scaled, preserving aspect ratio.
+
+@end table
+
+The offsets and sizes are given in PostScript units (big points).
+Thus, for example:
+
+@example
+\special@{psfile=foo.ps hoffset=72 hscale=90 vscale=90@}
+@end example
+
+@noindent
+will shift the graphics produced by file @file{foo.ps} right by one inch
+and will draw it at 0.9 times normal size. Offsets are given relative
+to the point of the special command, and are unaffected by scaling or
+rotation. Rotation is counterclockwise about the origin. The order of
+operations is to rotate the figure, scale it, then offset it.
+
+For compatibility with older PostScript drivers, it is possible to change
+the units that @samp{hscale} and @samp{vscale} are given in. This can be
+done by redefining @samp{@@scaleunit}
+@vindex scaleunit
+in @samp{SDict}
+@vindex SDict
+by a @TeX{} command such as
+
+@example
+\special@{! /@@scaleunit 1 def@}
+@end example
+
+@noindent
+The @samp{@@scaleunit} variable, which is by default 100, is what
+@samp{hscale} and @samp{vscale} are divided by to yield an absolute
+scale factor.
+
+
+@node Dynamic creation of graphics
+@subsection Dynamic creation of PostScript graphics files
+
+@cindex dynamic creation of graphics
+@cindex compressed PostScript
+@cindex uncompressing PostScript
+
+PostScript is an excellent page description language---but it does tend
+to be rather verbose. Compressing PostScript graphics files can reduce
+them by factor of five or more. For this reason, if the name of an
+included PostScript file ends with @file{.Z} or @file{.gz}, Dvips
+automatically runs @samp{gzip -d}. For example:
+
+@example
+\epsffile[72 72 540 720]@{foo.ps.gz@}
+@end example
+
+@noindent
+Since the results of such a command are not accessible to @TeX{}, if you
+use this facility with the @file{epsf} macros, you need to supply the
+bounding box parameter yourself, as shown.
+
+More generally, if the filename parameter to one of the graphics
+inclusion techniques starts with a left quote (@samp{`}), the parameter
+is instead interpreted as a command to execute that will send the actual
+file to standard output. For example:
+
+@example
+\special@{psfile="`gnuplot foo"@}
+@end example
+
+@noindent
+@flindex gnuplot
+to include the file @file{foo}. Of course, the command to be executed
+can be anything, including using a file conversion utility such as
+@file{tek2ps} or whatever is appropriate. This feature can be disabled
+with the @samp{-R} command-line option or @samp{R} configuration option.
+
+
+@node Fonts in figures
+@subsection Fonts in figures
+
+@cindex figures and fonts
+@cindex fonts, in PostScript figures
+@findex %*Font
+
+You can use any font available to @TeX{} and Dvips within a graphics
+file by putting a @code{%*Font:} line in the leading commentary of the
+file. Schematically, this looks like:
+
+@example
+%*Font: @var{tfmname} @var{scaledbp} @var{designbp} @var{hex-start}:@var{hex-bitstring}
+@end example
+
+Here is the meaning of each of these elements:
+
+@table @var
+@item tfmname
+The @TeX{} TFM filename, e.g., @file{cmr10}. You can give the same
+@var{tfmname} on more than one @samp{%*Font} line; this is useful when
+the number of characters from the font used needs a longer
+@var{hex-bitstring} (see item below) than conveniently fits on one line.
+
+@item scaledbp
+The size at which you are using the font, in PostScript points (@TeX{}
+big points). 72@dmn{bp} = 72.27@dmn{pt} = 1@dmn{in}.
+
+@item designbp
+The designsize of the font, again in PostScript points. This should
+match the value in the TFM file @var{tfmname}. Thus, for @file{cmr10},
+it should be @samp{9.96265}.
+
+@item hex-start
+The character code of the first character used from the font, specified
+as two ASCII hexadecimal characters, e.g., @samp{4b} or @samp{4B} for
+@samp{K}.
+
+@item hex-bitstring
+An arbitrary number of ASCII hexadecimal digits specifying which
+characters following (and including) @var{hex-start} are used. This is
+treated as a bitmap. For example, if your figure used the single letter
+@samp{K}, you would use @samp{4b:8} for @var{hex-start} and
+@var{hex-bitstring}. If it used @samp{KLMNP}, you would use
+@samp{4b:f4}.
+
+@end table
+
+MetaPost's output figures contain lines like this for bitmap fonts used
+in a MetaPost label (@pxref{MetaPost,,, web2c, Web2c}).
+
+
+@node Header files
+@section PostScript header files
+
+@cindex header files, defined
+@cindex PostScript header files
+
+@dfn{Header files} are bits of PostScript included in the output file;
+generally they provide support for special features, rather than
+producing any printed output themselves. You can explicitly request
+downloading header files if necessary for some figure, or to achieve
+some special effect.
+
+@vindex psheaderdir
+@flindex .pro @r{prologue files}
+@flindex .lpro @r{long prologue files}
+Dvips includes some headers on its own initiative, to implement features
+such as PostScript font reencoding, bitmap font downloading, handling of
+@code{\special}'s, and so on. These standard headers are the
+@file{.pro} files (for ``prologue'') in the installation directory
+@samp{$(psheaderdir)}; they are created from the @file{.lpro} (``long
+prologue'') files in the distribution by stripping
+comments, squeezing blank lines, etc., for maximum efficiency. If you
+want to peruse one of the standard header files, read the @file{.lpro}
+version.
+
+@vindex userdict@r{, and dictionary files}
+@cindex dictionary, @code{userdict}
+The PostScript dictionary stack will be at the @samp{userdict} level
+when header files are included.
+
+@menu
+* Including headers from TeX::
+* Including headers from the command line::
+* Headers and memory usage::
+@end menu
+
+
+@node Including headers from TeX
+@subsection Including headers from @TeX{}
+
+@cindex including headers in @TeX{}
+@findex header=@var{file} \special
+@cindex @TeX{}, including headers in
+
+@cindex headers, including in @TeX{}
+In order to get a particular graphic file to work, a certain font or
+header file might need to be sent first. The Dvips program provides
+support for this with the @samp{header} @code{\special}. For instance,
+to ensure that @file{foo.ps} gets downloaded:
+
+@example
+\special@{header=foo.ps@}
+@end example
+
+@cindex fonts, as header files
+As another example, if you have some PostScript code that uses a
+PostScript font not built into your printer, you must download it to the
+printer. If the font isn't used elsewhere in the document, Dvips can't
+know you've used it, so you must include it in the same way, as in:
+
+@example
+\special@{header=putr.pfa@}
+@end example
+
+@noindent
+to include the font definition file for Adobe Utopia Roman.
+
+The @code{header} also special allows for specifying some additional
+code that should be inserted into the PostScript document before and after
+the file itself, as follows:
+
+@example
+\special@{header=@{foo.ps@} pre=@{pre code@} post=@{post code@}@}
+@end example
+
+@cindex before header, inserting code
+@cindex after header, inserting code
+@findex pre @r{code before headers}
+@findex post @r{code after headers}
+This will insert @code{pre code} just before @file{foo.ps} and
+@code{post code} just after. It is required to use the (balanced)
+braces in @emph{all} of the arguments, including the @code{header},
+when using this extended syntax.
+
+This allows, for instance, dynamic headers, where some of the content
+depends on settings from the user in (La)@TeX{}. Another application
+is the inclusion of graphics inside the PostScript header, so that
+they can be reused throughout the document, as with logs. That avoids
+including the same graphic several times. This is implemented in the
+@file{graphics/graphicx-psmin} package.
+
+This extended syntax has one additional feature. When Dvips finds the
+extended syntax, it will also look in the installed @file{tex/}
+tree(s) for the header file (@file{foo.ps} in our example), and not
+only in the current directory and dvips tree as the original syntax
+does. This is because common graphics may well come with packages
+which are installed in the @file{tex/} tree.
+
+
+@node Including headers from the command line
+@subsection Including headers from the command line
+
+@cindex including headers from the command line
+@cindex command line, including headers from
+@cindex headers, including from the command line
+
+You can include headers when you run Dvips, as well as from your
+document (see the previous section). To do this, run Dvips with the
+option @samp{-P @var{header}}; this will read the file
+@file{config.@var{header}}, which in turn can specify a header file to
+be downloaded with the @samp{h} option. @xref{Configuration file
+commands}. These files are called @file{@var{header}.cfg} on MS-DOS.
+
+@cindex duplex printers
+@cindex simplex mode on duplex printers
+@cindex screen frequencies, setting
+You can arrange for the same file to serve as a @samp{-P} config file
+and the downloadable header file, by starting the lines of PostScript
+code with a space, leaving only the @samp{h} line and any comments
+starting in the first column. As an example, see
+@file{contrib/volker/config.*} (@file{contrib/volker/*.cfg} on MS-DOS).
+(These files also perform useful functions: controlling duplex/simplex
+mode on duplex printers, and setting various screen frequencies;
+@file{contrib/volker/README} explains further.)
+
+
+@node Headers and memory usage
+@subsection Headers and memory usage
+
+@cindex headers and memory usage
+@cindex memory usage, and headers
+
+@cindex sections of output file, and memory
+@cindex output file, sectioning of
+Dvips tries to avoid overflowing the printer's memory by splitting the
+output files into ``sections'' (see the @samp{-i} option in @ref{Option
+details}). Therefore, for all header files, Dvips debits the printer VM
+budget by some value. If the header file has, in its leading
+commentary a line of the form
+
+@findex VMusage
+@findex %%VMusage
+@example
+%%VMusage: @var{min} @var{max}
+@end example
+
+@noindent
+then @var{max} is used. If there is no @code{%%VMusage} line, then
+the size (in bytes) of the header file is used as an approximation.
+If you want a file to be ignored in the sectioning calculations, use
+@samp{%%VMusage: 0 0}.
+
+Illustrations (figure files) are also checked for @code{%%VMusage} line.
+
+Therefore, if your document uses very large fonts or very large
+included figures, Dvips might take it upon itself to split the output
+into unwanted sections. If this causes problems, the simplest
+solution is to use @samp{dvips -Pmaxmem}, which reads the Dvips file
+@file{config.maxmem}, which sets Dvips's idea of the memory available
+to a very large number. (See the @samp{m} item in @ref{Configuration
+file commands}.)
+
+
+@node Literal PS
+@section Literal PostScript
+
+@cindex literal PostScript, using
+@cindex PostScript code, literal
+
+You can include literal PostScript code in your document in several ways.
+
+@menu
+* " special:: To include inline PostScript code.
+* ps special:: Inline PostScript without save/restore.
+* Literal headers:: Literal PostScript for the whole document.
+* PostScript hooks:: Specifying code to run in the PS interpreter.
+* Literal examples:: Neat example.
+@end menu
+
+
+@node " special
+@subsection @code{"} special: Literal PostScript
+
+@findex " @r{special (literal PostScript)}
+
+For simple graphics, or just for experimentation, literal PostScript
+code can be included. Simply use a @code{\special} beginning with a
+double quote character @samp{"}; there is no matching closing @samp{"}.
+
+For instance, the following (simple) graphic:
+
+@iftex
+@tex
+\vskip\baselineskip
+\vbox to 100bp{\vss % a bp is the same as a PostScript unit
+\special{" newpath 0 0 moveto 100 100 lineto 394 0 lineto
+closepath gsave 0.8 setgray fill grestore stroke}}
+@end tex
+@end iftex
+@ifinfo
+[ picture of a grey triangle ]
+@end ifinfo
+
+@noindent
+was created by typing:
+
+@example
+\vbox to 100bp@{\vss % a bp is the same as a PostScript unit
+ \special@{" newpath 0 0 moveto 100 100 lineto 394 0 lineto
+ closepath gsave 0.8 setgray fill grestore stroke@}@}
+@end example
+
+You are responsible for leaving space for such literal graphics, as with
+the @code{\vbox} above.
+
+
+@node ps special
+@subsection @samp{ps} special
+
+@findex ps @r{special}
+
+@cindex save/restore, and specials
+Generally, Dvips encloses specials in a PostScript save/restore pair,
+guaranteeing that the special will have no effect on the rest of the
+document. The @samp{ps} special, however, allows you to insert literal
+PostScript instructions without this protective shield; you should
+understand what you're doing (and you shouldn't change the PostScript
+graphics state unless you are willing to take the consequences). This
+command can take many forms because it has had a torturous history; any
+of the following will work:
+
+@example
+\special@{ps:@var{text}@}
+\special@{ps::@var{text}@}
+\special@{ps::[begin]@var{text}@}
+\special@{ps::[end]@var{text}@}
+\special@{ps::[nobreak]@var{text}@}
+@end example
+
+@noindent
+(with longer forms taking precedence over shorter forms, when they are
+present). @samp{ps::} and @samp{ps::[end]} do no positioning, so they
+can be used to continue PostScript literals started with @samp{ps:} or
+@samp{ps::[begin]}.
+
+Literal PostScript instructions after @samp{ps::[nobreak]} are
+@emph{not} broken into lines. This feature may be used to include
+PostScript comments, for example.
+
+@findex plotfile@r{, @samp{ps} subspecial}
+In addition, the variant
+
+@example
+\special@{ps: plotfile @var{filename}@}
+@end example
+
+@noindent
+@flindex rotate.tex
+inserts the contents of @var{filename} verbatim into the output (except
+for omitting lines that begin with %). An example of the proper use of
+literal specials can be found in the file @file{rotate.tex}, which makes
+it easy to typeset text turned in multiples of 90 degrees.
+
+
+@node Literal headers
+@subsection Literal headers: @samp{!} @code{\special}
+
+@cindex literal headers
+@vindex SDict @r{dictionary}
+
+@findex ! @r{special (literal PS header)}
+@cindex dictionary, @code{SDict}
+You can download literal PostScript header code in your @TeX{} document,
+for use with (for example) literal graphics code that you include later.
+The text of a @code{\special} beginning with an @samp{!} is copied into
+the output file. A dictionary @code{SDict} will be current when this
+code is executed; Dvips arranges for @code{SDict} to be first on the
+dictionary stack when any PostScript graphic is included, whether
+literally (the @samp{"} special) or through macros (e.g.,
+@file{epsf.tex}).
+
+For example:
+
+@example
+\special@{! /reset @{ 0 0 moveto@} def@}
+@end example
+
+
+@node PostScript hooks
+@subsection PostScript hooks
+
+@cindex PostScript hooks
+
+Besides including literal PostScript at a particular place in your
+document (as described in the previous section), you can also arrange to
+execute arbitrary PostScript code at particular times while the
+PostScript is printing.
+
+@findex bop-hook
+@findex eop-hook
+@findex start-hook
+@findex end-hook
+If any of the PostScript names @code{bop-hook}, @code{eop-hook},
+@code{start-hook}, or @code{end-hook} are defined in @code{userdict},
+they will be executed at the beginning of a page, end of a page, start
+of the document, and end of a document, respectively.
+
+@cindex draft copies
+@cindex dated output
+When these macros are executed, the default PostScript coordinate system
+and origin is in effect. Such macros can be defined in headers added by
+the @samp{-h} option or the @samp{header=} special, and might be useful
+for writing, for instance, `DRAFT' across the entire page, or, with the
+aid of a shell script, dating the document. These macros are executed
+outside of the save/restore context of the individual pages, so it is
+possible for them to accumulate information, but if a document must be
+divided into sections because of memory constraints, such added
+information will be lost across section breaks.
+
+@cindex physical page number, and @code{bop-hook}
+The single argument to @code{bop-hook} is the physical page number; the
+first page gets zero, the second one, etc. @code{bop-hook} must leave
+this number on the stack. None of the other hooks are passed arguments.
+
+As an example of what can be done, the following special will write
+a light grey `DRAFT' across each page in the document:
+
+@example
+\special@{!userdict begin /bop-hook@{gsave 200 30 translate
+65 rotate /Times-Roman findfont 216 scalefont setfont
+0 0 moveto 0.7 setgray (DRAFT) show grestore@}def end@}
+@end example
+
+@findex %%Page@r{, and multi-page information}
+Using @code{bop-hook} or @code{eop-hook} to preserve information across
+pages breaks compliance with the Adobe document structuring conventions,
+so if you use any such tricks, you may also want to use the @samp{-N}
+option to turn off structured comments (such as @samp{%%Page}).
+Otherwise, programs that read your file will assume its pages are
+independent.
+
+
+@node Literal examples
+@subsection Literal examples
+
+@cindex literal PostScript, examples
+@cindex examples of literal PostScript
+
+To finish off this section, the following examples of literal PostScript
+are presented without explanation:
+
+@example
+\def\rotninety@{\special@{ps:currentpoint currentpoint translate 90
+rotate neg exch neg exch translate@}@}\font\huge=cmbx10 at 14.4truept
+\setbox0=\hbox to0pt@{\huge A\hss@}\vskip16truept\centerline@{\copy0
+\special@{ps:gsave@}\rotninety\copy0\rotninety\copy0\rotninety
+\box0\special@{ps:grestore@}@}\vskip16truept
+@end example
+
+@iftex
+@tex
+\def\rotninety{\special{ps:currentpoint currentpoint translate 90
+rotate neg exch neg exch translate}}
+\font\huge=cmbx10 at 14.4truept
+\setbox0=\hbox to0pt {\huge A\hss}
+\vskip16truept
+\centerline{\copy0\special{ps:gsave}
+ \rotninety\copy0\rotninety\copy0\rotninety
+\box0\special{ps:grestore}}
+\vskip16truept
+@end tex
+@end iftex
+@ifinfo
+[ There are 4 @samp{A} characters, each rotated 90 degrees about a
+ common center point ]
+@end ifinfo
+
+
+@example
+\vbox to 2truein@{\special@{ps:gsave 0.3 setgray@}\hrule height 2in
+width\hsize\vskip-2in\special@{ps:grestore@}\font\big=cminch\big
+\vss\special@{ps:gsave 1 setgray@}\vbox to 0pt@{\vskip2pt
+\line@{\hss\hskip4pt NEAT\hss@}\vss@}\special@{ps:0 setgray@}%
+\hbox@{\raise2pt\line@{\hss NEAT\hss@}\special@{ps:grestore@}@}\vss@}
+@end example
+
+@iftex
+@tex
+\smallskip
+\vbox to 2truein{\special{ps:gsave 0.3 setgray}\hrule height 2in
+width\hsize\vskip-2in\special{ps:grestore}\font\big=cminch\big
+\vss\special{ps:gsave 1 setgray}\vbox to 0pt{\vskip2pt
+\line{\hss\hskip4pt NEAT\hss}\vss}\special{ps:0 setgray}%
+\hbox{\raise2pt\line{\hss NEAT\hss}\special{ps:grestore}}\vss}
+@end tex
+@end iftex
+@ifinfo
+[ There is a big gray box with the word @samp{NEAT} inside in big letters ]
+@end ifinfo
+
+@findex \rotninety
+@findex gsave@r{/}grestore@r{, and literal PS}
+@findex save@r{/}restore@r{, and literal PS}
+Some caveats are in order, however. Make sure that each @code{gsave} is
+matched with a @code{grestore} on the same page. Do not use @code{save}
+and @code{restore}; they can interact with the PostScript generated by
+Dvips if care is not taken. Try to understand what the above macros are
+doing before writing your own. The @code{\rotninety} macro especially
+has a useful trick that appears again and again.
+
+
+@node Hypertext
+@section Hyper@TeX{}t
+
+@cindex hypertext support
+
+@opindex -z
+@findex html @r{specials}
+@findex pdfmark
+Dvips has support for producing hypertext PostScript documents. If you
+specify the @samp{-z} option, the @file{html:} specials described below
+will be converted into @samp{pdfmark} PostScript operators to specify
+links. Without @samp{-z}, @file{html:} specials are ignored.
+
+@cindex distiller, for PDF files
+@cindex PDF files, making
+The resulting PostScript can then be processed by a distiller program to
+make a PDF file. (It can still be handled by ordinary PostScript
+interpreters as well.) Various versions of both PC and Unix distillers
+are supported; Ghostscript includes limited distiller support
+(@pxref{Ghostscript installation}).
+
+By far the most common @LaTeX{} package used to create hyperlinked
+output is @code{hyperref} (@url{https://ctan.org/pkg/hyperref}). For
+plain @TeX{}, the Eplain package has some hyperlink support
+(@url{https://tug.org/eplain}).
+
+@flindex @code{http://xxx.lanl.gov/hypertex}
+@cindex Doyle, Mark
+@cindex Bhattacharya, Tanmoy
+@pindex dvihps@r{, hyperdvi to PostScript}
+This hypertext support (and original form of the documentation) was
+written by Mark Doyle and Tanmoy Bhattacharya as the @samp{dvihps}
+program.
+
+@menu
+* Hypertext caveats:: Font quality, missing character psi.
+* Hypertext specials:: The details on the specials.
+@end menu
+
+
+@node Hypertext caveats
+@subsection Hypertext caveats
+
+@cindex hypertext caveats
+
+@cindex Computer Modern in PostScript
+@cindex hypertext and bitmap fonts
+@cindex hypertext caveats
+@cindex embedding Type 1 fonts
+@cindex PDF files, font quality
+If you intend to go all the way to PDF, you may want to use the standard
+35 PostScript fonts exclusively, since other fonts are embedded as
+bitmaps by default. The Adobe PDF readers are extremely slow when
+dealing with bitmap fonts and the results look terrible on the screen.
+Printouts will probably look fine, but may not take full advantage of a
+high-resolution printer. Alternatively, you can have your fonts
+embedded as Type 1 scalable outlines. The resulting PostScript files
+may be larger, but can be effectively rasterized at any resolution.
+They can also be converted to PDF files that can be used effectively at
+any screen or printer resolution.
+
+To get the TeX fonts embedded in the PostScript file as Type 1 fonts,
+add @samp{-Ppdf} to the dvips command line switches. The printout
+for a run should look something like this:
+
+@smallexample
+ dvips report -Ppdf -o report.ps
+ This is dvips(k) 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com)
+ ' TeX output 2001.06.15:0837' -> report.ps
+ <tex.pro><alt-rule.pro><texc.pro><texps.pro><special.pro>.
+ <cmbx9.pfb><cmsy6.pfb><cmsy7.pfb><cmr5.pfb><cmex10.pfb><cmr9.pfb>
+ <cmmi7.pfb><cmsy10.pfb><cmmib10.pfb><cmmi10.pfb><cmti10.pfb>
+ <cmr7.pfb><cmbx10.pfb><cmr10.pfb><cmti9.pfb><cmr12.pfb><cmbx12.pfb>
+ [1] [2<mean1.ps>] [3<bounce1-00.ps>] [4]
+@end smallexample
+
+An entry like "<cmr10.pfb>" indicates success: dvips found the Computer
+Modern Roman 10 point font in a PostScript Font Binary file, translated
+it to an ASCII encoding, and embedded it. You can confirm this by
+examining the PostScript output file, looking for the section starting
+@code{%%BeginFont: CMR10} followed by an entry @code{/FontType 1 def}.
+
+The @samp{-Ppdf} option requires that the relevant outline
+(@file{.pfa} or @file{.pfb}) files be installed (@pxref{Font
+concepts}). For example, the @file{cmr10} file might be in
+@file{/usr/share/texmf/fonts/type1/bluesky/cm/cmr10.pfb}. Your TeX
+distribution may make those fonts available in a separate optional
+package (e.g., @code{tetex-extra} in Debian). Failing that,
+commercial versions of the Computer Modern fonts are available from
+Blue Sky; public domain versions, in particular, the lm
+and cm-super font families, are available from CTAN and in @TeX{}
+distributions.
+
+You can convert a PostScript file to PDF using @code{distill}, which
+comes with Adobe Acrobat, or @code{ps2pdf}, which comes with
+Ghostscript. The @code{ps2pdf} that comes with @code{Ghostscript}
+version 6.0 or earlier will not embed Type 1 fonts. Current
+recommendations are GNU Ghostscript 6.51 or Aladdin Ghostscript 7.0.
+You can check the fonts in a PDF file with Acrobat Reader by selecting
+the menu entries @samp{File|Document Info|Fonts}.
+
+@cindex psi character missing
+@cindex trailing spaces, dropped
+@cindex spaces, dropped trailing
+Also, the Adobe distillers prior to 2.1 drop trailing space characters
+(character code 32) from strings. Unfortunately, the PostScript fonts
+use this character code for characters other than space (notably the
+Greek letter psi in the @code{Symbol} font), and so these characters are
+dropped. This bug is fixed in version 2.1.
+
+If you can't upgrade, one workaround is to change all the trailing
+blanks in strings to a character code that isn't in the font. This works
+because the default behavior is to substitute a blank for a missing
+character, i.e., the distiller is fooled into substituting the right
+character. For instance, with the Blue Sky fonts, you can globally
+replace @samp{ )} with @samp{\200)} (with @code{sed}, for example) and
+get the desired result. With the public domain fonts, you will probably
+have to use a character code in the range 128 to 191 since these fonts
+duplicate the first 32 characters starting at 192 to avoid MS-DOS
+problems.
+
+For more information on the use of TeX to produce PDF files, see the
+article ``Creating quality Adobe PDF files from @TeX{} with DVIPS'' by
+Kendall Whitehouse of Adobe. Adobe seems not to offer the article any
+more, but copies are available elsewhere:
+@display
+@url{http://www.math.hawaii.edu/~ralph/MathOnWeb/TeXPDF.html}
+@url{http://www.utdallas.edu/~cantrell/online/543e.html}
+@end display
+
+You may also want to check ``Notes on converting (La)@TeX{} documents
+to robust PDF using Rokicki's dvips and Acrobat Distiller'' by
+Timothy@tie{}P. Van Zandt:@*
+@url{http://www.emrg.com/texpdf.htmlhttp://zandtwerk.insead.fr/tex2pdf.html}.
+
+
+@node Hypertext specials
+@subsection Hypertext specials
+
+@cindex hypertext specials
+@cindex specials, hypertext
+
+@cindex Smith, Arthur
+Current support for the World Wide Web in the @TeX{} system does not
+involve modifying @TeX{} itself. We need only define some specials;
+Arthur Smith (@email{apsmith@@aps.org}), Tanmoy Bhattacharya, and Paul
+Ginsparg originally proposed and implemented the following:
+@example
+html:<a href="@var{xurl}">
+html:<a name="@var{name}">
+html:</a>
+html:<img src="@var{xurl}">
+html:<base href="@var{xurl}">
+@end example
+
+Like all @TeX{} @code{\special}'s, these produce no visible output, and
+are uninterpreted by @TeX{} itself. They are instructions to DVI
+processors only.
+
+@cindex uniform resource locator
+@cindex extended URL
+@cindex URL, extended for @TeX{}
+@cindex Murphy, Tim
+Here, @var{xurl} is a standard WWW uniform resource locator (URL),
+possibly extended with a @samp{#@var{type}.@var{string}} construct,
+where @var{type} is @samp{page}, @samp{section}, @samp{equation},
+@samp{reference} (for bibliographic references), @samp{figure},
+@samp{table}, etc. For example,
+@smallexample
+\special@{html:<a href="http://www.maths.tcd.ie/~tim/ch1.dvi#equation.1.1">@}
+@end smallexample
+@noindent is a link to equation (1.1) in an example document by Tim Murphy.
+
+@cindex URL, definition
+See the URL @url{http://www.w3.org/hypertext/WWW/Addressing/Addressing.html}
+for a precise description of base URL's.
+
+Descriptions of the @code{\special}'s:
+@ftable @samp
+@item href
+@cindex links, hypertext
+Creates links in your @TeX{} document. For example:
+@example
+\special@{html:<a href="http://www.tug.org/">@}\TeX\ Users
+Group\special@{html:</a>@}
+@end example
+@noindent The user will be able to click on the text `@TeX{} Users
+Group' while running Xdvi and get to the TUG home page. (By the way,
+this is for illustration. In practice, you most likely want to use
+macros to insert the @code{\special} commands; reference above.)
+
+@item name
+@cindex Anderson, Laurie
+Defines URL targets in your @TeX{} documents, so links can be
+resolved. For example:
+@example
+\special@{html:<a name="paradise">@}Paradise\special@{html:</a>@}
+is exactly where you are right now.
+@end example
+This will resolve an @samp{href="#paradise"}. You'll also have to
+change the catcode of @samp{#}, etc. It's usually easiest to use
+existing macro packages which take care of all the details, such as
+@file{hyperref} for @LaTeX{}. The @url{http://arxiv.org/hypertex/,
+HyperTeX FAQ} has more information.
+
+@item img
+@flindex mailcap @r{and hypertext}
+Links to an arbitrary external file. Interactively, a viewer is spawned
+to read the file according to the file extension and your @file{mailcap}
+file (see the Xdvi documentation).
+
+@item base
+Defines a base URL that is prepended to all the @code{name} targets.
+Typically unnecessary, as the name of the DVI file being read is used by
+default.
+@end ftable
+
+The @samp{img} and @samp{base} tags are not yet implemented in Dvips or
+the NeXTSTEP DVI viewer.
+
+
+@node PostScript fonts
+@chapter PostScript fonts
+
+@cindex PostScript fonts
+
+Dvips supports the use of PostScript fonts in @TeX{} documents. To use
+a PostScript font conveniently, you need to prepare a corresponding
+virtual font; the program Afm2tfm, supplied with Dvips, helps
+with that.
+
+All the necessary support for the standard 35 PostScript fonts
+(@samp{AvantGarde-Book} through @samp{ZapfDingbats}), plus other freely
+or commonly available PostScript fonts is available along with Dvips.
+To use these fonts, you need do nothing beyond what is mentioned in the
+installation procedure (@pxref{Installation}). This chapter is
+therefore relevant only if you are installing new PostScript fonts not
+supplied with Dvips. (Or if you're curious.)
+
+@menu
+* Font concepts:: Metrics, glyphs, virtual fonts, and encodings.
+* Making a font available:: Installing and using a PostScript font.
+* Invoking afm2tfm:: Creating TFM and AFM files for a virtual font.
+* psfonts.map:: Defining available PostScript fonts.
+@end menu
+
+
+@node Font concepts
+@section Font concepts
+
+@cindex font concepts
+
+The information needed to typeset using a particular font is contained
+in two files: a @dfn{metric file} that contains shape-independent
+information and a @dfn{glyph file} that contains the actual shapes of
+the font's characters. A @dfn{virtual font} is an optional additional
+file that can specify special ways to construct the characters. @TeX{}
+itself (or @LaTeX{}) look only at the metric file, but DVI drivers such
+as Dvips look at all three of these files.
+
+An @dfn{encoding file} defines the correspondence between the code
+numbers of the characters in a font and their descriptive names. Two
+encoding files used together can describe a reencoding that rearranges,
+i.e., renumbers, the characters of a font.
+
+@menu
+* Metric files:: Shape-independent font information.
+* Glyph files:: Character shapes.
+* Virtual fonts:: Constructing one font from others.
+* Encodings:: Character codes and character names.
+* Bitmap font encodings:: Encodings for bitmapped fonts.
+* PostScript typesetting:: How PostScript typesets a character.
+@end menu
+
+
+@node Metric files
+@subsection Metric files
+
+@cindex metric files
+
+A @dfn{metric file} describes properties of the font that are
+independent of what the characters actually look like. Aside from
+general information about the font itself, a metric file has two kinds
+of information: information about individual characters, organized by
+character code, and information about sequences of characters.
+
+The per-character information specifies the width, height, depth, and
+italic correction of each character in the font. Any might be zero.
+
+@cindex kerning, defined
+@cindex ligature, defined
+In addition to information on individual characters, the metric file
+specifies @dfn{kerning}, i.e., adding or removing space between
+particular character pairs. It further specifies @dfn{ligature}
+information: when a sequence of input characters should be typeset as a
+single (presumably different) ``ligature'' character. For example, it's
+traditional for the input @samp{fi} to be typeset as `fi', not as
+`@r{f}@r{i}' (with the dot of the `i' colliding with `f'). (In English,
+the only common ligatures are fi, fl, ff, ffi, and ffl.)
+
+Different typesetting systems use different metric file formats:
+
+@itemize @bullet
+@item
+@cindex afm files
+@flindex .afm @r{Adobe metric files}
+Each Postscript font has an @dfn{Adobe font metrics} (@samp{.afm})
+file. These files are plain text, so you can inspect them easily. You
+can get AFM files for Adobe's fonts from
+@url{ftp://ftp.adobe.com/pub/adobe/Fonts/AFMs}.
+
+@item
+@cindex tfm files
+@flindex .tfm @r{@TeX{} font metric files}
+@TeX{} uses @dfn{@TeX{} font metrics} (@samp{.tfm}) files. When you say
+@samp{\font = @var{font}} in your @TeX{} document, @TeX{} reads a file
+named @samp{@var{font}.tfm}. (Well, except for the @file{texfonts.map}
+feature; @pxref{Fontmap,,, kpathsea, Kpathsea}). @TeX{} can then
+calculate the space occupied by characters from the font when
+typesetting. In addition, the DVI drivers you use to print or view the
+DVI file produced by @TeX{} may need to look at the TFM file.
+
+@cindex property list files
+@pindex tftopl
+@pindex pltotf
+@flindex .pl @r{property list files}
+TFM files are binary (and hence are typically much smaller than AFM
+files). You can use the @code{tftopl} program (@pxref{tftopl
+invocation,,, web2c, Web2c}) that comes with @TeX{} to transform a TFM
+file into a human-readable ``property list'' (@samp{.pl}) file. You can
+also edit a PL file and transform it back to a @TeX{}-readable TFM with
+the companion program @code{pltotf} (@pxref{pltotf invocation,,, web2c,
+Web2c}). Editing metrics by hand is not something you're likely to want
+to do often, but the capability is there.
+
+@item
+@cindex pfm files
+@flindex .pfm @r{printer font metric files}
+ATM and other typesetting systems use @dfn{printer font metric}
+(@samp{.pfm}) files. These are binary files. They are irrelevant in the
+@TeX{} world, and not freely available, so we will not discuss them
+further.
+
+@end itemize
+
+The Afm2tfm program distributed with Dvips converts an AFM file
+to a TFM file and performs other useful transformations as well.
+@xref{Invoking afm2tfm}.
+
+
+@node Glyph files
+@subsection Glyph files
+
+@cindex glyph files
+
+Although a metric file (see the previous section) contains information
+about the spatial and other properties of the character at position 75,
+say, it contains nothing about what the character at position 75
+actually looks like. The glyphs---the actual shapes of the letterforms
+in a font---are defined by other files, which we call glyph files.
+@TeX{} itself only reads the TFM file for a font; it does not need to
+know character shapes.
+
+A @dfn{glyph file} is a file that defines the shapes of the characters
+in a font. The shapes can be defined either by outlines or by bitmaps.
+
+@cindex outline fonts
+@cindex arcs
+@cindex splines
+PostScript fonts are defined as @dfn{outline fonts}: Each character in
+the font is defined by giving the mathematical curves (lines, arcs, and
+splines) that define its contours. Different sizes of a character are
+generated by linearly scaling a single shape. For example, a 10-point
+`A' is simply half the size of a 20-point `A'. Nowadays, outline fonts
+usually also contain @dfn{hints}---additional information to improve the
+appearance of the font at small sizes or low resolutions.
+
+@cindex Type 1 fonts
+@cindex pfa files
+@cindex pfb files
+@flindex .pfa @r{printer font ascii files}
+@flindex .pfb @r{printer font binary files}
+Although various kinds of PostScript outline fonts exist, by far the
+most common, and the only one we will consider, is called @dfn{Type 1}.
+The glyph files for Postscript Type 1 fonts typically have names ending
+in @samp{.pfa} (``printer font ASCII'') or @samp{.pfb} (``printer font
+binary'').
+
+@cindex bitmap fonts
+@flindex .mf @r{Metafont source files}
+@cindex Metafont source files
+In contrast, glyph files for Computer Modern and the other standard
+@TeX{} fonts are @dfn{bitmap fonts}, generated from Metafont
+(@samp{.mf}) descriptions. The Metafont program distributed with @TeX{}
+generates bitmaps from these descriptions.
+
+@cindex pk files
+@flindex .@var{nnn}pk @r{packed font bitmaps}
+The glyph files for @TeX{} bitmap fonts are usually stored in
+@dfn{packed font} (PK) files. The names of these files end in
+@samp{.@var{nnn}pk}, where @var{nnn} is the resolution of the font in
+dots per inch. For example, @file{cmr10.600pk} contains the bitmaps for
+the @samp{cmr10} font at a resolution of 600@dmn{dpi}. (On DOS
+filesystems, it's more likely @file{dpi600\cmr10.pk}.)
+
+@cindex gf files
+@pindex gftopk
+Metafont actually outputs @dfn{generic font} (GF) files, e.g.,
+@file{cmr10.600gf}, but the GF files are usually converted immediately
+to PK format (using the @code{gftopk} utility that comes with @TeX{})
+since PK files are smaller and contain the same information. (The GF
+format is a historical artifact.)
+
+
+@node Virtual fonts
+@subsection Virtual fonts
+
+@cindex virtual fonts
+
+A @dfn{virtual font} is constructed by extracting characters from one
+or more existing fonts and rearranging them, or synthesizing new
+characters in various ways. The explanation in this manual is
+intended to suffice for understanding enough about virtual fonts to
+use them with Dvips. It isn't a reference manual on virtual fonts.
+For more information: The primary document on virtual fonts is
+Donald@tie{}E. Knuth, @cite{TUGboat} 11(1), Apr.@: 1990, pp.@: 13--23,
+``Virtual Fonts: More Fun for Grand Wizards''
+(@url{mirror.ctan.org/info/virtual-fonts.knuth}). (Don't be
+intimidated by the subtitle.)
+
+@cindex vf files
+@cindex vpl files
+A virtual font (@samp{.vf}) file specifies, for each character in the
+virtual font, a recipe for typesetting that character. A VF file, like
+a TFM file, is in a compressed binary format. The @code{vftovp} and
+@code{vptovf} programs convert a VF file to a human-readable VPL
+(virtual property list) format and back again. @xref{vftovp
+invocation,,, web2c, Web2c}, and @ref{vptovf invocation,,, web2c,
+Web2c}.
+
+@cindex base fonts
+In the case of a PostScript font @var{f} being used in a straightforward
+way, the recipe says: character @var{i} in the VF font is character
+@var{j} in font @var{f}. The font @var{f} is called a @dfn{base font}.
+For example, the VF file could remap the characters of the PostScript
+font to the positions where @TeX{} expects to find them.
+@xref{Encodings}.
+
+Since @TeX{} reads only TFM files, not VF's, each VF must have a
+corresponding TFM for use with @TeX{}. This corresponding TFM is
+created when you run @code{vptovf}.
+
+@cindex expansion, of virtual fonts
+@cindex virtual font expansion
+You can @dfn{expand} virtual fonts into their base fonts with DVIcopy
+(@pxref{dvicopy invocation,,, web2c, Web2c}). This is useful if you are
+using a DVI translator that doesn't itself understand vf's.
+
+@pindex ptex @r{JFM}
+@pindex uptex @r{JFM}
+@cindex Japanese font metric file
+@cindex JFM file, and virtual font fallback
+If a virtual font has no entry at a given codepoint and the first
+@code{MAPFONT} designates an (u)pTeX JFM, we designate the glyph of
+the same codepoint in the TFM(JFM) with the smallest font ID. This
+feature helps to reduce the size of Japanese virtual fonts. For more
+information about the extensive support of Japanese in TeX, see
+@url{https://github.com/texjporg}.
+
+
+@node Encodings
+@subsection Encodings
+
+@cindex encodings
+
+Every font, whatever its type, has an @dfn{encoding}, that specifies the
+correspondence between ``logical'' characters and character codes. For
+example, the ASCII encoding specifies that the character numbered 65
+(decimal) is an uppercase `A'. The encoding does not specify what the
+character at that position looks like; there are lots of ways to draw an
+`A', and a glyph file (@pxref{Glyph files}) tells how. Nor does it
+specify how much space that character occupies; that information is in a
+metric file (@pxref{Metric files}).
+
+@cindex Computer Modern, encoding of
+@TeX{} implicitly assumes a particular encoding for the fonts you use
+with it. For example, the plain @TeX{} macro @code{\'}, which typesets
+an acute accent over the following letter, assumes the acute accent is
+at position 19 (decimal). This happens to be true of standard @TeX{}
+fonts such as Computer Modern, as you might expect, but it is not true
+of normal PostScript fonts.
+
+It's possible but painful to change all the macros that assume
+particular character positions. A better solution is to create a new
+font with the information for the acute accent at position 19, where
+@TeX{} expects it to be. @xref{Making a font available}.
+
+@cindex PostScript encoding
+@cindex encoding files
+@cindex encoding vectors, defined
+
+PostScript represents encodings as a sequence of 256 character names
+called an @dfn{encoding vector}. An @dfn{encoding file} (@samp{.enc})
+gives such a vector, together with ligature and kerning information
+(with which we are not concerned at the moment). These encoding files
+are used by the Afm2tfm program. Encoding files are also downloaded to
+the PostScript interpreter in your printer if you use one of them in
+place of the default encoding vector for a particular PostScript font.
+
+@flindex dvips.enc
+@flindex 8r.enc
+@flindex texmext.enc
+@flindex texmital.enc
+@flindex texmsym.enc
+@flindex reencode/*.enc
+Examples of encodings: the @file{dvips.enc} encoding file that comes
+with the Fontname distribution (@url{http://tug.org/fontname}) is a
+good (but not perfect) approximation to the @TeX{} encoding for
+@TeX{}'s Computer Modern text fonts. This is the encoding of the
+fonts that originated with Dvips, such as @file{ptmr.tfm}. The
+distribution includes many other encoding files; for example,
+@file{8r.enc}, which is the base font for the current PostScript font
+distribution, and three corresponding to the @TeX{} mathematics fonts:
+@file{texmext.enc} for math extensions, @file{texmital.enc} for math
+italics, and @file{texmsym.enc} for math symbols.
+
+
+@node Bitmap font encodings
+@subsection Bitmap font encodings
+
+@cindex bitmap font encodings
+@cindex font encodings, bitmap
+@cindex encodings, for bitmap fonts
+
+To dvips, bitmapped fonts do not have any notion of linguistics; they
+are simply a vector of glyphs. By comparison, PostScript fonts are
+required to contain an encoding vector that at least provides
+glyph names; these names can permit PostScript and PDF viewers to
+extract legible text from Postscript and PDF output.
+
+Unlike previous versions, dvips versions 2020 and later add glyph
+naming information to Type 3 bitmapped fonts (if they can locate such
+information) as an Encoding vector. This provides some support for
+search, for copy and paste, and even some limited support for
+accessibility. The @samp{bitmapfontenc} command line option
+(@pxref{Option details} and @code{bitmapfontenc} configuration option
+(@pxref{Configuration file commands}) enable and disable this
+functionality; by default it is set to enabled, without warnings.
+
+@flindex dvips-all.enc
+To do this, dvips must find encoding information for the bitmapped
+fonts. It does this by first searching for a font-specific encoding
+file; for instance, for cmr10, it will search for @file{dvips-cmr10.enc}
+in the standard encoding path. If it does not find such a file, it
+will search for a @file{dvips-all.enc} file which contains a base set of
+encodings for many fonts.
+
+The specific syntax of an encoding file is unspecified, except that it
+must be a PostScript fragment that leaves exactly one object on the
+operand stack. (This is different from the encoding files used to
+define encodings for PostScript fonts, described earlier). Normally
+that object is just an array of 256 names; in this case, that array is
+used as the encoding vector for the font. Alternatively, the object
+can be a procedure that, when executed, leaves a legal encoding vector
+on the stack. This second option is made available to support future
+enhancements that may add additional constructs to the font dictionary
+to enhance the interpretation of font characters.
+
+The @file{dvips-all.enc} file contains encodings for many fonts, and
+it is loaded by dvips at most once. The format is just a sequence of
+font names, one per line, each terminated by a colon, followed by the
+encoding to use for those files.
+
+@cindex bounding box, for bitmap fonts
+@cindex coordinate system, for bitmap fonts
+As part of its operation, to enable heuristics in PostScript and
+PDF viewers to properly identify word breaks and column gutters,
+dvips also generates a modified font bounding box and a modified
+font coordinate system.
+
+
+@node PostScript typesetting
+@subsection How PostScript typesets a character
+
+@cindex typesetting in PostScript
+@cindex character lookup procedure in PostScript
+
+The output of Dvips is a program in the PostScript language that
+instructs your (presumably PostScript-capable) printer how to typeset
+your document by transforming it into toner on paper. Your printer, in
+turn, contains a PostScript interpreter that carries out the
+instructions in this typesetting program.
+
+The program must include the definition of any PostScript fonts that you
+use in your document. Fonts built into your printer (probably the
+standard 35: @samp{Times-Roman}, @samp{ZapfDingbats}, @dots{}) are
+defined within the interpreter itself. Other fonts must be downloaded
+as pfa or pfb files (@pxref{Glyph files}) from your host (the computer
+on which you're running Dvips).
+
+You may be wondering exactly how a PostScript interpreter figures out
+what character to typeset, with this mass of metrics, glyphs, encodings,
+and other information. (If you're not wondering, skip this section
+@dots{})
+
+@findex show @r{PostScript operator}
+The basic PostScript operator for imaging characters is
+@code{show}. Suppose you've asked @TeX{} to typeset an `S'. This will
+eventually wind up in the Dvips output as the equivalent of this
+PostScript operation:
+
+@example
+(S) show
+@end example
+
+@noindent Here is how PostScript typesets the `S':
+
+@enumerate
+@item
+@cindex ASCII character codes, used by PostScript
+PostScript interpreters use ASCII; therefore `S' is represented as the
+integer 83. (Any of the 256 possible characters representable in a
+standard 8-bit byte can be typeset.)
+
+@item
+@cindex current font, in PostScript
+@cindex dictionary, PostScript language
+A PostScript @dfn{dictionary} is a mapping of names to arbitrary values.
+A font, to the interpreter, is a dictionary which contains entries for
+certain names. (If these entries are missing, the interpreter refuses
+to do anything with that font.)
+
+PostScript has a notion of ``the current font''---whatever font is
+currently being typeset in.
+
+@item
+@cindex encoding vectors, in Type 1 fonts
+@findex Encoding @r{Type 1 dictionary}
+One of the mandatory entries in a font dictionary is @samp{Encoding},
+which defines the encoding vector (@pxref{Encodings}) for that font.
+This vector of 256 names maps each possible input character to a name.
+
+@item
+The interpreter retrieves the entry at position 83 of the encoding
+vector. This value is a PostScript name: @code{/S}.
+
+@item
+@findex CharStrings @r{Type 1 dictionary}
+@cindex dictionary, @code{CharStrings}
+For Type 1 fonts (we're not going to discuss anything else), the
+interpreter now looks up @code{/S} as a key in a dictionary named
+@code{CharStrings}, another mandatory entry in a font dictionary.
+
+@item
+@cindex hints
+@cindex character definitions in PostScript
+The value of @code{S} in @code{CharStrings} is the equivalent of a
+series of standard PostScript commands like @samp{curveto},
+@samp{lineto}, @samp{fill}, and so on. These commands are executed to
+draw the character. There can also be @dfn{hint information} that helps
+adapt the character to low-resolution rasters. (@xref{Glyph files}.)
+The commands are actually represented in a more compact way than
+standard PostScript source; see the Type 1 book for details.
+
+@end enumerate
+
+This method for typesetting characters is used in both Level 1 and Level
+2 PostScript. See the PostScript reference manuals for more
+information.
+
+
+@node Making a font available
+@section Making a PostScript font available
+
+@cindex installing fonts
+@cindex fonts, installing
+
+To make a PostScript font available in a @TeX{} document, you need to
+install the font on your system and then define it within the document.
+Once you have installed the font, of course, it is available for any
+document thereafter and you don't need to reinstall it. You must have
+an AFM file for any font you install. Unless the font is built into your
+printer, you must also have a PFA or PFB file.
+
+In the following examples, we use the font @samp{Times-Roman} to
+illustrate the process. But you should use the prebuilt fonts for Times
+and the other standard fonts, rather than rebuilding them. The prebuilt
+fonts are made using a more complicated process than that described
+here, to make them work as well as possible with @TeX{}. So following
+the steps in this manual will not generate files identical to the
+distributed ones. @xref{PostScript font installation}, for pointers to
+the prebuilt fonts.
+
+Installation of a PostScript font proceeds in three steps. @xref{Font
+concepts}, for descriptions of the various files involved.
+
+@enumerate
+@item
+Run @code{afm2tfm} to create a TFM file for the original font,
+and the VPL form of the virtual font:
+@example
+afm2tfm Times-Roman -v ptmr rptmr
+@end example
+
+@item
+Run @code{vptovf} to generate a VF and TFM file for the virtual font
+from the VPL file:
+@example
+vptovf ptmr.vpl ptmr.vf ptmr.tfm
+@end example
+
+@item
+Insert an entry for the font in @file{psfonts.map} (@pxref{psfonts.map}):
+@example
+rptmr Times-Roman <ptmr8a.pfa
+@end example
+
+@item
+Install the files in the standard locations, as in:
+@example
+cp ptmr.vf @var{fontdir}/vf/@dots{}
+cp *ptmr.tfm @var{fontdir}/tfm/@dots{}
+cp ptmr.afm @var{fontdir}/afm/@dots{}
+cp ptmr.pf? @var{fontdir}/type1/@dots{}
+@end example
+@end enumerate
+
+The simplest invocation of Afm2tfm to make virtual fonts goes something
+like this:
+
+@pindex afm2tfm
+@example
+afm2tfm Times-Roman -v ptmr rptmr
+@end example
+
+@noindent
+This reads the file @file{Times-Roman.afm}, and produces two files as
+output, namely the virtual property list'file @file{ptmr.vpl}, and the
+``raw'' font metric file @file{rptmr.tfm}. To use the font in @TeX{},
+you first run
+
+@pindex vptovf
+@example
+vptovf ptmr.vpl ptmr.vf ptmr.tfm
+@end example
+
+@noindent
+You should then install the virtual font file @file{ptmr.vf} where Dvips
+will see it and install @file{ptmr.tfm} and @file{rptmr.tfm} where
+@TeX{} and Dvips will see them.
+
+Using these raw fonts is not recommended; there are no raw fonts in the
+prebuilt PostScript fonts distributed along with Dvips. But
+nevertheless, that's how Afm2tfm presently operates, so that's what we
+document here. The @samp{r} prefix convention is likewise historical
+accident.
+
+You can also make more complex virtual fonts by editing @file{ptmr.vpl}
+before running @samp{vptovf}; such editing might add the uppercase Greek
+characters in the standard @TeX{} positions, for instance. (This has
+already been done for the prebuilt fonts.)
+
+Once the files have been installed, you're all set. You can now do
+things like this in @TeX{}:
+@example
+\font\myfont = ptmr at 12pt
+\myfont Hello, I am being typeset in 12-point Times-Roman.
+@end example
+
+Thus, we have two fonts, one actual (@samp{rptmr}, which is analogous to
+the font in the printer) and one virtual (@samp{ptmr}, which has been
+remapped to the standard @TeX{} encoding (almost)), and has typesetting
+know-how added. You could also say
+
+@example
+\font\raw = rptmr at 10pt
+@end example
+
+@noindent
+and typeset directly with that, but then you would have no ligatures or
+kerning, and you would have to use Adobe character positions for special
+letters like
+@tex
+\AE.
+@end tex
+@ifinfo
+the ligature `AE'.
+@end ifinfo
+The virtual font @samp{ptmr} not only has ligatures and kerning, and
+most of the standard accent conventions of @TeX{}, it also has a few
+additional features not present in the Computer Modern fonts. For
+example, it includes all the Adobe characters (such as the Polish ogonek
+and the French guillemots). The only things you lose from ordinary
+@TeX{} text fonts are the dotless `j' (which can be hacked into the VPL
+file with literal PostScript specials if you have the patience) and
+uppercase Greek letters (which just don't exist unless you buy them
+separately). @xref{Reencoding with Afm2tfm}.
+
+As a final step you need to record information about both the virtual
+font and the original font (if you ever might want to use it) in the
+@file{psfonts.map} file (@pxref{psfonts.map}). For our example, you'd
+insert the following into @file{psfonts.map}:
+@example
+rptmr Times-Roman <ptmr8a.pfa
+@end example
+
+@noindent Of course, @code{Times-Roman} is already built in to most every
+printer, so there's no need to download any Type 1 file for it. But if
+you are actually following these instructions for new fonts, most likely
+they are not built in to the printer.
+
+@cindex memory, used by PostScript fonts
+@cindex efficiency, and fonts
+These PostScript fonts can be scaled to any size. Go wild! Using
+PostScript fonts, however, does use up a great deal of the printer's
+memory and it does take time. You may find downloading bitmap fonts
+(possibly compressed, with the @samp{Z} option) to be faster than using
+the built-in PostScript fonts.
+
+
+@node Invoking afm2tfm
+@section Invoking Afm2tfm
+
+@pindex afm2tfm
+
+The Afm2tfm program converts an AFM file for a PostScript font to a TFM
+file and a VPL file for a corresponding virtual font (or, in its
+simplest form, to a TFM file for the PostScript font itself). The
+results of the conversion are affected by the command-line options and
+especially by the reencodings you can specify with those options. You
+can also obtain special effects such as an oblique font.
+
+@pindex fontinst
+@cindex virtual fonts, creating
+@cindex Jeffrey, Alan
+Alternatives to Afm2tfm for creating virtual fonts include
+@code{fontinst} @url{https://ctan.org/pkg/fontinst},
+@code{lcdf-typetools}, particularly @code{otftotfm}
+(@url{https://ctan.org/pkg/lcdf-typetools}), and @code{afm2pl}
+(@url{http://tex.aanhet.net/afm2pl/}), among others.
+
+@menu
+* Changing font encodings:: Reencoding with -t, -p, -T.
+* Special font effects:: Oblique fonts, small caps, and such.
+* Afm2tfm options:: afm2tfm command-line options.
+@end menu
+
+
+@node Changing font encodings
+@subsection Changing font encodings
+
+@cindex encoding changes
+@cindex fonts, changing encoding of
+
+Afm2tfm allows you to specify a different encoding for a PostScript font
+(for a general introduction to encodings, @pxref{Encodings}). The
+@samp{-t} option changes the @TeX{} encoding, @samp{-p} changes the
+PostScript encoding, and @samp{-T} changes both simultaneously, as
+detailed in the sections below.
+
+@menu
+* Changing TeX encodings:: Where TeX finds a character.
+* Changing PostScript encodings:: Where PostScript finds a character.
+* Changing both encodings:: One and the same, simultaneously.
+* Reencoding with Afm2tfm:: Problems with the default encoding.
+* Encoding file format:: Syntax of an encoding file.
+@end menu
+
+
+@node Changing TeX encodings
+@subsubsection @samp{-t}: Changing @TeX{} encodings
+
+@cindex changing @TeX{} encodings
+@cindex @TeX{} encoding, changing
+
+@opindex -t @var{tex-enc}
+To build a virtual font with Afm2tfm, you specify the @samp{-v} or
+@samp{-V} option. You can then specify an encoding for that virtual font
+with @samp{-t @var{tex-enc}}. (@samp{-t} is ignored if neither
+@samp{-v} nor @samp{-V} is present.) Any ligature and kerning
+information you specify in @var{tex-enc} will be used in the VPL, in
+addition to the ligature and kerning information from the AFM file.
+
+If the AFM file has no entry for a character specified in @var{tex-enc},
+that character will be omitted from the output VPL.
+
+@flindex texmsym.enc
+The @samp{-t} option is likely to be needed when you have a PostScript
+font corresponding to a @TeX{} font other than a normal text font such
+as Computer Modern. For instance, if you have a PostScript font that
+contains math symbols, you'd probably want to use the encoding in the
+@file{texmsym.enc} file supplied with Dvips. (For a start; to actually
+get usable math fonts, you have to define much more than just an
+encoding.)
+
+
+@node Changing PostScript encodings
+@subsubsection @samp{-p}: Changing PostScript encodings
+
+@cindex changing PostScript encodings
+@cindex PostScript encoding, changing
+@opindex -p @var{ps-enc}
+
+By default, Afm2tfm uses the encoding it finds in the AFM file. You can
+specify a different PostScript encoding with @samp{-p @var{ps-enc}}.
+This makes the raw TFM file (the one output by Afm2tfm) have the
+encoding specified in the encoding file @var{ps-enc}. Any ligature or
+kern information specified in @var{ps-enc} is ignored by Afm2tfm, since
+ligkern info is always omitted from the raw TFM.
+
+If you use this option, you must also arrange to download @var{ps-enc}
+as part of any document that uses this font. You do this by adding a
+line like the following one to @file{psfonts.map} (@pxref{psfonts.map}):
+@example
+zpopr Optima "MyEncoding ReEncodeFont" <myenc.enc
+@end example
+
+@findex trademark @r{character, accessing}
+@findex registered @r{character, accessing}
+@cindex extra characters, accessing
+Using @samp{-p} is the only way to access characters in a PostScript
+font that are neither encoded in the AFM file nor constructed from other
+characters. For instance, Adobe's @samp{Times-Roman} font contains the
+extra characters @samp{trademark} and @samp{registered} (among others);
+these can only be accessed through such a PostScript reencoding.
+
+@findex 8r @r{encoding, and extra characters}
+The `8r' base encoding used for the current PostScript font
+distribution does do this reencoding, for precisely this reason.
+
+
+@node Changing both encodings
+@subsubsection @samp{-T}: Changing both @TeX{} and PostScript encodings
+
+@opindex -T @var{enc-file}
+
+The option @samp{-T @var{enc-file}} is equivalent to @samp{-p
+@var{enc-file} -t @var{enc-file}}. If you make regular use of a private
+non-standard reencoding @samp{-T} is usually a better idea than the
+individual options, to avoid unexpected inconsistencies in mapping
+otherwise. An example of when you might use this option is a dingbats
+font: when you have a @TeX{} encoding that is designed to be used with a
+particular PostScript font.
+
+
+@node Reencoding with Afm2tfm
+@subsubsection Reencoding with Afm2tfm
+
+@cindex reencoding
+@cindex remapping
+
+The Afm2tfm program creates the TFM and VF files for the virtual font
+corresponding to a PostScript font by @dfn{reencoding} the PostScript
+font. Afm2tfm generates these files from two encodings: one for @TeX{}
+and one for PostScript. The @TeX{} encoding is used to map character
+numbers to character names while the PostScript encoding is used to map
+each character name to a possibly different number. In combination, you
+can get access to any character of a PostScript font at any position for
+@TeX{} typesetting.
+
+In the default case, when you specify none of the @code{-t}, @code{-p},
+or @code{-T} options, Afm2tfm uses a default @TeX{} encoding (which
+mostly corresponds to the Computer Modern text fonts) and the PostScript
+encoding found in the AFM file being read. The reencoding is also
+sometimes called a @dfn{remapping}.
+
+For example, the default encodings reencode the acute accent in two
+steps: first the default @TeX{} encoding maps the number 19 to the
+character name @samp{acute}; then the default PostScript encoding, as
+found in the AFM file for an ordinary PostScript font, maps the
+character name @samp{acute} to the number 194. (The PostScript encoding
+works in reverse, by looking in the encoding vector for the name and
+then yielding the corresponding number.) The combined mapping of 19 to
+194 shows up explicitly in the VF file and also implicitly in the fact
+that the properties of PostScript character 194 appear in position 19 of
+the TFM file for the virtual font.
+
+@cindex accents, in wrong position
+@cindex Hungarian umlaut
+@cindex dot accent
+@cindex Scandinavian A ring
+@cindex A ring, Scandinavian letter
+The default encoding of the distributed fonts (e.g., @file{ptmr.tfm})
+mostly follows plain @TeX{} conventions for accents. The exceptions:
+the Hungarian umlaut (which is at position @code{0x7D} in @samp{cmr10},
+but position @code{0xCD} in @samp{ptmr}); the dot accent (at positions
+@code{0x5F} and @code{0xC7}, respectively); and the Scandinavian A ring
+@code{\AA}, whose definition needs different tweaking. In order to use
+these accents with PostScript fonts or in math mode when
+@code{\textfont0} is a PostScript font, you will need to use the
+following definitions. These definitions will not work with the
+Computer Modern fonts for the relevant accents. They are already part
+of the distributed @file{psfonts.sty} for use with @LaTeX{}.
+
+@findex \H
+@findex \.
+@findex \dot
+@findex \AA
+@example
+\def\H#1@{@{\accent"CD #1@}@}
+\def\.#1@{@{\accent"C7 #1@}@}
+\def\dot@{\mathaccent"70C7 @}
+\newdimen\aadimen
+\def\AA@{\leavevmode\setbox0\hbox@{h@}\aadimen\ht0
+ \advance\aadimen-1ex\setbox0\hbox@{A@}\rlap@{\raise.67\aadimen
+ \hbox to \wd0@{\hss\char'27\hss@}@}A@}
+@end example
+
+@vindex CODINGSCHEME
+As a kind of summary, here are the @samp{CODINGSCHEME}s that result from
+the various possible choices for reencoding.
+
+@table @asis
+@item default encoding
+@example
+(CODINGSCHEME TeX text + AdobeStandardEncoding)
+@end example
+
+@item @samp{-p dc.enc}
+@example
+(CODINGSCHEME TeX text + DCEncoding)
+@end example
+
+@item @samp{-t dc.enc}
+@example
+(CODINGSCHEME DCEncoding + AdobeStandardEncoding)
+@end example
+
+@item @samp{-T dc.enc}
+@example
+(CODINGSCHEME DCEncoding + DCEncoding)
+@end example
+
+@end table
+
+@noindent The @samp{CODINGSCHEME} line appears in the VPL file but is
+ignored by Dvips.
+
+
+@node Encoding file format
+@subsubsection Encoding file format
+
+@cindex encoding file format
+
+Afm2tfm's encoding files have the same format as an encoding vector in a
+PostScript font. Here is a skeletal example:
+
+@example
+% @r{Comments are ignored, unless the first word after the percent sign}
+% @r{is @samp{LIGKERN}; see below.}
+/MyEncoding [ % @r{exactly 256 entries follow, each with a leading @samp{/}}
+ /Alpha /Beta /Gamma /Delta @dots{}
+ /A /B @dots{} /Z
+ @dots{} /.notdef /xfooaccent /yfooaccent /zfooaccent
+] def
+@end example
+
+These encoding files are downloaded as part of changing the encoding at
+the PostScript level (see the previous section).
+
+@cindex comments, in encoding files
+Comments, which start with a percent sign and continue until the end
+of the line, are ignored unless they start with @samp{LIGKERN} (see below).
+
+The first non-comment word of the file must start with a forward slash
+@samp{/} (i.e., a PostScript literal name) and defines the name of the
+encoding. The next word must be an left bracket @samp{[}. Following
+that must be precisely 256 character names; use @samp{/.notdef} for any
+that you want to leave undefined. Then there must be a matching right
+bracket @code{]}. A final @samp{def} token is optional. All names are
+case-sensitive.
+
+Any ligature or kern information is given as a comment. If the first
+word after the @samp{%} is @samp{LIGKERN}, then the entire rest of the
+line is parsed for ligature and kern information. This ligature and
+kern information is given in groups of words: each group is terminated
+by a space and a semicolon and (unless the semicolon is at the end of a
+line) another space.
+
+@findex LIGKERN @r{encoding file command}
+In these @code{LIGKERN} statements, three types of information may be
+specified. These three types are ligature pairs, kerns to ignore, and
+the character value of this font's boundary character.
+
+@cindex boundary character
+Throughout a @code{LIGKERN} statement, the boundary character is
+specified as @samp{||}. To set the font's boundary character value for
+@TeX{}:
+
+@example
+% LIGKERN || = 39 ;
+@end example
+
+To indicate a kern to remove, give the names of the two characters
+(without the leading slash) separated by @samp{@{@}}, as in @samp{one
+@{@} one ;}. This is intended to be reminiscent of the way you might
+use @samp{@{@}} in a @TeX{} file to turn off ligatures or kerns at a
+particular location. Either or both of the character names can be given
+as @samp{*}, which is a wild card matching any character; thus, all
+kerns can be removed with @samp{* @{@} * ;}.
+
+@cindex ligature operations
+@cindex Metafont ligature operations
+To specify a ligature, specify the names of the pair of characters,
+followed by the ligature operation (as in Metafont), followed by the
+replacing character name. Either (but not both) of the first two
+characters can be @samp{||} to indicate a word boundary.
+
+@findex =: @r{ligature operation}
+The most common operation is @samp{=:} meaning that both characters are
+removed and replaced by the third character, but by adding the @samp{|}
+character on either side of the @samp{=:}, you can retain either or both
+of the two leading characters. In addition, by suffixing the ligature
+operation with one or two @samp{>} signs, you can make the ligature
+scanning operation skip that many resulting characters before
+proceeding. This works just like in Metafont. For example, the `fi'
+ligature is specified with @w{@samp{f i =: fi ;}}. A more convoluted
+ligature is @samp{one one |=:|>> exclam ;} which separates a pair of
+adjacent @code{1}'s with an exclamation point, and then skips over two
+of the resulting characters before continuing searching for ligatures
+and kerns. You cannot give more @t{>}'s than @t{|}'s in an ligature
+operation, so there are a total of eight possibilities:
+
+@example
+=: |=: |=:> =:| =:|> |=:| |=:|> |=:|>>
+@end example
+
+The default set of ligatures and kerns built in to Afm2tfm is:
+
+@example
+% LIGKERN question quoteleft =: questiondown ;
+% LIGKERN exclam quoteleft =: exclamdown ;
+% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;
+% LIGKERN quoteleft quoteleft =: quotedblleft ;
+% LIGKERN quoteright quoteright =: quotedblright ;
+% LIGKERN space @{@} * ; * @{@} space ; 0 @{@} * ; * @{@} 0 ;
+% LIGKERN 1 @{@} * ; * @{@} 1 ; 2 @{@} * ; * @{@} 2 ; 3 @{@} * ; * @{@} 3 ;
+% LIGKERN 4 @{@} * ; * @{@} 4 ; 5 @{@} * ; * @{@} 5 ; 6 @{@} * ; * @{@} 6 ;
+% LIGKERN 7 @{@} * ; * @{@} 7 ; 8 @{@} * ; * @{@} 8 ; 9 @{@} * ; * @{@} 9 ;
+@end example
+
+
+@node Special font effects
+@subsection Special font effects
+
+@cindex oblique fonts
+@cindex slanted fonts
+@cindex fonts, slanted
+Besides the reencodings described in the previous section, Afm2tfm can
+do other manipulations. (Again, it's best to use the prebuilt fonts
+rather than attempting to remake them.)
+
+@samp{-s @var{slant}} makes an obliqued variant, as in:
+
+@example
+afm2tfm Times-Roman -s .167 -v ptmro rptmro
+@end example
+
+@noindent
+This creates @file{ptmro.vpl} and @file{rptmro.tfm}. To use this font,
+put the line
+
+@findex SlantFont
+@example
+rptmro Times-Roman ".167 SlantFont"
+@end example
+
+@noindent
+@flindex psfonts.map
+into @file{psfonts.map}. Then @samp{rptmro} (our name for the obliqued
+Times) will act as if it were a resident font, although it is actually
+constructed from Times-Roman via the PostScript routine @code{SlantFont}
+(which will slant everything 1/6 to the right, in this case).
+
+@cindex expanded fonts
+@cindex fonts, expanded
+Similarly, you can get an expanded font with
+
+@example
+afm2tfm Times-Roman -e 1.2 -v ptmrre rptmrre
+@end example
+
+@noindent
+and by recording the pseudo-resident font
+@findex ExtendFont
+
+@example
+rptmrre Times-Roman "1.2 ExtendFont"
+@end example
+
+@noindent
+in @file{psfonts.map}.
+
+You can also create a small caps font with a command such as
+@cindex small caps fonts
+@cindex fonts, small caps
+
+@example
+afm2tfm Times-Roman -V ptmrc rptmrc
+@end example
+
+@noindent
+This will generate a set of pseudo-small caps mapped into the usual
+lowercase positions and scaled down to 0.8 of the normal cap
+dimensions. You can also specify the scaling as something other than
+the default 0.8:
+
+@example
+afm2tfm Times-Roman -c 0.7 -V ptmrc rptmrc
+@end example
+
+It is unfortunately not possible to increase the width of the small caps
+independently of the rest of the font. If you want a really
+professional looking set of small caps, you need to acquire a small caps
+font.
+
+@findex PaintType
+@cindex outline fonts
+@cindex fonts, outlined
+To change the @code{PaintType} in a font from filled (0) to outlined
+(2), you can add @code{"/PaintType 2 store"} to @file{psfonts.map}, as
+in the following:
+
+@example
+rphvrl Helvetica "/PaintType 2 store"
+@end example
+
+Afm2tfm writes to standard output the line you need to add to
+@file{psfonts.map} to use that font, assuming the font is resident in
+the printer; if the font is not resident, you must add the
+@samp{<@var{filename}} command to download the font. Each identical
+line only needs to be specified once in the @samp{psfonts.map} file,
+even though many different fonts (small caps variants, or ones with
+different output encodings) may be based on it.
+
+
+@node Afm2tfm options
+@subsection Afm2tfm options
+
+@cindex options, to Afm2tfm
+@cindex afm2tfm options
+
+Synopsis:
+@example
+afm2tfm [@var{option}]@dots{} @var{afmfile}[.afm] [@var{tfmfile}[.tfm]]
+@end example
+
+Afm2tfm reads @var{afmfile} and writes a corresponding (but ``raw'',
+see below) TFM file. If @var{tfmfile} is not supplied, the base name
+of the AFM file is extended with @samp{.tfm} to get the output
+filename.
+
+The simplest example:
+
+@example
+afm2tfm Times-Roman rptmr
+@end example
+
+@cindex accents, wrong
+@cindex raw tfm files
+@noindent
+The TFM file thus created is @dfn{raw} because it omits ligature and
+kern information, and does no character remapping; it contains only
+the character information in the AFM file in TFM format, which is the form
+that @TeX{} understands. The characters have the same code in the TFM
+file as in the AFM file. For text fonts, this means printable ASCII
+characters will work ok, but little else, because standard PostScript
+fonts have a different encoding scheme than the one that plain @TeX{}
+expects (@pxref{Encodings}). Although the encodings agree for most
+printable ASCII characters, other characters such as ligatures and
+accents vary. Thus, in practice, it's almost always desirable to create
+a virtual font as well with the @samp{-v} or @samp{-V} option.
+@xref{Making a font available}.
+
+The command line options to Afm2tfm:
+
+@table @samp
+@item -a
+@opindex -a
+@cindex accent height adjustment, omitting
+By default, Afm2tfm looks for precomposed accented characters, such as
+tdieresis, and possibly adjusts the height of the basic letter (t)
+upward so that the result of using @code{\accent} (as in @code{\"t})
+is visually the same as the precomposed characters. The @code{-a}
+option omits such adjustments, so that all characters' heights remain
+as they are given in the AFM file. (Until Afm2tfm 8.4, released in
+2016, heights could also be adjusted downward, but this is no longer
+the case.)
+
+@item -c @var{ratio}
+@opindex -c @var{ratio}
+@cindex scaling small caps
+See @samp{-V}; overrides the default ratio of 0.8 for the
+scaling of small caps.
+
+@item -e @var{ratio}
+@opindex -e @var{ratio}
+@cindex expanded fonts
+@cindex condensed fonts
+Stretch characters horizontally by @var{ratio}; if less than 1.0, you
+get a condensed font.
+
+@item -O
+@opindex -O
+@cindex octal character codes
+Output all character codes in the @samp{vpl} file as octal numbers, not
+names; this is useful for symbol or other special-purpose fonts where
+character names such as @samp{A} have no meaning.
+
+@item -p @var{ps-enc}
+@opindex -p @var{ps-enc}
+Use @var{ps-enc} for the destination (PostScript) encoding of the font;
+@var{ps-enc} must be mentioned as a header file for the font in
+@samp{psfonts.map}.
+@xref{Changing PostScript encodings}.
+
+@item -s @var{slant}
+@opindex -s @var{slant}
+@cindex slanted fonts, making
+Slant characters to the right by @var{slant}. If @var{slant} is
+negative, the letters slope to the left (or they might be upright if you
+start with an italic font).
+
+@item -t @var{tex-enc}
+@opindex -t @var{tex-enc}
+Use @var{tex-enc} for the target (@TeX{}) encoding of the font.
+Ligature and kern information may also be specified in @var{file}.
+@var{file} is not mentioned in @file{psfonts.map}.
+
+@item -T @var{ps-tex-enc}
+@opindex -T @var{ps-tex-enc}
+Use @var{ps-tex-enc} for both the PostScript and target @TeX{} encodings
+of the font. Equivalent to @samp{-p @var{file} -t @var{file}}.
+
+@item -u
+@opindex -u
+Use only those characters specified in the @TeX{} encoding, and no
+others. By default, Afm2tfm tries to include all characters in the
+input font, even those not present in the @TeX{} encoding (it puts them
+into otherwise-unused positions, arbitrarily).
+
+@item -v @var{vpl-file}
+@opindex -v @var{vpl-file}
+Output a VPL (virtual property list) file, as well as a TFM file.
+
+@item -V @var{vpl-file}
+@opindex -V @var{vpl-file}
+Same as @samp{-v}, but the virtual font generated is a pseudo small caps
+font obtained by scaling uppercase letters by 0.8 to typeset
+lowercase. This font handles accented letters and retains proper
+kerning.
+@end table
+
+
+@node psfonts.map
+@section @file{psfonts.map}: PostScript font catalog
+
+@flindex psfonts.map
+@cindex non-resident fonts
+@cindex downloading PostScript fonts
+@cindex fonts, downloading
+
+The @file{psfonts.map} file associates a PostScript font with related
+files and constructs. Each line has the format:
+
+@example
+@var{filename} @var{PostScript-name} @var{options}
+@end example
+
+@kindex < @r{font downloading}
+For example, the line
+@example
+rpstrn StoneInformal <StoneInformal.pfb
+@end example
+@noindent
+causes Dvips to download @file{StoneInformal.pfb} (just as if it were
+a header file, @pxref{Header files}) if the DVI file (or a virtual
+font, @pxref{Virtual fonts}) references the TFM file @samp{rpstrn}.
+The PostScript @code{/FontName} of the font defined inside the @samp{pfb}
+file should be @code{StoneInformal}.
+
+@cindex transforming downloaded fonts
+@cindex expanded fonts
+@cindex wide fonts
+@cindex narrow fonts
+You can generate transformed fonts with a line like this:
+@example
+rpstrc StoneInformal <StoneInformal.pfb ".8 ExtendFont"
+@end example
+
+@noindent
+@xref{Special font effects}, for a
+complete list of font effects.
+
+@cindex reencoding PostScript fonts
+You can change the encoding of the Type 1 font at the PostScript
+level with a @samp{ReEncodeFont} instruction, plus the name of the
+encoding file. This allows you access to characters that may be present
+in the Type 1 font file, but not encoded by default---most of the
+preaccented characters, for example. An example:
+@smallexample
+pstrn8r StoneInformal "TeXBase1Encoding ReEncodeFont" <8r.enc <pstrn8a.pfb
+@end smallexample
+
+@cindex 8r font encoding
+@cindex base encoding, recommended
+The @samp{8r} encoding mentioned here has been designed to serve as a
+base for all downloadable fonts; it allows access to all the characters
+commonly present in a Type 1 font. For more details, see the
+@file{8r.enc} source file that comes with (and is installed with) Dvips.
+
+@kindex <[ @r{encoding vector downloading}
+You may notice that the same syntax is used for downloading encoding
+vectors and Type 1 font files. To make your intentions clear, you can
+also use @samp{<[} to explicitly indicate you are downloading an
+encoding vector, as in:
+@smallexample
+pstrn8r StoneInformal "TeXBase1Encoding ReEncodeFont" <[8r.enc <pstrn8a.pfb
+@end smallexample
+
+@flindex .enc @r{extension for encoding vectors}
+If the filename of your encoding vector does not end in @samp{.enc}, and
+you are using partial font downloading, you must use the @samp{<[}
+syntax, or Dvips will not download the font properly.
+
+@flindex .pfa @r{extension required for partial downloading}
+@flindex .pfb @r{extension required for partial downloading}
+Similarly, the name of the Type 1 font file itself must have extension
+@file{.pfa} or @file{.pfb} for partial downloading to work properly.
+
+@cindex pfb files, automatically unpacked
+When using PFB files, Dvips is smart enough to unpack the binary PFB
+format into printable ASCII so there is no need to perform this
+conversion yourself. In addition, Dvips scans the font to determine its
+memory usage, just as it does for other header files (@pxref{Header
+files}).
+
+@cindex partial font downloading
+@cindex downloading fonts partially
+If the @samp{j} config file or command-line option is enabled (as it
+is by default), @file{StoneInformal.pfb} will be @dfn{partially
+downloaded}---only those characters your document actually uses will
+be extracted and downloaded, and the remainder discarded.
+@xref{Option details}.
+
+@cindex whole font downloading
+@cindex multiple master fonts
+@cindex Minion typeface family
+@kindex << @r{whole font downloading}
+Adobe Multiple Master fonts, such as Minion, cannot be partially
+downloaded. To partially download in general, but avoid partial
+downloading for individual fonts, use @samp{<<} instead @samp{<}:
+@example
+pmnr8r Minion <<Minion.pfb
+@end example
+
+Here is a brief summary of how @file{psfonts.map} is read:
+
+@enumerate
+@item If a line is empty or begins with a space, percent, asterisk,
+semicolon, or hash mark, it is ignored.
+
+@item Otherwise, the line is separated into words, where words are
+separated by spaces or tabs, except that if a word begins with a double
+quote, it extends until the next double quote or the end of the line.
+
+@item If a word starts with @samp{<<}, it is taken as a font file to be
+wholly downloaded. Use this to avoid partial downloading, as described
+above.
+
+@item If a word starts with @samp{<[}, it is taken as an encoding file
+to be downloaded. Use this if the name of the encoding file does end in
+@samp{.enc}, also as described above.
+
+@item If a word starts with a @samp{<} character, it is
+treated as a header file that needs to be downloaded. If the name ends
+in @samp{.pfa} or @samp{.pfb}, it is taken as Type 1 font file that will
+be partially downloaded if the @samp{j} option is in effect. There can
+be more than one such header for a given font. If a @samp{<} is a word
+by itself, the next word is taken as the name of the header file.
+
+@item If a word starts with a @samp{"} character, it is taken as PostScript
+code used in generating that font, and is inserted into the output
+verbatim at the appropriate point. (And the double quotes beginning and
+ending the word are removed.)
+
+@item Otherwise the word is a name. The first such name is the TFM
+file, that either a DVI file or a virtual font file can refer to. If
+there is a second name, it is used as the PostScript name and should
+match what is defined in the downloaded file; if there is only one
+name, it is used for both the @TeX{} name and the PostScript name.
+
+@end enumerate
+
+
+@node Color
+@chapter Color
+
+@cindex color
+
+@cindex Hafner, Jim
+Dvips supports one-pass multi-color printing of @TeX{} documents on any
+color PostScript device. Initially added by Jim Hafner, IBM Research,
+@email{hafner@@almaden.ibm.com}, the color support has gone through many
+changes by Tomas Rokicki. Besides the source code support itself, there
+are additional @TeX{} macro files: @samp{colordvi.tex} and
+@samp{blackdvi.tex}, and corresponding @samp{.sty} versions for use with
+@LaTeX{}.
+
+In this section we describe the use of color from the document
+preparer's point of view and then add some instructions on installation
+for the @TeX{} administrator.
+
+@menu
+* Color macro files:: TeX macro definitions.
+* User-definable colors:: Adding your own colors.
+* Color subtleties:: Subtleties in using color.
+* Ted Turner:: Printing in black/white after colorizing.
+* Color device configuration:: Configuring Dvips for color devices.
+* Color support details:: Color support details
+@end menu
+
+
+@node Color macro files
+@section Color macro files
+
+@cindex macros for color
+@cindex color macros
+
+All the color macro commands are defined in @samp{colordvi.tex} (or
+@samp{colordvi.sty}). To access these macros simply add to the top of
+your plain @TeX{} file the command:
+@example
+\input colordvi
+@end example
+@noindent
+For (the obsolete) @LaTeX{} 2.09, add the @samp{colordvi} style option as in:
+@example
+\documentstyle[12pt,colordvi]@{article@}
+@end example
+@noindent
+For @LaTeX{}2e, these examples are not applicable. Instead, please see
+the documentation for the graphics package
+(@url{https://ctan.org/pkg/graphics}), and the epslatex document
+(@url{https://ctan.org/pkg/epslatex}).
+
+@cindex Crayola crayon box
+@cindex Pantone colors
+@cindex color names, mixed case
+These macros provide two basic kinds of color macros: ones for local
+color changes (a few words, a single symbol) and one for global color
+changes (the whole document). All the color names use a mixed case
+scheme to avoid conflicts with other macros. There are 68 predefined
+colors, with names taken primarily from the Crayola crayon box of 64
+colors, and one pair of macros for the user to set his own color pattern
+(@pxref{User-definable colors}). You can browse the file
+@samp{colordvi.tex} for a list of the predefined colors. The comments
+in this file also show a rough correspondence between the crayon names
+and Pantones.
+
+A local color command has the form
+
+@example
+\@var{ColorName}@{this is the color @var{ColorName}@}
+@end example
+
+@findex \@var{ColorName}
+@noindent
+where @var{ColorName} is the name of a predefined color, e.g.,
+@samp{Blue}. As shown, these macros take one argument, the text to
+print in the specified color. This can be used for nested color changes
+since it restores the original color state when it completes. For
+example:
+
+@example
+This text is normal but here we are \Red@{switching to red,
+\Blue@{nesting blue@}, recovering the red@} and back to original.
+@end example
+
+@noindent
+@cindex color nesting level
+The color nesting level has no hard limit, but it is not advisable to
+nest too deeply lest you and the reader lose track of the color history.
+
+The global color command has the form
+
+@example
+\text@var{ColorName}
+@end example
+
+@noindent
+@findex \text@var{ColorName}
+These macros take no arguments and changes the default color from that
+point on to @var{ColorName}. This of course can be overridden globally
+by another such command or locally by local color commands. For example,
+expanding on the example above, we might have
+
+@example
+\textGreen
+This text is green but here we are \Red@{switching to red,
+\Blue@{nesting blue@}, recovering the red@} and back to
+original green.
+\textCyan
+The text from here on will be cyan until
+\Yellow@{locally changed to yellow@}. Now we are back to cyan.
+@end example
+
+The color commands will even work in math mode and across math mode
+boundaries. This means that if you have a color before going into math
+mode, the mathematics will be set in that color as well. In alignment
+environments like @code{\halign}, @samp{tabular} or @samp{eqnarray},
+local color commands cannot extend beyond the alignment characters.
+
+Because local color commands respect only some environment and
+delimiter changes besides their own, care must be taken in setting
+their scope. It is best not to have them stretch too far.
+
+At the present time there are no macros for color environments in @LaTeX{}
+which might have a larger range. This is primarily to keep the @TeX{}
+and @LaTeX{} use compatible.
+
+
+@node User-definable colors
+@section User-definable colors
+
+@cindex user-definable colors
+@cindex colors, user-definable
+
+There are two ways for the user to specify colors not already defined.
+For local changes, there is the command @code{\Color} which takes two
+arguments. The first argument is four numbers between zero and one and
+specifies the intensity of cyan, magenta, yellow and black (CMYK) in
+that order. The second argument is the text that should appear in the
+given color. For example, suppose you want the words ``this color is
+pretty'' to appear in a color which is 50% cyan, 85% magenta, 40% yellow
+and 20% black. You would use the command
+
+@example
+\Color@{.5 .85 .4 .2@}@{this color is pretty@}
+@end example
+
+For global color changes, there is a command @code{\textColor} which
+takes one argument, the CMYK quadruple of relative color intensities.
+For example, if you want the default color to be as above, then the
+command
+
+@example
+\textColor@{.5 .85 .4 .2@}
+The text from now on will be this pretty color
+@end example
+
+@noindent
+will do the trick.
+
+Making a global color change in the midst of nested local colors is
+highly discouraged. Consequently, Dvips will give you warning message
+and do its best to recover by discarding the current color history.
+
+
+@node Color subtleties
+@section Color subtleties
+
+@cindex color subtleties
+
+Color macros are defined via @code{\special} keywords. As such, they
+are put in the @samp{.dvi} file only as explicit message strings to the
+driver. The (unpleasant) result is that certain unprotected regions of
+the text can have unwanted color side effects. For example, if a color
+region is split by @TeX{} across a page boundary, then the footers of
+the current page (e.g., the page number) and the headers of the next
+page can inherit that color. To avoid this effect globally, users
+should make sure that these special regions of the text are defined with
+their own local color commands. For example, to protect the
+header and footer in plain @TeX{}, use
+
+@example
+\headline@{\Black@{My Header@}@}
+\footline@{\Black@{\hss\tenrm\folio\hss@}@}
+@end example
+
+This warning also applies to figures and other insertions, so be careful!
+
+Of course, in @LaTeX{}, this is much more difficult to do because of the
+complexity of the macros that control these regions. This is
+unfortunate but inevitable, because @TeX{} and @LaTeX{} were
+not written with color in mind.
+
+Even when writing your own macros, much care must be taken. The macros
+that `colorize' a portion of the text work prefix the text work by
+outputting one @code{\special} command to turn the color on before the
+text, and outputting another @code{\special} command afterwards to
+restore the original color. It is often useful to ensure that @TeX{} is
+in horizontal mode before the first special command is issued; this can
+be done by prefixing the color command with @code{\leavevmode}.
+
+
+@node Ted Turner
+@section Printing in black/white after colorizing
+
+If you have a @TeX{} or @LaTeX{} document written with color macros and
+you want to print it in black and white there are two options. On all
+(good) PostScript devices, printing a color file will print in
+corresponding gray levels. This is useful to get a rough idea of the
+colors without using expensive color printing devices. The second
+option is to replace the call to input @file{colordvi.tex} with
+@samp{blackdvi.tex} (and similarly for the @samp{.sty} files). So in
+the above example, replacing the word @samp{colordvi} with
+@samp{blackdvi} suffices. @file{blackdvi.tex} defines the color macros
+as no-ops, and so will produce normal black/white printing. By this
+simple mechanism, the user can switch to all black/white printing
+without having to ferret out the color commands. Also, some device
+drivers, particularly non-PostScript ones like screen previewers, will
+simply ignore the color commands and so print in black/white.
+Hopefully, in the future screen previewers for color displays will be
+compatible with some form of color support.
+
+
+@node Color device configuration
+@section Color device configuration
+
+@cindex color configuration
+@cindex configuration, of color devices
+
+To configure Dvips for a particular color device you need to fine tune
+the color parameters to match your device's color rendition. To do this,
+you will need a Pantone chart for your device. The header file
+@samp{color.lpro} shows a (rough) correspondence between the Crayola
+crayon names and the Pantone numbers and also defines default CMYK
+values for each of the colors. Note that these colors must be defined
+in CMYK terms and not RGB, as Dvips outputs PostScript color commands in
+CMYK. This header file also defines (if they are not known to the
+interpreter) the PostScript commands @samp{setcmykcolor} and
+@samp{currentcmykcolor} in terms of a RGB equivalent so if your device
+only understands RGB, there should be no problem.
+
+@cindex Phaser printer, used for color calibration
+@cindex Tektronix Phaser printer, used for color calibration
+The parameters set in this file were determined by comparing the Pantone
+chart of a Tektronix Phaser printer with the actual Crayola Crayons.
+Because these were defined for a particular device, the actual color
+rendition on your device may be very different. There are two ways to
+adjust this. One is to use the PAntone chart for your device to rewrite
+@samp{color.lpro} prior to compilation and installation. A better
+alternative, which supports multiple devices, is to add a header file
+option in the configuration file (@pxref{Configuration file commands})
+for each device that defines, in @samp{userdict}, the color parameters
+for those colors that need redefining.
+
+For example, if you need to change the parameters defining
+@samp{Goldenrod} (approximately Pantone 109 on the Phaser) for your
+device @samp{mycolordev}, do the following. In the Pantone chart for
+your device, find the CMYK values for Pantone 109. Let's say they are
+@samp{@{\ 0 0.10 0.75 0.03 @}}. Then create a header file named
+@samp{mycolordev.pro} with the commands
+
+@example
+userdict begin
+/Goldenrod @{ 0 0.10 0.75 0.03 setcmykcolor@} bind def
+@end example
+
+@noindent
+Finally, in @samp{config.mycolordev} add the line
+
+@example
+h mycolordev.pro
+@end example
+
+@noindent
+This will then define @samp{Goldenrod} in your device's CMYK values in
+@file{userdict} which is checked before defining it in @file{TeXdict} by
+@file{color.pro}. (On MS-DOS, you will have to call this file
+@file{mycolordev.cfg}.)
+
+This mechanism, together with additions to @file{colordvi.tex} and
+@file{blackdvi.tex} (and the @samp{.sty} files), can also be used to
+predefine other colors for your users.
+
+
+@node Color support details
+@section Color support details
+
+To support color, Dvips recognizes a certain set of specials. These
+specials start with the keyword @samp{color} or the keyword
+@samp{background}, followed by a color specification.
+
+@menu
+* Color specifications::
+* Color specials::
+@end menu
+
+
+@node Color specifications
+@subsection Color specifications
+
+@cindex color specifications
+
+What is a color specification? One of three things. First, it might be
+a PostScript procedure as defined in a PostScript header file. The
+@file{color.pro} file defines 64 of these, including @samp{Maroon}.
+This PostScript procedure must set the current color to be some value;
+in this case, @samp{Maroon} is defined as @samp{0 0.87 0.68 0.32
+setcmykcolor}.
+
+The second possibility is the name of a color model (initially, one of
+@samp{rgb}, @samp{hsb}, @samp{cmyk}, or @samp{gray}) followed by the
+appropriate number of parameters. When Dvips encounters such a macro,
+it sends out the parameters first, followed by the string created by
+prefixing @samp{TeXcolor} to the color model. Thus, the color
+specification @samp{rgb 0.3 0.4 0.5} would generate the PostScript code
+@samp{0.3 0.4 0.5 TeXrgbcolor}. Note that the case of zero arguments is
+disallowed, as that is handled by the single keyword case
+(@samp{Maroon}) above, where no changes to the name are made before it
+is sent to the PostScript file.
+
+The third and final type of color specification is a double quote
+followed by any sequence of PostScript. The double quote is stripped
+from the output. For instance, the color specification
+@samp{"AggiePattern setpattern} will set the `color' to the Aggie logo
+pattern (assuming such exists.)
+
+
+@node Color specials
+@subsection Color specials
+
+We will describe @samp{background} first, since it is the simplest. The
+@samp{background} keyword must be followed by a color specification.
+That color specification is used as a fill color for the background.
+The last @samp{background} special on a page is the one that gets
+issued, and it gets issued at the very beginning of the page, before any
+text or specials are sent. (This is possible because the prescan phase
+of Dvips notices all of the color specials so that the appropriate
+information can be written out during the second phase.)
+
+The @samp{color} special itself has three forms.
+The first is just @samp{color} followed by a color specification. In
+this case, the current global color is set to that color; the color stack
+must be empty when such a command is executed.
+
+The second form is @samp{color push} followed by a color specification.
+This saves the current color on the color stack and sets the color to be
+that given by the color specification. This is the most common way to
+set a color.
+
+The final version of the @samp{color} special is just @samp{color pop},
+with no color specification; this says to pop the color last pushed on
+the color stack from the color stack and set the current color to be
+that color.
+
+Dvips correctly handles these color specials across pages, even when the
+pages are repeated or reversed.
+
+These color specials can be used for things such as patterns or screens
+as well as simple colors. However, note that in the PostScript, only
+one color specification can be active at a time. For instance, at the
+beginning of a page, only the bottommost entry on the color stack is
+sent; also, when a color is popped, all that is done is that the color
+specification from the previous stack entry is sent. No @samp{gsave} or
+@samp{grestore} is used. This means that you cannot easily mix usage of
+the @samp{color} specials for screens and colors, just one or the other.
+This may be addressed in the future by adding support for different
+categories of color-like state.
+
+
+@node Index
+@unnumbered Index
+
+@printindex cp
+
+@bye
diff --git a/Build/source/texk/dvipsk/eepic-nan.test b/Build/source/texk/dvipsk/eepic-nan.test
new file mode 100755
index 00000000000..fc0713a7338
--- /dev/null
+++ b/Build/source/texk/dvipsk/eepic-nan.test
@@ -0,0 +1,11 @@
+#! /bin/sh -vx
+# $Id$
+# Public domain.
+# ensure we don't get nan from eepic doc.
+# Report from Stefan Moser to mactex-support, 20 Oct 2010 02:37:45.
+
+tst=eepic-nan
+./dvips -Ppdf $srcdir/testdata/$tst.dvi -o || exit 1
+grep ' nan ' $tst.ps && exit 1
+
+exit 0
diff --git a/Build/source/texk/dvipsk/emspecial.c b/Build/source/texk/dvipsk/emspecial.c
new file mode 100644
index 00000000000..38e450d050e
--- /dev/null
+++ b/Build/source/texk/dvipsk/emspecial.c
@@ -0,0 +1,1469 @@
+/* $Id$
+ * emspecial.c
+ * This routine handles the emTeX special commands.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too!*/
+
+#include <ctype.h>
+#include <stdlib.h>
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+#ifdef EMTEX
+/* emtex specials, added by rjl */
+
+#ifndef TRUE
+#define TRUE 1
+#define FALSE 0
+#endif
+
+static long emmax = 161;
+
+/*
+ * We define these seek constants if they don't have their
+ * values already defined.
+ */
+#ifndef SEEK_SET
+#define SEEK_SET (0)
+#endif
+#ifndef SEEK_END
+#define SEEK_END (2)
+#endif
+
+struct empt {
+ struct empt *next;
+ shalfword point;
+ integer x, y;
+};
+
+static struct empt **empoints = NULL;
+boolean emused = FALSE; /* true if em points used on this page */
+integer emx, emy;
+
+struct emunit {
+ const char *unit;
+ float factor;
+};
+struct emunit emtable[] = {
+ {"pt",72.27},
+ {"pc",72.27/12},
+ {"in",1.0},
+ {"bp",72.0},
+ {"cm",2.54},
+ {"mm",25.4},
+ {"dd",72.27/(1238.0/1157)},
+ {"cc",72.27/12/(1238.0/1157)},
+ {"sp",72.27*65536},
+ {0,0.0}
+};
+
+static void emgraph(char *filename, float emwidth, float emheight);
+
+/* clear the empoints array if necessary */
+void
+emclear(void)
+{
+ int i;
+ if (emused && empoints)
+ for (i=0; i<emmax; i++)
+ empoints[i] = 0;
+ emused = FALSE;
+}
+
+/* put an empoint into the empoints array */
+static struct empt *
+emptput(shalfword point, integer x, integer y)
+{
+ struct empt *p;
+ int start;
+
+ emused = TRUE;
+ start = point % emmax;
+ p = empoints[start];
+ while ( p ) {
+ if ( p->point == point )
+ break;
+ p = p->next;
+ }
+ if (p == 0) {
+ p = (struct empt *)mymalloc(sizeof(struct empt));
+ p->next = empoints[start];
+ empoints[start] = p;
+ }
+ p->point = point;
+ p->x = x;
+ p->y = y;
+ return(p);
+}
+
+/* get an empoint from the empoints array */
+static struct empt *
+emptget(shalfword point)
+{
+ struct empt *p;
+ int start;
+
+ start = point % emmax;
+ if (emused == TRUE) {
+ p = empoints[start];
+ while (p) {
+ if (p->point == point)
+ return p;
+ p = p->next;
+ }
+ }
+ sprintf(errbuf,"!em: point %d not defined",point);
+ specerror(errbuf);
+ return(NULL); /* never returns due to error */
+}
+
+
+/* convert width into dpi units */
+static float
+emunits(float width, char *unit)
+{
+struct emunit *p;
+ for (p=emtable; p->unit; p++) {
+ if (strcmp(p->unit,unit)==0)
+ return( width * actualdpi / p->factor );
+ }
+ return (-1.0); /* invalid unit */
+}
+
+/* The main routine for \special{em:graph ...} called from dospecial.c */
+/* the line cut parameter is not supported (and is ignored) */
+
+void
+emspecial(char *p)
+{
+float emwidth, emheight;
+shalfword empoint1, empoint2;
+struct empt *empoint;
+char emunit[30];
+char emstr[500];
+char *emp;
+
+ hvpos();
+ for (emp = p+3; *emp && isspace((unsigned char)*emp); emp++); /* skip blanks */
+ if (strncmp(emp, "linewidth", 9) == 0) {
+ /* code for linewidth */
+ for (emp = emp+9; *emp && isspace((unsigned char)*emp); emp++); /* skip blanks */
+ sscanf(emp, "%f%2s", &emwidth, emunit);
+ emwidth = emunits(emwidth,emunit);
+ if (emwidth!=-1.0) {
+ snprintf(emstr, sizeof(emstr), "%.1f setlinewidth", emwidth);
+ cmdout(emstr);
+#ifdef DEBUG
+ if (dd(D_SPECIAL))
+ fprintf(stderr, "em special: Linewidth set to %.1f dots\n",
+ emwidth);
+#endif
+ } else {
+ sprintf(errbuf,"Unknown em: special width");
+ specerror(errbuf);
+ }
+ }
+ else if (strncmp(emp, "moveto", 6) == 0) {
+#ifdef DEBUG
+ if (dd(D_SPECIAL))
+#ifdef SHORTINT
+ fprintf(stderr, "em special: moveto %ld,%ld\n", hh, vv);
+#else
+ fprintf(stderr, "em special: moveto %d,%d\n", hh, vv);
+#endif
+#endif
+ emx = hh;
+ emy = vv;
+ }
+ else if (strncmp(emp, "lineto", 6) == 0) {
+#ifdef DEBUG
+ if (dd(D_SPECIAL))
+#ifdef SHORTINT
+ fprintf(stderr, "em special: lineto %ld,%ld\n", hh, vv);
+#else
+ fprintf(stderr, "em special: lineto %d,%d\n", hh, vv);
+#endif
+#endif
+ cmdout("np");
+ numout(emx);
+ numout(emy);
+ cmdout("a");
+ numout(hh);
+ numout(vv);
+ cmdout("li");
+ cmdout("st");
+ emx = hh;
+ emy = vv;
+ }
+ else if (strncmp(emp, "point", 5) == 0) {
+ if (empoints == NULL) {
+ empoints =
+ (struct empt **)mymalloc((integer)emmax * sizeof(struct empt *));
+ emused = TRUE;
+ emclear();
+ }
+ for (emp = emp+5; *emp && isspace((unsigned char)*emp); emp++); /* skip blanks */
+ empoint1 = (shalfword)atoi(emp);
+ empoint = emptput(empoint1,hh,vv);
+#ifdef DEBUG
+ if (dd(D_SPECIAL))
+#ifdef SHORTINT
+ fprintf(stderr, "em special: Point %d is %ld,%ld\n",
+#else
+ fprintf(stderr, "em special: Point %d is %d,%d\n",
+#endif
+ empoint->point, empoint->x, empoint->y);
+#endif
+ }
+ else if (strncmp(emp, "line", 4) == 0) {
+ for (emp = emp+4; *emp && isspace((unsigned char)*emp); emp++); /* skip blanks */
+ empoint1 = (shalfword)atoi(emp);
+ for (; *emp && isdigit((unsigned char)*emp); emp++); /* skip point 1 */
+ if ( *emp && strchr("hvp",*emp)!=0 )
+ emp++; /* skip line cut */
+ for (; *emp && isspace((unsigned char)*emp); emp++); /* skip blanks */
+ if ( *emp && (*emp==',') )
+ emp++; /* skip comma separator */
+ for (; *emp && isspace((unsigned char)*emp); emp++); /* skip blanks */
+ empoint2 = (shalfword)atoi(emp);
+ for (; *emp && isdigit((unsigned char)*emp); emp++); /* skip point 2 */
+ if ( *emp && strchr("hvp",*emp)!=0 )
+ emp++; /* skip line cut */
+ for (; *emp && isspace((unsigned char)*emp); emp++); /* skip blanks */
+ if ( *emp && (*emp==',') )
+ emp++; /* skip comma separator */
+ emwidth = -1.0;
+ emunit[0]='\0';
+ sscanf(emp, "%f%2s", &emwidth, emunit);
+ emwidth = emunits(emwidth,emunit);
+#ifdef DEBUG
+ if (dd(D_SPECIAL))
+ fprintf(stderr, "em special: Line from point %d to point %d\n",
+ empoint1, empoint2);
+#endif
+ cmdout("np");
+ if (emwidth!=-1.0) {
+#ifdef DEBUG
+ if (dd(D_SPECIAL))
+ fprintf(stderr,"em special: Linewidth temporarily set to %.1f dots\n",
+ emwidth);
+#endif
+ strcpy(emstr,"currentlinewidth");
+ cmdout(emstr);
+ snprintf(emstr, sizeof(emstr), "%.1f setlinewidth", emwidth);
+ cmdout(emstr);
+ }
+ empoint = emptget(empoint1);
+ numout(empoint->x);
+ numout(empoint->y);
+ cmdout("a");
+ empoint = emptget(empoint2);
+ numout(empoint->x);
+ numout(empoint->y);
+ cmdout("li");
+ cmdout("st");
+ if (emwidth!=-1.0) {
+ strcpy(emstr,"setlinewidth");
+ cmdout(emstr);
+ }
+ }
+ else if (strncmp(emp, "message", 7) == 0) {
+ fprintf_str(stderr, "em message: %s\n", emp+7);
+ }
+ else if (strncmp(emp, "graph", 5) == 0) {
+ int i;
+ for (emp = emp+5; *emp && isspace((unsigned char)*emp); emp++); /* skip blanks */
+ for (i=0; *emp && !isspace((unsigned char)*emp) && !(*emp==','); emp++) {
+ if (i > (int)sizeof(emstr) - 2) {
+ fprintf(stderr, "em:graph: special too long, truncating\n");
+ break;
+ }
+ emstr[i++] = *emp; /* copy filename */
+ }
+ emstr[i] = '\0';
+ /* now get optional width and height */
+ emwidth = emheight = -1.0; /* no dimension is <= 0 */
+ for (; *emp && ( isspace((unsigned char)*emp) || (*emp==',') ); emp++)
+ ; /* skip blanks and comma */
+ if (*emp) {
+ sscanf(emp, "%f%2s", &emwidth, emunit); /* read width */
+ emwidth = emunits(emwidth,emunit); /* convert to pixels */
+ for (; *emp && (*emp=='.'||isdigit((unsigned char)*emp)||isalpha((unsigned char)*emp)); emp++)
+ ; /* skip width dimension */
+ for (; *emp && ( isspace((unsigned char)*emp) || (*emp==',') ); emp++)
+ ; /* skip blanks and comma */
+ if (*emp) {
+ sscanf(emp, "%f%2s", &emheight, emunit); /* read height */
+ emheight = emunits(emheight,emunit)*vactualdpi/actualdpi;
+ }
+ }
+ if (emstr[0]) {
+ emgraph(emstr,emwidth,emheight);
+ }
+ else {
+ fprintf(stderr, "em:graph: no file given\n");
+ }
+ }
+ else {
+ sprintf(errbuf,
+ "Unknown em: command (%s) in \\special will be ignored", p);
+ specerror(errbuf);
+ }
+ return;
+ }
+
+
+/* em:graph routines */
+
+/* The graphics routines currently decode 3 types of IBM-PC based graphics */
+/* files: .pcx, .bmp, .msp. The information on the formats has occasionally */
+/* been sketchy, and subject to interpretation. I have attempted to implement*/
+/* these routines to correctly decode the graphics file types mentioned. */
+/* The compressed .bmp file type has not been tested fully due to a lack of */
+/* test files. */
+/* */
+/* The method of reading in the headers of the binary files is ungainly, but */
+/* portable. Failure to use a byte by byte read and convert method will */
+/* result in portability problems. Specifically there is no requirement that */
+/* elements of a C structure be contiguous, only that they have an ascending */
+/* order of addresses. */
+/* */
+/* The current implementations of the graphics format to postscript */
+/* conversion are not the most efficient possible. Specifically: color */
+/* formats are converted to RGB ratios prior to using a simple thresholding */
+/* method to determine if the postscript bit is to be set. The thresholding */
+/* method is compabible with that used in emtex's drivers. */
+/* */
+/* Please send bug reports relating to the em:graph routines to: */
+/* maurice@bruce.cs.monash.edu.au */
+/* */
+/* My thanks to Russell Lang for his assistance with the implementation of */
+/* these routines in a manner compatible with dvips and for the optimization */
+/* of some routines. */
+/* */
+/* Maurice Castro */
+/* 8 Oct 92 */
+
+/* Routines to read binary numbers from IBM PC file types */
+static integer
+readinteger(FILE *f)
+{
+ integer i;
+ int r;
+
+ i = 0;
+ for (r = 0; r < 4; r++)
+ {
+ i = i | ( ((integer) fgetc(f)) << (8*r) );
+ }
+ return(i);
+}
+
+static halfword
+readhalfword(FILE *f)
+{
+ halfword i;
+ int r;
+
+ i = 0;
+ for (r = 0; r < 2; r++)
+ {
+ i = i | ( ((halfword) fgetc(f)) << (8*r) );
+ }
+ return(i);
+}
+
+#define readquarterword(f) ((unsigned char)fgetc(f))
+#define tobyte(x) ((x/8) + (x%8 ? 1 : 0))
+
+/* These routines will decode PCX files produced by Microsoft
+ * Windows Paint. Other programs may not produce files which
+ * will be successfully decoded, most notably version 1.xx of
+ * PC Paint. */
+
+/*
+ * Type declarations. integer must be a 32-bit signed; shalfword must
+ * be a sixteen-bit signed; halfword must be a sixteen-bit unsigned;
+ * quarterword must be an eight-bit unsigned.
+ */
+typedef struct
+{
+ quarterword man;
+ quarterword ver;
+ quarterword enc;
+ quarterword bitperpix;
+ halfword xmin;
+ halfword ymin;
+ halfword xmax;
+ halfword ymax;
+ halfword hres;
+ halfword vres;
+ quarterword pal[48];
+ quarterword reserved;
+ quarterword colorplanes;
+ halfword byteperline;
+ halfword paltype;
+ quarterword fill[58];
+} PCXHEAD;
+
+static int
+PCXreadhead(FILE *pcxf, PCXHEAD *pcxh)
+{
+ pcxh->man = readquarterword(pcxf);
+ pcxh->ver = readquarterword(pcxf);
+ pcxh->enc = readquarterword(pcxf);
+ pcxh->bitperpix = readquarterword(pcxf);
+ pcxh->xmin = readhalfword(pcxf);
+ pcxh->ymin = readhalfword(pcxf);
+ pcxh->xmax = readhalfword(pcxf);
+ pcxh->ymax = readhalfword(pcxf);
+ pcxh->hres = readhalfword(pcxf);
+ pcxh->vres = readhalfword(pcxf);
+ fread(pcxh->pal, 1, 48, pcxf);
+ pcxh->reserved = readquarterword(pcxf);
+ pcxh->colorplanes = readquarterword(pcxf);
+ pcxh->byteperline = readhalfword(pcxf);
+ pcxh->paltype = readhalfword(pcxf);
+ fread(pcxh->fill, 1, 58, pcxf);
+
+ if (feof(pcxf))
+ return(0); /* fail */
+ if (pcxh->man != 0x0a)
+ return(0); /* fail */
+ if (pcxh->enc != 0x1)
+ return(0); /* fail */
+ return(1); /* success */
+ }
+
+static int
+PCXreadline(FILE *pcxf,
+ unsigned char *pcxbuf,
+ unsigned int byteperline)
+{
+ int n;
+ int c;
+ int i;
+
+ n = 0;
+ memset(pcxbuf,0,byteperline);
+ do {
+ c = fgetc(pcxf);
+ if ((c & 0xc0) == 0xc0) {
+ i = c & 0x3f;
+ c = fgetc(pcxf) & 0xff;
+ while ((i--) && (n < byteperline)) pcxbuf[n++] = c;
+ }
+ else {
+ pcxbuf[n++] = c & 0xff;
+ }
+ } while (n < byteperline);
+ if (c==EOF) n=0;
+ return(n);
+}
+
+static void
+PCXgetpalette(FILE *pcxf, PCXHEAD *pcxh,
+ unsigned char *r,
+ unsigned char *g,
+ unsigned char *b)
+{
+ int i;
+
+ /* clear palette */
+ for (i=0; i < 256; i++) {
+ r[i] = 0;
+ g[i] = 0;
+ b[i] = 0;
+ }
+
+ switch (pcxh->ver) {
+ case 0:
+ /* version 2.5 of PC Paint Brush */
+ for (i=0; i < 16; i++) {
+ r[i] = pcxh->pal[i*3];
+ g[i] = pcxh->pal[i*3+1];
+ b[i] = pcxh->pal[i*3+2];
+ }
+ break;
+ case 2:
+ if (pcxh->colorplanes != 1) {
+ /* version 2.8 of PC Paint Brush with valid Palette */
+ for (i=0; i < 16; i++) {
+ r[i] = pcxh->pal[i*3];
+ g[i] = pcxh->pal[i*3+1];
+ b[i] = pcxh->pal[i*3+2];
+ }
+ }
+ else { /* not sure if this is correct - rjl */
+ /* mono palette */
+ r[0] = 0x00; g[0] = 0x00; b[0] = 0x00;
+ r[1] = 0xff; g[1] = 0xff; b[1] = 0xff;
+ }
+ break;
+ case 3:
+ /* version 2.8 of PC Paint Brush with no valid Palette */
+ /* either mono or default */
+
+ if (pcxh->colorplanes != 1) {
+ /* Color default palette - should be checked */
+ r[0] = 0x00; g[0] = 0x00; b[0] = 0x00;
+ r[1] = 0x80; g[1] = 0x00; b[1] = 0x00;
+ r[2] = 0x00; g[2] = 0x80; b[2] = 0x00;
+ r[3] = 0x80; g[3] = 0x80; b[3] = 0x00;
+ r[4] = 0x00; g[4] = 0x00; b[4] = 0x80;
+ r[5] = 0x80; g[5] = 0x00; b[5] = 0x80;
+ r[6] = 0x00; g[6] = 0x80; b[6] = 0x80;
+ r[7] = 0x80; g[7] = 0x80; b[7] = 0x80;
+ r[8] = 0xc0; g[8] = 0xc0; b[8] = 0xc0;
+ r[9] = 0xff; g[9] = 0x00; b[9] = 0x00;
+ r[10] = 0x00; g[10] = 0xff; b[10] = 0x00;
+ r[11] = 0xff; g[11] = 0xff; b[11] = 0x00;
+ r[12] = 0x00; g[12] = 0x00; b[12] = 0xff;
+ r[13] = 0xff; g[13] = 0x00; b[13] = 0xff;
+ r[14] = 0x00; g[14] = 0xff; b[14] = 0xff;
+ r[15] = 0xff; g[15] = 0xff; b[15] = 0xff;
+ }
+ else {
+ /* mono palette */
+ r[0] = 0x00; g[0] = 0x00; b[0] = 0x00;
+ r[1] = 0xff; g[1] = 0xff; b[1] = 0xff;
+ }
+ break;
+ case 5:
+ default:
+ /* version 3.0 of PC Paint Brush or Better */
+ fseek(pcxf, -769L, SEEK_END);
+ /* if signature byte is correct then read the palette */
+ /* otherwise copy the existing palette */
+ if (fgetc(pcxf) == 12) {
+ for (i=0; i < 256; i++) {
+ r[i] = fgetc(pcxf);
+ g[i] = fgetc(pcxf);
+ b[i] = fgetc(pcxf);
+ }
+ }
+ else {
+ for (i=0; i < 16; i++) {
+ r[i] = pcxh->pal[i*3];
+ g[i] = pcxh->pal[i*3+1];
+ b[i] = pcxh->pal[i*3+2];
+ }
+ }
+ break;
+ }
+}
+
+static void
+PCXshowpicture(FILE *pcxf, int wide, int high, int bytes,
+ int cp, int bp, unsigned char *r,
+ unsigned char *g, unsigned char *b)
+{
+ int x;
+ int y;
+ int c;
+ unsigned char *rowa[4]; /* row array */
+ unsigned char *row;
+ int p;
+ unsigned char *pshexa;
+ int xdiv, xmod, xbit;
+ int width;
+ int bytewidth;
+
+ bytewidth = tobyte(wide);
+ width = bytewidth * 8;
+
+ /* output the postscript image size preamble */
+ cmdout("/picstr ");
+ numout((integer)tobyte(wide));
+ cmdout("string def");
+
+ numout((integer)width);
+ numout((integer)high);
+ numout((integer)1);
+ newline();
+
+ cmdout("[");
+ numout((integer)width);
+ numout((integer)0);
+ numout((integer)0);
+ numout((integer)-high);
+ numout((integer)0);
+ numout((integer)0);
+ cmdout("]");
+
+ nlcmdout("{currentfile picstr readhexstring pop} image");
+
+ /* allocate the postscript hex output array */
+ pshexa = (unsigned char *) mymalloc((integer)bytewidth);
+
+ /* make sure that you start at the right point in the file */
+ fseek(pcxf, (long) sizeof(PCXHEAD), SEEK_SET);
+
+ /* malloc the lines */
+ row = (unsigned char *) mymalloc((integer)bytes * cp);
+ for (c = 0; c < cp; c++)
+ rowa[c] = row + bytes*c;
+
+ for (y = 0; y < high; y++) {
+ /* clear the postscript hex array */
+ memset(pshexa,0xff,bytewidth);
+
+ /* read in all the color planes for a row of pixels */
+ PCXreadline(pcxf, rowa[0], bytes*cp);
+
+ /* process each pixel */
+ for (x = 0; x < wide; x++) {
+ /* build up the pixel value from color plane entries */
+ p = 0;
+ xdiv = x>>3;
+ xmod = 7 - (x&7);
+ xbit = 1 << xmod;
+ switch(bp) {
+ case 1:
+ for (c = 0; c < cp; c++) {
+ row = rowa[c];
+ p |= ( (unsigned)(row[xdiv] & xbit) >> xmod ) << c;
+ }
+ break;
+ case 4: /* untested - most programs use 1 bit/pixel, 4 planes */
+ row = rowa[0]; /* assume single plane */
+ p = ( x & 1 ? row[xdiv] : row[xdiv]>>4 ) & 0x0f;
+ break;
+ case 8:
+ row = rowa[0]; /* assume single plane */
+ p = (unsigned) (row[x]);
+ break;
+ default:
+ fprintf(stderr, "em:graph: Unable to Decode this PCX file\n");
+ return;
+ }
+ if ((r[p] < 0xff) || (g[p] < 0xff) || (b[p] < 0xff))
+ pshexa[xdiv] &= (~xbit);
+ else
+ pshexa[xdiv] |= xbit;
+ }
+ newline();
+ mhexout(pshexa,(long)bytewidth);
+ }
+ free(pshexa);
+ free(rowa[0]);
+}
+
+static void
+imagehead(char *filename, int wide, int high,
+ float emwidth, float emheight)
+{
+ char *fullname = NULL, *name;
+ if (!quiet) {
+#ifdef KPATHSEA
+ fullname = (char *)kpse_find_file (filename, pictpath, 0);
+#endif
+ if (!fullname)
+ name = filename;
+ else
+ name = fullname;
+ if (strlen(name) + prettycolumn > STDOUTSIZE) {
+ fprintf(stderr,"\n");
+ prettycolumn = 0;
+ }
+ fprintf_str(stderr,"<%s",name);
+ fflush(stderr);
+ prettycolumn += 2+strlen(name);
+ if (fullname) free (fullname);
+ }
+ hvpos();
+ nlcmdout("@beginspecial @setspecial");
+ if (!disablecomments) {
+ cmdout("%%BeginDocument: em:graph");
+ cmdout(filename);
+ newline();
+ }
+ /* set the image size */
+ if (emwidth <= 0.0) emwidth = (float)wide;
+ if (emheight <= 0.0) emheight = (float)high;
+ floatout(emwidth*72/actualdpi);
+ floatout(emheight*72/vactualdpi);
+ newline();
+ cmdout("scale");
+#ifdef DEBUG
+ if (dd(D_SPECIAL)) {
+ fprintf(stderr,
+ "\nem:graph: %s width %d pixels scaled to %.1f pixels\n",
+ filename, wide, emwidth);
+ fprintf_str(stderr,
+ "em:graph: %s height %d pixels scaled to %.1f pixels\n",
+ filename, high, emheight);
+ }
+#endif
+}
+
+static void
+imagetail(void)
+{
+ if (!disablecomments) {
+ fprintf(bitfile, "\n%%%%EndDocument\n");
+ linepos = 0;
+ }
+ nlcmdout("@endspecial");
+ if (!quiet) {
+ fprintf(stderr,">");
+ fflush(stderr);
+ }
+}
+
+static void
+pcxgraph(FILE *pcxf, char *filename,
+ float emwidth, float emheight /* dimension in pixels */ )
+{
+ PCXHEAD pcxh;
+ unsigned char red[256];
+ unsigned char green[256];
+ unsigned char blue[256];
+ int wide;
+ int high;
+ int bytes;
+ int cp;
+ int bpp;
+
+ if (!PCXreadhead(pcxf, &pcxh)) {
+ sprintf(errbuf,"em:graph: Unable to Read Valid PCX Header");
+ specerror(errbuf);
+ }
+ PCXgetpalette(pcxf, &pcxh, red, green, blue);
+
+ /* picture size calculation */
+ wide = (pcxh.xmax - pcxh.xmin) + 1;
+ high = (pcxh.ymax - pcxh.ymin) + 1;
+ bytes = pcxh.byteperline;
+ cp = pcxh.colorplanes;
+ bpp = pcxh.bitperpix;
+
+ imagehead(filename,wide,high,emwidth,emheight);
+ PCXshowpicture(pcxf, wide, high, bytes, cp, bpp, red, green, blue);
+ imagetail();
+}
+
+/* Microsoft Paint routines */
+struct wpnt_1 {
+ quarterword id[4];
+ halfword width;
+ halfword high;
+ halfword x_asp;
+ halfword y_asp;
+ halfword x_asp_prn;
+ halfword y_asp_prn;
+ halfword width_prn;
+ halfword high_prn;
+ integer chk_sum;
+ halfword chk_head;
+};
+
+#define WPAINT_1 1
+#define WPAINT_2 2
+
+static void
+MSP_2_ps(FILE *f, int wide, int high)
+{
+ char *line;
+ char *l;
+ int i;
+ int j;
+ unsigned char a, b, c;
+ int d;
+ int width;
+ halfword *linelen;
+
+ /* an undocumented format - based on a type of run length encoding */
+ /* the format is made up of a list of line lengths, followed by a set */
+ /* of lines. Each line is made up of 2 types of entries: */
+ /* 1) A 3 term entry (0 a b): the byte b is repeated a times */
+ /* 2) A variable length entry (a xxxx....xxxx): a bytes are read */
+ /* from the file. */
+ /* These entries are combined to build up a line */
+
+ width = tobyte(wide)*8;
+
+ /* output the postscript image size preamble */
+ cmdout("/picstr");
+ numout((integer)tobyte(wide));
+ cmdout("string def");
+
+ numout((integer)width);
+ numout((integer)high);
+ numout((integer)1);
+
+ cmdout("[");
+ numout((integer)width);
+ numout((integer)0);
+ numout((integer)0);
+ numout((integer)-high);
+ numout((integer)0);
+ numout((integer)0);
+ cmdout("]");
+
+ nlcmdout("{currentfile picstr readhexstring pop} image");
+
+ fseek(f, 32, SEEK_SET);
+
+ /* read in the table of line lengths */
+ linelen = (halfword *) mymalloc((integer)sizeof(halfword) * high);
+ for (i = 0; i < high; i++) {
+ linelen[i] = readhalfword(f);
+ if (feof(f))
+ return;
+ }
+
+ line = (char *) mymalloc((integer)tobyte(wide));
+ for (i = 0; i < high; i++) {
+ memset(line, 0xff, tobyte(wide));
+ l = line;
+ if (linelen[i] != 0) {
+ d = linelen[i];
+ while (d) {
+ a = fgetc(f);
+ d--;
+ if (a == 0) {
+ b = fgetc(f);
+ c = fgetc(f);
+ d -= 2;
+ for (j = 0; j < b; j++)
+ *l++ = c;
+ }
+ else {
+ for (j = 0; j < a; j++)
+ *l++ = fgetc(f);
+ d -= j;
+ }
+ }
+ }
+ newline();
+ mhexout((unsigned char *) line,(long)tobyte(wide));
+ }
+ free(linelen);
+ free(line);
+}
+
+static void
+MSP_1_ps(FILE *f, int wide, int high)
+{
+ char *line;
+ int i;
+ int width;
+
+ width = tobyte(wide)*8;
+ /* an partly documented format - see The PC Sourcebook */
+ /* the format is made up of a simple bitmap. */
+
+ /* output the postscript image size preamble */
+ cmdout("/picstr");
+ numout((integer)tobyte(wide));
+ cmdout("string def");
+
+ numout((integer)width);
+ numout((integer)high);
+ numout((integer)1);
+
+ cmdout("[");
+ numout((integer)width);
+ numout((integer)0);
+ numout((integer)0);
+ numout((integer)-high);
+ numout((integer)0);
+ numout((integer)0);
+ cmdout("]");
+
+ nlcmdout("{currentfile picstr readhexstring pop} image");
+
+ fseek(f, 32, SEEK_SET);
+
+ line = (char *) mymalloc((integer)tobyte(wide));
+ for (i = 0; i < high; i++) {
+ fread(line, 1, tobyte(wide), f);
+ newline();
+ mhexout((unsigned char *) line,(long)tobyte(wide));
+ }
+ free(line);
+}
+
+
+static void
+mspgraph(FILE *f, char *filename, float emwidth, float emheight)
+{
+ struct wpnt_1 head;
+ int paint_type = 0;
+
+ /* read the header of the file and figure out what it is */
+ fread(head.id, 1, 4, f);
+ head.width = readhalfword(f);
+ head.high = readhalfword(f);
+ head.x_asp = readhalfword(f);
+ head.y_asp = readhalfword(f);
+ head.x_asp_prn = readhalfword(f);
+ head.y_asp_prn = readhalfword(f);
+ head.width_prn = readhalfword(f);
+ head.high_prn = readhalfword(f);
+ head.chk_sum = readinteger(f);
+ head.chk_head = readhalfword(f);
+
+ if (feof(f)) {
+ fprintf(stderr, "em:graph: Unable to Read Valid MSP Header\n");
+ return;
+ }
+
+ /* check the id bytes */
+ if (!memcmp(head.id, "DanM", 4))
+ paint_type = WPAINT_1;
+ if (!memcmp(head.id, "LinS", 4))
+ paint_type = WPAINT_2;
+
+
+ imagehead(filename,head.width,head.high,emwidth,emheight);
+ switch (paint_type) {
+ case WPAINT_1:
+ MSP_1_ps(f, head.width, head.high);
+ break;
+ case WPAINT_2:
+ MSP_2_ps(f, head.width, head.high);
+ break;
+ default:
+ sprintf(errbuf, "em:graph: Unknown MSP File Type");
+ specerror(errbuf);
+ }
+ imagetail();
+}
+
+/* ------------------------------------------------------------------------ */
+/* .BMP file structures */
+struct rgbquad {
+ char blue;
+ char green;
+ char red;
+ char res;
+};
+
+struct bitmapinfoheader {
+ integer size;
+ integer width;
+ integer height;
+ halfword planes; /* must be set to 1 */
+ halfword bitcount; /* 1, 4, 8 or 24 */
+ integer compression;
+ integer sizeimage;
+ integer xpelspermeter;
+ integer ypelspermeter;
+ integer clrused;
+ integer clrimportant;
+};
+
+#ifdef WIN32
+#undef RGB
+#endif
+
+/* constants for the compression field */
+#define RGB 0L
+#define RLE8 1L
+#define RLE4 2L
+
+struct bitmapfileheader {
+ char type[2];
+ integer size;
+ halfword reserved1;
+ halfword reserved2;
+ integer offbits;
+};
+
+static void
+rgbread(FILE *f, int w, int b, char *s)
+{
+ int i;
+
+ /* set the line to white */
+ memset(s, 0xff, ((w*b)/8)+1);
+
+ /* read in all the full bytes */
+ for (i = 0; i < (w * b) / 8; i++)
+ *s++ = fgetc(f);
+
+ /* read in a partly filled byte */
+ if ((w * b) % 8) {
+ i++;
+ *s++ = fgetc(f);
+ }
+
+ /* check that we are on a 32 bit boundary; otherwise align */
+ while (i % 4 != 0) {
+ fgetc(f);
+ i++;
+ }
+}
+
+unsigned rle_dx = 0; /* delta command horizontal offset */
+unsigned rle_dy = 0; /* delta command vertical offset */
+
+/* checked against output from Borland Resource Workshop */
+static void
+rle4read(FILE *f, int w, int b, char *s)
+{
+ int i;
+ int limit;
+ int ch;
+ unsigned cnt;
+ int hi;
+
+ limit = (w*b)/8;
+ i = 0;
+ hi = TRUE;
+ /* set the line to white */
+ memset(s, 0xff, limit+1);
+
+ if (rle_dy) {
+ rle_dy--;
+ return;
+ }
+
+ if (rle_dx) {
+ for (; rle_dx>1; rle_dx-=2) {
+ s++;
+ i++;
+ }
+ if (rle_dx)
+ hi = FALSE;
+ }
+
+ while (i<=limit) {
+ cnt = fgetc(f);
+ ch = fgetc(f);
+ if (cnt == 0) { /* special operation */
+ switch(ch) {
+ case 0: /* EOL */
+ return; /* this is our way out */
+ case 1: /* End of Bitmap */
+ return;
+ case 2: /* Delta */ /* untested */
+ rle_dx = fgetc(f) + i*2 + (hi ? 1 : 0);
+ rle_dy = fgetc(f);
+ return;
+ default: /* next cnt bytes are absolute */
+ /* must be aligned on word boundary */
+ if (!hi)
+ fprintf(stderr,"em:graph: RLE4 absolute is not byte aligned\n");
+ for (cnt = ch; cnt>0 && i<=limit; cnt-=2) {
+ i++;
+ *s++ = fgetc(f);
+ }
+ if (ch % 4) /* word align file */
+ fgetc(f);
+ }
+ }
+ else { /* cnt is repeat count */
+ if (!hi) { /* we are about to place the low 4 bits */
+ ch = ((ch>>4)&0x0f) | ((ch<<4)&0xf0); /* swap order */
+ i++;
+ *s = (*s & 0xf0) | (ch & 0x0f);
+ s++;
+ hi = TRUE;
+ cnt--;
+ }
+ /* we are about to place the high 4 bits */
+ for (; cnt>1 && i<=limit; cnt-=2) { /* place the whole bytes */
+ i++;
+ *s++ = ch;
+ }
+ if (cnt) { /* place the partial byte */
+ *s = (*s & 0x0f) | (ch & 0xf0);
+ hi = FALSE;
+ }
+ }
+ }
+}
+
+/* untested */
+static void
+rle8read(FILE *f, int w, int b, char *s)
+{
+ int i;
+ int limit;
+ int ch;
+ unsigned cnt;
+
+ limit = (w*b)/8;
+ i = 0;
+ /* set the line to white */
+ memset(s, 0xff, limit+1);
+
+ if (rle_dy) {
+ rle_dy--;
+ return;
+ }
+
+ if (rle_dx) {
+ for (; rle_dx > 0; rle_dx--) {
+ s++;
+ i++;
+ }
+ }
+
+ while (i<=limit) {
+ cnt = fgetc(f);
+ ch = fgetc(f);
+ if (cnt == 0) { /* special operation */
+ switch(ch) {
+ case 0: /* EOL */
+ return; /* this is our way out */
+ case 1: /* End of Bitmap */
+ return;
+ case 2: /* Delta */ /* untested */
+ rle_dx = fgetc(f) + i;
+ rle_dy = fgetc(f);
+ return;
+ default: /* next cnt bytes are absolute */
+ for (cnt = ch; cnt>0 && i<=limit; cnt--) {
+ i++;
+ *s++ = fgetc(f);
+ }
+ if (ch % 2) /* word align file */
+ fgetc(f);
+ }
+ }
+ else { /* cnt is repeat count */
+ for (; cnt>0 && i<=limit; cnt--) {
+ i++;
+ *s++ = ch;
+ }
+ }
+ }
+}
+
+static void
+bmpgraph(FILE *f, char *filename, float emwidth, float emheight)
+{
+ struct bitmapfileheader bmfh;
+ struct bitmapinfoheader bmih;
+
+ #define ISBLACKSIZ 256
+ unsigned char isblack[ISBLACKSIZ];
+ unsigned char rr;
+ unsigned char gg;
+ unsigned char bb;
+ unsigned char c = 0;
+
+ char *line;
+ char *pshexa;
+
+ int clrtablesize;
+ int i;
+ int j;
+
+ unsigned char omask;
+ int oroll;
+
+ unsigned char emask = 0;
+ integer ewidth = 0;
+ int isOS2;
+
+ /* read the header of the file */
+ fread(bmfh.type, 1, 2, f);
+ bmfh.size = readinteger(f);
+ bmfh.reserved1 = readhalfword(f);
+ bmfh.reserved2 = readhalfword(f);
+ bmfh.offbits = readinteger(f);
+ if (feof(f)) {
+ sprintf(errbuf, "em:graph: Unable to Read Valid BMP Header\n");
+ specerror(errbuf);
+ return;
+ }
+
+ bmih.size = readinteger(f);
+ if (bmih.size == 12) { /* OS2 bitmap */
+ isOS2 = TRUE;
+ bmih.width = readhalfword(f);
+ bmih.height = readhalfword(f);
+ bmih.planes = readhalfword(f);
+ bmih.bitcount = readhalfword(f);
+ /* the following don't exist in OS2 format so fill with 0's */
+ bmih.compression = RGB;
+ bmih.sizeimage = 0;
+ bmih.xpelspermeter = 0;
+ bmih.ypelspermeter = 0;
+ bmih.clrused = 0;
+ bmih.clrimportant = 0;
+ }
+ else { /* Windows bitmap */
+ isOS2 = FALSE;
+ bmih.width = readinteger(f);
+ bmih.height = readinteger(f);
+ bmih.planes = readhalfword(f);
+ bmih.bitcount = readhalfword(f);
+ bmih.compression = readinteger(f);
+ bmih.sizeimage = readinteger(f);
+ bmih.xpelspermeter = readinteger(f);
+ bmih.ypelspermeter = readinteger(f);
+ bmih.clrused = readinteger(f);
+ bmih.clrimportant = readinteger(f);
+ }
+
+ if (feof(f)) {
+ sprintf(errbuf, "em:graph: Unable to Read Valid BMP Info");
+ specerror(errbuf);
+ return;
+ }
+
+ if (memcmp(bmfh.type, "BM", 2)) {
+ sprintf(errbuf, "em:graph: Unknown BMP File Type");
+ specerror(errbuf);
+ return;
+ }
+
+ if ((bmih.compression == RLE4) && (bmih.bitcount != 4)) {
+ sprintf(errbuf, "em:graph: Can't do BMP RLE4 with %d bits per pixel",
+ bmih.bitcount);
+ specerror(errbuf);
+ return;
+ }
+
+ if ((bmih.compression == RLE8) && (bmih.bitcount != 8)) {
+ sprintf(errbuf, "em:graph: Can't do BMP RLE8 with %d bits per pixel\n",
+ bmih.bitcount);
+ specerror(errbuf);
+ return;
+ }
+
+ imagehead(filename,(int)bmih.width,(int)bmih.height,emwidth,emheight);
+
+ /* determine the size of the color table to read */
+ clrtablesize = 0;
+ if (bmih.clrused == 0) {
+ switch (bmih.bitcount) {
+ case 1:
+ clrtablesize = 2;
+ break;
+ case 4:
+ clrtablesize = 16;
+ break;
+ case 8:
+ clrtablesize = 256;
+ break;
+ case 24:
+ break;
+ }
+ }
+ else
+ clrtablesize = bmih.clrused;
+
+ if (clrtablesize > ISBLACKSIZ) {
+ /* This is wrong, since we won't read the whole file below.
+ But we can't give correct output without more work,
+ and it's unlikely these specials are still in use. */
+ sprintf(errbuf,
+ "em color table size (%d) larger than %d; output incorrect",
+ clrtablesize, ISBLACKSIZ);
+ specerror(errbuf);
+ clrtablesize = ISBLACKSIZ;
+ }
+
+ /* read in the color table */
+ for (i = 0; i < clrtablesize; i++) {
+ bb = fgetc(f);
+ gg = fgetc(f);
+ rr = fgetc(f);
+ isblack[i] = (rr < 0xff) || (gg < 0xff) || (bb < 0xff);
+ if (!isOS2)
+ (void) fgetc(f);
+ }
+
+ line = (char *) mymalloc((integer)((bmih.width * bmih.bitcount) / 8) + 1);
+ pshexa = (char *) mymalloc((integer)tobyte(bmih.width));
+
+ /* output the postscript image size preamble */
+ cmdout("/picstr");
+ numout((integer)tobyte(bmih.width));
+ cmdout("string def");
+
+ numout((integer)bmih.width);
+ numout((integer)bmih.height);
+ numout((integer)1);
+
+ cmdout("[");
+ numout((integer)bmih.width);
+ numout((integer)0);
+ numout((integer)0);
+ numout((integer)bmih.height);
+ numout((integer)0);
+ numout((integer)bmih.height);
+ cmdout("]");
+
+ nlcmdout("{currentfile picstr readhexstring pop} image");
+
+ if (bmih.bitcount == 1) {
+ if (bmih.width%8)
+ emask = (1<<(8-(bmih.width%8)))-1; /* mask for edge of bitmap */
+ else
+ emask = 0;
+ ewidth = tobyte(bmih.width);
+ }
+
+ /* read in all the lines of the file */
+ for (i = 0; i < bmih.height; i++) {
+ memset(pshexa,0xff,tobyte(bmih.width));
+ switch (bmih.compression) {
+ case RGB:
+ rgbread(f, (int) bmih.width, (int) bmih.bitcount, line);
+ break;
+ case RLE4:
+ rle4read(f, (int) bmih.width, (int) bmih.bitcount, line);
+ break;
+ case RLE8:
+ rle8read(f, (int) bmih.width, (int) bmih.bitcount, line);
+ break;
+ default:
+ sprintf(errbuf,"em:graph: Unknown BMP compression\n");
+ specerror(errbuf);
+ return;
+ }
+
+ omask = 0x80;
+ oroll = 7;
+
+ if (bmih.bitcount == 1) {
+ if (isblack[0])
+ for (j = 0; j < ewidth; j++)
+ pshexa[j] = line[j];
+ else
+ for (j = 0; j < ewidth; j++)
+ pshexa[j] = ~line[j];
+ pshexa[ewidth-1] |= emask;
+ }
+ else {
+ for (j = 0; j < bmih.width; j++) {
+ switch (bmih.bitcount) {
+ case 4:
+ c = line[j>>1];
+ if (!(j&1))
+ c >>= 4;
+ c = isblack[ c & 0x0f ];
+ break;
+ case 8:
+ c = isblack[ (int)(line[j]) ];
+ break;
+ case 24:
+ rr = line[j*3];
+ gg = line[j*3+1];
+ bb = line[j*3+2];
+ c = (rr < 0xff) || (gg < 0xff) || (bb < 0xff);
+ break;
+ }
+ if (c)
+ pshexa[j/8] &= ~omask;
+ else
+ pshexa[j/8] |= omask;
+ oroll--;
+ omask >>= 1;
+ if (oroll < 0) {
+ omask = 0x80;
+ oroll = 7;
+ }
+ }
+ }
+ newline();
+ mhexout((unsigned char *) pshexa,(long)tobyte(bmih.width));
+ }
+ imagetail();
+ free(pshexa);
+ free(line);
+}
+/* ------------------------------------------------------------------------ */
+
+#define PCX 0
+#define MSP 1
+#define BMP 2
+const char *extarr[]=
+{ ".pcx", ".msp", ".bmp", NULL };
+
+static void
+emgraph(char *filename, float emwidth, float emheight)
+{
+ char fname[500];
+ int filetype;
+ FILE *f;
+ char *env;
+ char id[4];
+ int i;
+
+ strcpy(fname, filename);
+
+ /* find the file */
+ f = search(figpath, fname, READBIN);
+ if (f == (FILE *)NULL) {
+ if ( (env = getenv("DVIDRVGRAPH")) != NULL )
+#ifdef KPATHSEA
+ f = search((kpse_file_format_type)env,filename,READBIN);
+#else
+ f = search(env,filename,READBIN);
+#endif
+ }
+ /* if still haven't found it try adding extensions */
+ if (f == (FILE *)NULL) {
+ i = 0;
+ while (extarr[i] != NULL) {
+ strcpy(fname, filename);
+ strcat(fname, extarr[i]);
+ f = search(figpath, fname, READBIN);
+ if (f == (FILE *)NULL) {
+ if ( (env = getenv("DVIDRVGRAPH")) != NULL )
+#ifdef KPATHSEA
+ f = search((kpse_file_format_type)env,filename,READBIN);
+#else
+ f = search(env,filename,READBIN);
+#endif
+ }
+ if (f != (FILE *)NULL)
+ break;
+ i++;
+ }
+ }
+
+ filetype = -1;
+ if (f != (FILE *)NULL) {
+ for (i=0; i<4; i++) {
+ id[i] = readquarterword(f);
+ }
+ if ( (id[0] == 0x0a) && (id[2] == 0x01) )
+ filetype = PCX;
+ if (!memcmp(id, "DanM", 4))
+ filetype = MSP;
+ if (!memcmp(id, "LinS", 4))
+ filetype = MSP;
+ if (!memcmp(id, "BM", 2))
+ filetype = BMP;
+ fseek(f, 0L, SEEK_SET);
+ }
+
+ switch (filetype) {
+ case PCX:
+ pcxgraph(f, fname, emwidth, emheight);
+ break;
+ case MSP:
+ mspgraph(f, fname, emwidth, emheight);
+ break;
+ case BMP:
+ bmpgraph(f, fname, emwidth, emheight);
+ break;
+ default:
+ snprintf(fname, sizeof(fname),
+ "em:graph: %s: File not found", filename);
+ error(fname);
+ }
+ if (f != (FILE *)NULL)
+ close_file(f);
+}
+
+#else
+void
+emspecial(char *p)
+{
+ sprintf(errbuf,"emTeX specials not compiled in this version");
+ specerror(errbuf);
+}
+#endif /* EMTEX */
diff --git a/Build/source/texk/dvipsk/eufonts.map b/Build/source/texk/dvipsk/eufonts.map
new file mode 100644
index 00000000000..1699664db76
--- /dev/null
+++ b/Build/source/texk/dvipsk/eufonts.map
@@ -0,0 +1,21 @@
+euex10 euex10 <euex10.pfb
+eufb10 eufb10 <eufb10.pfb
+eufb5 eufb5 <eufb5.pfb
+eufb7 eufb7 <eufb7.pfb
+eufm10 eufm10 <eufm10.pfb
+eufm5 eufm5 <eufm5.pfb
+eufm7 eufm7 <eufm7.pfb
+eurb10 eurb10 <eurb10.pfb
+eurb5 eurb5 <eurb5.pfb
+eurb7 eurb7 <eurb7.pfb
+eurm10 eurm10 <eurm10.pfb
+eurm5 eurm5 <eurm5.pfb
+eurm7 eurm7 <eurm7.pfb
+eusb10 eusb10 <eusb10.pfb
+eusb5 eusb5 <eusb5.pfb
+eusb7 eusb7 <eusb7.pfb
+eusm10 eusm10 <eusm10.pfb
+eusm5 eusm5 <eusm5.pfb
+eusm7 eusm7 <eusm7.pfb
+msam10 msam10 <msam10.pfb
+msbm10 msbm10 <msbm10.pfb
diff --git a/Build/source/texk/dvipsk/finclude.c b/Build/source/texk/dvipsk/finclude.c
new file mode 100644
index 00000000000..1f38aec0f1c
--- /dev/null
+++ b/Build/source/texk/dvipsk/finclude.c
@@ -0,0 +1,516 @@
+/*
+ * Code for allowing fonts to be used in PostScript files given via
+ * `psfile=...'.
+ *
+ * Modified to check for font usage (DocumentFonts and DocumentNeededResources)
+ * in all included postscript files. This information is added to the
+ * global list of postscript fonts used (ps_fonts_used). Each font is
+ * also looked up (from psfonts.map) and if a file needs to be downloaded
+ * for that font, it is added (with add_header).
+ * 11/1996 Aaron Sawdey
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#ifdef KPATHSEA
+#include <kpathsea/c-ctype.h>
+#else
+#include <ctype.h>
+#if !defined(SYSV) && !defined(WIN32)
+extern char *strtok(); /* some systems don't have this in strings.h */
+#endif
+#define ISXGIGIT isxdigit
+#endif
+#ifdef VMS
+#define getname vms_getname
+#endif
+
+#ifndef STDC_HEADERS
+double atof();
+#endif
+
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+/*
+ * Create a font descriptor for a font included in a psfile. There will be
+ * no fontmaptype node for the resulting font descriptor until this font is
+ * encountered by fontdef() (if that ever happens).
+ */
+static fontdesctype *
+ifontdef(char *name, char *area,
+ int scsize, int dssize, char *scname)
+{
+ fontdesctype *fp;
+
+ fp = newfontdesc((integer)0, scsize, dssize, name, area);
+ fp->scalename = scname;
+ fp->next = fonthead;
+ fonthead = fp;
+ return fp;
+}
+/*
+ * When a font appears in an included psfile for the first time, this routine
+ * links it into the fonthd[] array.
+ */
+static void
+setfamily(fontdesctype *f)
+{
+ int i;
+
+ fontmem -= DICTITEMCOST;
+ for (i=0; i<nextfonthd; i++)
+ if (strcmp(f->name, fonthd[i]->name)==0
+ && strcmp(f->area, fonthd[i]->area)==0) {
+ f->nextsize = fonthd[i];
+ fonthd[i] = f;
+ return;
+ }
+ if (nextfonthd==MAXFONTHD)
+ error("! Too many fonts in included psfiles");
+ fontmem -= NAMECOST + strlen(f->name) + strlen(f->area);
+ fonthd[nextfonthd++] = f;
+ f->nextsize = NULL;
+}
+/*
+ * Convert file name s to a pair of new strings in the string pool.
+ * The first string is the original value of nextstring; the second
+ * string is the return value.
+ */
+static char*
+getname(char *s)
+{
+ char *a, *p, sav;
+
+ a = NULL;
+ for (p=s; *p!=0; p++)
+ if (*p=='/')
+ a = p+1;
+ if (a==NULL) *nextstring++ = 0;
+ else { sav = *a;
+ *a = 0;
+ (void) newstring(s);
+ *a = sav;
+ s = a;
+ }
+ return newstring(s);
+}
+/*
+ * Mark character usage in *f based on the hexadecimal bitmap found in
+ * string s. A two-digit offset separated by a colon gives the initial
+ * character code. We have no way of knowing how many times each character
+ * is used or how many strings get created when showing the characters so
+ * we just estimate two usages per character and one string per pair of
+ * usages.
+ */
+static void
+includechars(fontdesctype *f, char *s)
+{
+ int b, c, d;
+ int l = strlen(s);
+
+ while (l > 0 && (s[l-1] == '\n' || s[l-1] == '\r'))
+ s[--l] = 0;
+ if (!ISXDIGIT(s[0]) || !ISXDIGIT(s[1]) || s[2]!=':'
+ || strspn(s+3,"0123456789ABCDEFabcdef") < l-3) {
+ fprintf_str(stderr, "%s\n", s);
+ error("Bad syntax in included font usage table");
+ return;
+ }
+ c = (xdig[(int)(s[0])] << 4) + xdig[(int)(s[1])];
+ s += 2;
+ while (*++s) {
+ d = xdig[(int)*s];
+ for (b=8; b!=0; b>>=1) {
+ if ((d&b)!=0) {
+ pagecost ++;
+ (void) prescanchar(&f->chardesc[c]);
+ }
+ if (++c==256) return;
+ }
+ }
+}
+/*
+ * String p should be start after the ":" in a font declaration of the form
+%*FONT: <tfm-name> <scaled-size> <design-size> <2-hex-digits>:<hex-string>
+ * where the sizes are floating-point numbers in units of PostScript points
+ * (TeX's "bp"). We update the data structures for the included font,
+ * charge fontmem for the VM used, and add to delchar if necessary.
+ * Note that the scaled size and the design size are multiplied by mag/1000.
+ * This is needed for the design size to undo the similar factor in conv since
+ * design sizes are not supposed to be affected by magnification. Applying
+ * the magnification factor to the scaled size selects magnified fonts as is
+ * appropriate in the normal case where the included PostScript is scaled by
+ * mag/1000. The definition of `fshow' in finclude.lpro unscales by `DVImag'
+ * to account for this. We cannot change the font scaled size to account for
+ * options like `hscale=' because then the definition of `fshow' would have
+ * to change.
+ */
+static void
+scan1fontcomment(char *p)
+{
+ char *q, *name, *area;
+ char *scname; /* location in buffer where we got scsize */
+ integer scsize, dssize;
+ fontdesctype *fptr;
+ real DVIperBP;
+
+ DVIperBP = actualdpi/(72.0*conv) * (mag/1000.0);
+ p = strtok(p, " ");
+ if (p==NULL) return;
+ area = nextstring; /* tentatively in the string pool */
+ name = getname(p);
+ q = strtok((char *)0, " ");
+ if (p==NULL || (scsize=(integer)(atof(q)*DVIperBP))==0) {
+ fprintf_str(stderr, "%s\n",p);
+ error("No scaled size for included font");
+ nextstring = area; /* remove from string pool */
+ return;
+ }
+ scname = q;
+ q = strtok((char *)0, " ");
+ if (p==NULL || (dssize=(integer)(atof(q)*DVIperBP))==0) {
+ fprintf_str(stderr, "%s\n",p);
+ error("No design size for included font");
+ nextstring = area;
+ return;
+ }
+ q = strtok((char *)0, " ");
+ fptr = matchfont(name, area, scsize, scname);
+ if (!fptr) {
+ fptr = ifontdef(name, area, scsize, dssize, newstring(scname));
+ (void) preselectfont(fptr);
+ setfamily(fptr);
+ } else {
+ nextstring = area; /* remove from string pool */
+ (void) preselectfont(fptr);
+ if (fptr->scalename==NULL) {
+ fptr->scalename=newstring(scname);
+ setfamily(fptr);
+ }
+ }
+ includesfonts = 1;
+ fptr->psflag |= THISPAGE;
+ includechars(fptr, q);
+}
+/*
+ * Parse the arguments to a "%%VMusage" comment. The Adobe Type 1 Font Format
+ * book specifies two arguments. This routine will accept one or two arguments;
+ * if there are two arguments we take the maximum.
+ */
+static integer
+scanvm(char *p)
+{
+ char* q;
+ integer vm, vmmax;
+
+ q = strtok(p, " ");
+ if (q==NULL) {
+ error("Missing data in VMusage comment");
+ return 0;
+ }
+ vmmax = atol(q);
+ q = strtok((char *)0, " ");
+ if (q!=NULL && (vm=atol(q))>vmmax)
+ vmmax = vm;
+ return vmmax;
+}
+/*
+ * Scan a list of font names.
+ * Each name is added to the list ps_fonts_used, and if it has
+ * an associated header file (from psfonts.map), the header file
+ * is added with add_header.
+ */
+static void
+scan_fontnames(char *str, const char *psfile)
+{
+ char *p,*pe;
+ struct resfont *re;
+
+ /* Turn all newlines, CRs, and tabs into spaces. */
+ p = str;
+ while(*p) {
+ if(*p == '\r' || *p == '\n' || *p == '\t') *p = ' ';
+ p++;
+ }
+ /* Remove trailing spaces. */
+ p = str+strlen(str)-1;
+ while(p > str && *p == ' ') {
+ *p = '\0';
+ p--;
+ }
+
+ p = str;
+ while(*p == ' ') p++; /* skip leading whitespace */
+
+ while(p && *p) {
+ pe = strchr(p,' ');
+ if(pe != NULL) *pe = '\0';
+
+ add_name(p,&ps_fonts_used);
+
+ if (1) {
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf_str(stderr,
+ "Adding font '%s' from included postscript file '%s'.\n",
+ p,psfile);
+#endif /* DEBUG */
+
+ re = findPSname(p);
+ if(re != NULL) {
+ if (re->sent != 2) {
+ if (re->Fontfile) {
+ add_header(re->Fontfile);
+ } else if (re->downloadheader) {
+ /* this code borrowed from residentfont() in resident.c */
+ char *cp = re->downloadheader;
+ char *q;
+
+ infont = re->PSname;
+ while (1) {
+ q = cp;
+ while (*cp && *cp != ' ')
+ cp++;
+ if (*cp) {
+ *cp = 0;
+ add_header(q);
+ *cp++ = ' ';
+ } else {
+ add_header(q);
+ break;
+ }
+ infont = 0;
+ }
+ }
+ infont = 0;
+ }
+ re->sent = 2;
+ if (unused_top_of_psnames < DOWNLOADEDPSSIZE) {
+ downloadedpsnames[unused_top_of_psnames] = xstrdup (re->PSname);
+ unused_top_of_psnames++;
+ }
+ } else {
+ char eb[1000];
+ snprintf(eb, sizeof(eb),
+ "Font %s used in file %s is not in the mapping file.",
+ p, psfile);
+ error(eb);
+ }
+ }
+
+ p = pe;
+ if(p != NULL) {
+ p++;
+ while(*p == ' ') p++; /* skip leading whitespace */
+ }
+ }
+
+ return;
+}
+
+/*
+ * fc_state == 0: normal state, looking for interesting comments
+ * fc_state == 1: looking for %%+ following %%DocumentFonts
+ * fc_state == 2: looking for "%%+ font" following %%DocumentNeededResources
+ */
+static int fc_state = 0;
+/*
+ * Do we need to check for information at the end of the postscript file?
+ */
+static int check_atend = 0;
+
+static void
+scanfontusage(char *p, const char *psfile)
+{
+ if (strncmp(p, "%%DocumentFonts: ",17) == 0) {
+ p += 17;
+ while (*p && *p <= ' ')
+ p++;
+ if(!strncmp(p,"(atend)",7)) {
+ check_atend = 1;
+ } else {
+ scan_fontnames(p,psfile);
+ fc_state = 1;
+ }
+ } else if (strncmp(p, "%%DocumentNeededFonts: ",23)==0) {
+ p += 23;
+ while (*p && *p <= ' ')
+ p++;
+ if(!strncmp(p,"(atend)",7)) {
+ check_atend = 1;
+ } else {
+ scan_fontnames(p,psfile);
+ fc_state = 1;
+ }
+ } else if (fc_state == 1 && strncmp(p,"%%+",3) == 0) {
+ scan_fontnames(p+3,psfile);
+ fc_state = 1;
+ } else if (strncmp(p, "%%DocumentNeededResources: ",27) == 0) {
+ p += 27;
+ while (*p && *p <= ' ')
+ p++;
+ if(!strncmp(p,"(atend)",7)) {
+ check_atend = 1;
+ } else {
+ if(!strncmp(p,"font ",5)) scan_fontnames(p+5,psfile);
+ fc_state = 2;
+ }
+ } else if (fc_state == 2 && strncmp(p,"%%+",3) == 0) {
+ p += 3;
+ while (*p && *p <= ' ')
+ p++;
+ if(!strncmp(p,"font ",5)) scan_fontnames(p+5,psfile);
+ fc_state = 2;
+ } else {
+ fc_state = 0;
+ }
+ return;
+}
+
+/*
+ * Scan an initial sequence of comment lines looking for font and memory
+ * usage specifications. This does not handle the "atend" construction.
+ */
+void
+scanfontcomments(const char *filename)
+{
+ char p[500];
+ char *r;
+ FILE *f;
+ integer truecost = pagecost;
+ Boolean trueknown = 0;
+ fontdesctype *oldcf = curfnt;
+
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf_str(stderr,
+ "Checking for fonts in '%s'\n",filename);
+#endif /* DEBUG */
+
+ if (*filename == '`') {
+/*
+ * Allow scanning of ` commands. Better return same results both times.
+ */
+ f = popen(filename+1, "r");
+ SET_BINARY(fileno(f));
+ to_close = USE_PCLOSE;
+ } else {
+ f = search(figpath, filename, READ);
+ }
+ if (f) {
+ SET_BINARY(fileno(f));
+ fc_state = 0;
+ check_atend = 0;
+ while (fgets(p,500,f) && p[0]=='%' &&
+ (p[1]=='!' || p[1]=='%' || p[1]=='*')) {
+ if (strncmp(p, "%*Font:", 7) == 0) {
+ scan1fontcomment(p+7);
+ } else if (strncmp(p, "%%VMusage:", 9) == 0) {
+ truecost += scanvm(p+10);
+ trueknown = 1;
+ }
+ scanfontusage(p,filename);
+ }
+ if (trueknown)
+ pagecost = truecost;
+
+ if(check_atend) {
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf_str(stderr,
+ "Checking for (atend) fonts in '%s'\n",filename);
+#endif /* DEBUG */
+
+ fc_state = 0;
+
+ fseek(f,-4096,2); /* seek to 4096 bytes before EOF. */
+ fgets(p,500,f); /* throw away a partial line. */
+
+ /* find %%Trailer */
+ while((r=fgets(p,500,f)) && strncmp(p,"%%Trailer",9));
+
+ /* look for specs that were deferred to the trailer. */
+ if(r != NULL) {
+ while(fgets(p,500,f)) {
+ if(p[0]=='%' && p[1]=='%') scanfontusage(p,filename);
+ }
+ }
+#ifdef DEBUG
+ else { /* r == NULL */
+ if (dd(D_FONTS))
+ fprintf_str(stderr,
+ "Did not find %%%%Trailer in included file '%s'.\n",
+ filename);
+ }
+#endif /* DEBUG */
+ }
+ close_file(f);
+ }
+ curfnt = oldcf;
+}
+/*
+ * Is string s less than 30 characters long with no special characters
+ * that are not allowed in PostScript commands.
+ */
+static Boolean
+okascmd(char *ss)
+{
+ register int c = 0;
+ register char *s = ss;
+
+ while (*s)
+ if (*s<' ' || *s>126 || ++c==30)
+ return(0);
+ return(strcspn(ss,"()<>[]{}%/") == c);
+}
+/*
+ * Output font area and font name strings as a literal string
+ */
+static void
+nameout(char *area, char *name)
+{
+ char buf[500];
+ char *s;
+
+ if (*area==0 && okascmd(name)) {
+ snprintf(buf, sizeof(buf), "/%s", name);
+ cmdout(name);
+ } else {
+ for (s=area; *s; s++)
+ scout(*s);
+ for (s=name; *s; s++)
+ scout(*s);
+ stringend();
+ cmdout("cvn");
+ }
+}
+/*
+ * Output commands for defining a table of PostScript font identifiers for
+ * fonts used in included psfiles in the current section.
+ */
+void
+fonttableout(void)
+{
+ int i, k;
+ fontdesctype *f;
+
+ for (i=0; i<nextfonthd; i++) {
+ for (f=fonthd[i]; f!=NULL; f=f->nextsize)
+ if (f->psflag==EXISTS) break;
+ if (f!=NULL) {
+ nameout(f->area, f->name);
+ k = 0;
+ do {
+ if (f->psflag==EXISTS) {
+ cmdout(f->scalename);
+ lfontout((int)f->psname);
+ k++;
+ }
+ f = f->nextsize;
+ } while (f!=NULL);
+ numout((integer)k);
+ cmdout("fstore");
+ }
+ }
+}
diff --git a/Build/source/texk/dvipsk/finclude.lpro b/Build/source/texk/dvipsk/finclude.lpro
new file mode 100644
index 00000000000..664df3f7006
--- /dev/null
+++ b/Build/source/texk/dvipsk/finclude.lpro
@@ -0,0 +1,21 @@
+%!
+% finclude.lpro - public domain.
+% Define tfm-name to be a dictionary of included fonts indexed by size:
+% /tfm-name scaled-size1 /font-select1 ... scsize_k /fselect_k k fstore -
+/fstore
+{
+ dup dict exch
+ {dup 4 2 roll put} repeat
+ def
+} bind def
+
+/fshow % (text to show) tfm_name scaled-size fshow -
+{
+ gsave
+ 72 TeXDict /Resolution get div
+ -72 TeXDict /VResolution get div scale
+ 1 DVImag div dup scale
+ get cvx exec
+ show
+ grestore
+}bind def
diff --git a/Build/source/texk/dvipsk/flib.c b/Build/source/texk/dvipsk/flib.c
new file mode 100644
index 00000000000..8b5e88e9bb4
--- /dev/null
+++ b/Build/source/texk/dvipsk/flib.c
@@ -0,0 +1,341 @@
+/*
+ * Here's some code to handle font libraries. Not needed unless you are
+ * running on a system that can't handle files well. Not endorsed by
+ * Tomas Rokicki or Radical Eye Software; use at your own risk.
+ */
+#ifdef FONTLIB
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#include "paths.h"
+/*
+ * The external declarations:
+ */
+#include "protos_add.h"
+
+/*
+ * font library structures
+ */
+struct fli_entry {
+ unsigned long offset;
+ char *name;
+};
+
+struct fli_size {
+ unsigned long size;
+ halfword entries;
+ struct fli_entry *entry;
+};
+
+struct fli_lib {
+ char *name;
+ halfword sizes;
+ struct fli_size *size;
+ struct fli_lib *next;
+};
+
+struct fli_lib *firstlib = NULL;
+
+struct fli_centry {
+ struct fli_lib *lib;
+ FILE *fp;
+};
+
+#define FLICSIZE 4
+struct fli_centry *fli_cache[FLICSIZE];
+
+Boolean flib = 0; /* non zero if reading a font library */
+
+halfword
+pkdouble(void)
+{
+ register halfword i;
+ i = pkbyte();
+ i = i * 256 + pkbyte();
+ return(i);
+}
+/*
+ * fliload opens each font library, then reads in its
+ * directory for later use.
+ * fli_cache is initialized.
+ */
+void
+fliload(void)
+{
+ int i;
+ halfword version1, version2;
+ Boolean needext;
+ char fontname[50];
+ char name[50];
+ char *fli;
+ unsigned long dpi;
+ halfword len, numsizes, numfonts;
+ halfword numflib = 0;
+ struct fli_lib *lib=NULL, *next_lib=NULL;
+ struct fli_size *size;
+ struct fli_entry *entry;
+
+ /* initialise fli cache */
+ for (i=0; i<FLICSIZE; i++) {
+ fli_cache[i] = (struct fli_centry *)
+ mymalloc((integer)sizeof(struct fli_centry));
+ fli_cache[i]->lib = (struct fli_lib *)NULL;
+ fli_cache[i]->fp = (FILE *)NULL;
+ }
+
+ fli = fliname;
+
+ while (*fli) {
+ /* get next font library name from fliname */
+ needext=1;
+ for (i=0; *fli && *fli!=PATHSEP; i++)
+ if ( (name[i] = *fli++) == '.')
+ needext=0;
+ name[i] = '\0';
+ if (*fli)
+ fli++; /* skip PATHSEP */
+ if (*name) {
+ /* got fli name, now search for it */
+ if (needext)
+ strcat(name,".fli");
+
+ if ( (pkfile=search(flipath,name,READBIN)) != (FILE *)NULL ) {
+ /* for each font library */
+ for (i=0; i<4; i++) {
+ fontname[i] = pkbyte(); /* read header */
+ }
+ version1 = pkbyte();
+ version2 = pkbyte();
+ if (strncmp(fontname,"FLIB",4)!=0 || version1 != 2 || version2 != 0)
+ badpk("incorrect font library format");
+
+ (void) pkdouble(); /* ignore directory length */
+ numsizes = pkdouble(); /* number of sizes */
+ numfonts = pkdouble(); /* number of fonts */
+ len = pkdouble(); /* length of comment */
+ for (i=0; i<len; i++)
+ pkbyte(); /* skip comment */
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf(stderr,"Font library %s has %d font size%s, %d font%s\n",
+ name, numsizes , numsizes !=1 ? "s" : "",
+ numfonts, numfonts!=1 ? "s" : "");
+#endif /* DEBUG */
+
+ next_lib = (struct fli_lib *)
+ mymalloc((integer)sizeof(struct fli_lib));
+ if (firstlib == (struct fli_lib *)NULL)
+ firstlib = next_lib;
+ else
+ lib->next = next_lib;
+ lib = next_lib;
+ size = (struct fli_size *)
+ mymalloc((integer)numsizes * sizeof(struct fli_size));
+ entry = (struct fli_entry *)
+ mymalloc((integer)numfonts * sizeof(struct fli_entry));
+ lib->name = newstring(name);
+ lib->sizes = numsizes;
+ lib->size = size;
+ lib->next = (struct fli_lib *)NULL;
+
+ for (;numsizes>0; numsizes--, size++) {
+ /* for each font size in this library */
+ pkdouble(); /* length of size entry - ignore */
+ numfonts = pkdouble(); /* number of fonts */
+ dpi = pkquad(); /* DPI (fixed point 16.16) */
+
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf(stderr,"Font library %s size %.5gdpi has %d font%s\n",
+ name, dpi/65536.0, numfonts, numfonts!=1 ? "s" : "");
+#endif /* DEBUG */
+ size->size = dpi;
+ size->entries = numfonts;
+ size->entry = entry;
+ for (;numfonts > 0; numfonts--, entry++) {
+ /* read each entry */
+ pkquad(); /* ignore length of font */
+ entry->offset = pkquad(); /* offset to font */
+ len = pkbyte(); /* length of name */
+ for (i=0; i<len; i++)
+ fontname[i] = pkbyte();
+ fontname[len] = '\0';
+ entry->name = newstring(fontname);
+ } /* end for numfonts>0 */
+ } /* end for numsizes>0 */
+ if (numflib < FLICSIZE) { /* leave first few open */
+ fli_cache[numflib]->lib = lib;
+ fli_cache[numflib]->fp = pkfile;
+ }
+ else
+ fclose(pkfile);
+ numflib++;
+ } /* end if opened library */
+ } /* end if (*name) */
+ }
+}
+
+
+/*
+ * flisearch searches all the font libraries for a PK font.
+ * returns FILE pointer positioned to PK font in font library
+ * flisearch caches file pointers for 4 font libraries.
+ */
+FILE *
+flisearch(char *n, halfword dpi)
+{
+ halfword dpi1, numsizes, numfonts;
+ struct fli_lib *lib=NULL;
+ struct fli_size *size;
+ struct fli_entry *entry;
+ struct fli_centry *centry;
+ int i;
+ Boolean found;
+
+ if (firstlib == (struct fli_lib *)NULL)
+ return((FILE *)NULL); /* return if no font libraries */
+
+#ifdef DEBUG
+ if (dd(D_FONTS)) {
+ fprintf(stderr,"Trying %s at %ddpi\nfli open:", n, dpi);
+ for (i=0; i<FLICSIZE; i++) /* dump cache contents */
+ if (fli_cache[i]->lib != (struct fli_lib *)NULL)
+ fprintf(stderr, " %s",(fli_cache[i]->lib)->name);
+ fprintf(stderr,"\n");
+ }
+#endif /* DEBUG */
+ for (lib = firstlib; lib != (struct fli_lib *)NULL; lib = lib->next ) {
+ /* for each font library */
+ numsizes = lib->sizes;
+ size = lib->size;
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf(stderr," Searching %s\n", lib->name);
+#endif /* DEBUG */
+ for (; numsizes>0; numsizes--, size++) {
+ /* for each font size in this library */
+ dpi1 = (halfword)((size->size+32768L)/65536);
+ if ( dpi1 == dpi ) {
+ /* if correct size then search for font */
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf(stderr, " Checking size %ddpi\n",dpi1);
+#endif /* DEBUG */
+ entry = size->entry;
+ for (numfonts=size->entries;numfonts > 0; numfonts--, entry++) {
+ if (strcmp(entry->name,n)==0) {
+ /* if correct font name then look for it in cache */
+ found = 0;
+ for (i=0; i<FLICSIZE && !found; i++) { /* check if fli in cache */
+ if ( fli_cache[i]->lib == lib ) {
+ /* found it, so move to front */
+ centry = fli_cache[i];
+ for (; i>0; i--)
+ fli_cache[i] = fli_cache[i-1];
+ found=1;
+ fli_cache[0] = centry;
+ pkfile = fli_cache[0]->fp; /* font libary already open */
+ }
+ }
+ if (!found) { /* if not in cache then re-open it */
+ /* make space at front */
+ fclose(fli_cache[FLICSIZE-1]->fp);
+ centry = fli_cache[FLICSIZE-1];
+ for (i=FLICSIZE-1; i>0; i--)
+ fli_cache[i] = fli_cache[i-1];
+ /* put this font library at front */
+ if ( (pkfile=search(flipath,lib->name,READBIN)) == (FILE *)NULL ) {
+ sprintf(errbuf,"Can't reopen font library %.500s", lib->name);
+ error(errbuf);
+ return((FILE *)NULL);
+ }
+ fli_cache[0] = centry;
+ fli_cache[0]->lib = lib;
+ fli_cache[0]->fp = pkfile;
+ }
+ flib = 1; /* tell loadfont() not to close it */
+ /* then seek font within library */
+ sprintf(name,"%.500s %.500s %ddpi",lib->name, n, dpi1);
+ if (fseek(pkfile,entry->offset,0) )
+ badpk("couldn't seek font");
+ /* make sure it is a PK font */
+ if (pkbyte()==247) /* pre byte */
+ if (pkbyte()==89) { /* id byte */
+ if ( fseek(pkfile,entry->offset,0) )
+ badpk("couldn't seek font");
+ return(pkfile); /* found it */
+ }
+ sprintf(errbuf,"%.500s %.500s %ddpi isn't PK format, ignoring",
+ lib->name, n, dpi1);
+ error(errbuf);
+ } /* end if name correct */
+ } /* end for numfonts>0 */
+ }
+ else {
+ /* if not correct size then skip */
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf(stderr, " Skipping size %ddpi\n", dpi1);
+#endif /* DEBUG */
+ }
+ } /* end for numsizes>0 */
+ }
+ return((FILE *)NULL);
+}
+
+/* parse the font library path, putting all directory names in path,
+ * and all font library names in name.
+ * Directory names have a trailing DIRSEP.
+ */
+char *
+fliparse(char *path, char *name)
+{
+ char *p, *prevp; /* pointers to path */
+ char *n, *prevn; /* pointers to name */
+ char *s;
+
+ p = path;
+ n = name;
+ s = path;
+
+ while (*s) {
+ prevp = p;
+ prevn = n;
+ while (*s && *s != PATHSEP) {
+ /* copy till PATHSEP */
+ *p++ = *s;
+ *n++ = *s;
+ s++;
+ }
+ *n = '\0';
+ if (*s)
+ s++; /* skip PATHSEP */
+
+ if ( *prevn=='\0' || prevn[strlen(prevn)-1] == DIRSEP ) {
+ n = prevn; /* ignore name if it is dir */
+ if (*prevn)
+ p--; /* backup over DIRSEP */
+ *p++ = PATHSEP;
+ prevp = p;
+ }
+ else {
+ p = prevp; /* ignore path if it is library name */
+ *n++ = PATHSEP;
+ prevn = n;
+ }
+
+ }
+ *p = '\0';
+ *n = '\0';
+ if (n!=name && *--n==PATHSEP)
+ *n = '\0'; /* remove trailing PATHSEP from name */
+ if (p!=path && *--p==PATHSEP)
+ *p = '\0'; /* remove trailing PATHSEP from path */
+ return(path);
+} /* end fliparse */
+#else
+/*
+ * Some systems don't like .o files that compile to nothing, so we
+ * provide a stub routine.
+ */
+void fliload() {}
+#endif
+
diff --git a/Build/source/texk/dvipsk/fontdef.c b/Build/source/texk/dvipsk/fontdef.c
new file mode 100644
index 00000000000..dc27304a47f
--- /dev/null
+++ b/Build/source/texk/dvipsk/fontdef.c
@@ -0,0 +1,183 @@
+/*
+ * Stores the data from a font definition into the global data structures.
+ * A routine skipnop is also included to handle nops and font definitions
+ * between pages.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#ifdef KPATHSEA
+#include <kpathsea/magstep.h>
+#endif
+
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+/*
+ * newfontdesc creates a new font descriptor with the given parameters and
+ * returns a pointer to the new object.
+*/
+fontdesctype*
+newfontdesc(integer cksum, integer scsize, integer dssize,
+ char *name, char *area)
+{
+ register fontdesctype *fp;
+
+ fp = (fontdesctype *)mymalloc((integer)sizeof(fontdesctype));
+ fp->chardesc = (chardesctype *)mymalloc(256*(integer)sizeof(chardesctype));
+ fp->maxchars = 256;
+ fp->iswide = 0;
+ fp->psname = 0;
+ fp->loaded = 0;
+ fp->checksum = cksum;
+ fp->scaledsize = scsize;
+ fp->designsize = dssize;
+ fp->thinspace = scsize / 6;
+ fp->scalename = NULL;
+ fp->psflag = 0;
+ fp->codewidth = 1;
+ fp->name = name;
+#ifdef VMCMS /* IBM: VM/CMS */
+ {
+ int i;
+ for ( i=0; fp->name[i]; i++ )
+ fp->name[i] = ascii2ebcdic[ fp->name[i] ];
+ }
+#else
+#ifdef MVSXA /* IBM: MVS/XA */
+ {
+ int i;
+ for ( i=0; fp->name[i]; i++ )
+ fp->name[i] = ascii2ebcdic[ fp->name[i] ];
+ }
+#endif /* IBM: MVS/XA */
+#endif /* IBM: VM/CMS */
+ fp->area = area;
+ fp->resfont = NULL;
+ fp->localfonts = NULL;
+#ifdef KPATHSEA
+ fp->dpi = kpse_magstep_fix ((halfword)(mag*(float)fp->scaledsize*DPI/
+ ((float)fp->designsize*1000.0)+0.5), DPI, NULL);
+#else
+ fp->dpi = dpicheck((halfword)(mag*fp->scaledsize*DPI/
+ ((float)fp->designsize*1000.0)+0.5));
+#endif
+ fp->loadeddpi = fp->dpi;
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf_str(stderr,"Defining font (%s) %s at %.1fpt\n",
+ area, name, (real)scsize/(alpha*0x100000));
+#endif /* DEBUG */
+ return fp;
+}
+/*
+ * Try to find a font with a given name and approximate scaled size, returning
+ * NULL if unsuccessful. If scname and the font's scalename are both
+ * non-NULL they must match exactly. If both are NULL, scsize and the
+ * font's scaledsize come from the dvi file and should match exactly.
+ * Otherwise there can be some slop due to the inaccuracies of sizes
+ * read from an included psfile.
+ */
+fontdesctype *
+matchfont(char *name, char *area, integer scsize, char *scname)
+{
+ register fontdesctype *fp;
+ register integer smin, smax;
+
+ smin = scsize - fsizetol;
+ smax = scsize + fsizetol;
+ for (fp=fonthead; fp; fp=fp->next)
+ if (smin < fp->scaledsize && fp->scaledsize < smax &&
+ strcmp(name,fp->name)==0 && strcmp(area,fp->area)==0) {
+ if (scname == NULL) {
+ if (fp->scalename!=NULL || scsize==fp->scaledsize)
+ break;
+ } else {
+ if (fp->scalename==NULL || strcmp(scname,fp->scalename)==0)
+ break;
+ }
+ }
+#ifdef DEBUG
+ if (dd(D_FONTS) && fp)
+ fprintf(stderr,"(Already known.)\n");
+#endif /* DEBUG */
+ return fp;
+}
+/*
+ * fontdef takes a font definition in the dvi file and loads the data
+ * into its data structures.
+ */
+void
+fontdef(int siz)
+{
+ register integer i, j, fn;
+ register fontdesctype *fp;
+ register fontmaptype *cfnt;
+ char *name, *area;
+ integer cksum, scsize, dssize;
+
+ fn = dvibyte();
+ while (siz-- > 1)
+ fn = (fn << 8) + dvibyte();
+ for (cfnt=ffont; cfnt; cfnt = cfnt->next)
+ if (cfnt->fontnum == fn) goto alreadydefined;
+ cfnt = (fontmaptype *)mymalloc((integer)sizeof(fontmaptype));
+ cfnt->next = ffont;
+ ffont = cfnt;
+ cfnt->fontnum = fn;
+ cksum = signedquad();
+ scsize = signedquad();
+ dssize = signedquad();
+ i = dvibyte(); j = dvibyte();
+ if (nextstring + i + j > maxstring)
+ error("! out of string space");
+ area = nextstring;
+ for (; i>0; i--)
+ *nextstring++ = dvibyte();
+ *nextstring++ = 0;
+ name = nextstring;
+ for (; j>0; j--)
+ *nextstring++ = dvibyte();
+ *nextstring++ = 0;
+ fp = matchfont(name, area, scsize, (char *)0);
+ if (fp) {
+ nextstring = name;
+ fp->checksum = cksum;
+ } else {
+ fp = newfontdesc(cksum, scsize, dssize, name, area);
+ fp->next = fonthead;
+ fonthead = fp;
+ }
+ cfnt->desc = fp;
+ return;
+alreadydefined:
+/* A DVI file will not define a font twice; but we may be scanning
+ * a font definition twice because a new section has started,
+ * or because of collated copies. */
+ skipover(12);
+ skipover(dvibyte()+dvibyte());
+}
+
+/*
+ * The next routine handles nops or font definitions between pages in a
+ * dvi file. Returns the first command that is not a nop or font definition.
+ *
+ * Now handles specials (but ignores them)
+ */
+int
+skipnop(void)
+{
+ register int cmd;
+
+ while (1) {
+ switch(cmd=dvibyte()) {
+case 138: break;
+case 239: skipover((int)dvibyte()); break; /* xxx1 */
+case 240: skipover((int)twobytes()); break; /* xxx2 */
+case 241: skipover((int)threebytes()); break; /* xxx3 */
+case 242: skipover((int)signedquad()); break; /* xxx4 */
+case 243: case 244: case 245: case 246: fontdef(cmd-242); break;
+default: return cmd;
+ }
+ }
+}
diff --git a/Build/source/texk/dvipsk/header.c b/Build/source/texk/dvipsk/header.c
new file mode 100644
index 00000000000..31b03e3be18
--- /dev/null
+++ b/Build/source/texk/dvipsk/header.c
@@ -0,0 +1,181 @@
+/*
+ * This routine handles the PostScript prologs that might
+ * be included through:
+ *
+ * - Default
+ * - Use of PostScript fonts
+ * - Specific inclusion through specials, etc.
+ * - Use of graphic specials that require them.
+ *
+ * Things are real simple. We build a linked list of headers to
+ * include. Then, when the time comes, we simply copy those
+ * headers down.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+struct header_list *header_head;
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+static int add_name_general(const char *s, struct header_list **what,
+ char *pre, char *post);
+
+int
+add_name(const char *s, struct header_list **what)
+{
+ return (int) add_name_general (s, what, NULL, NULL);
+}
+
+/*
+ * This more general routine adds a name to a list of unique
+ * names.
+ */
+static int
+add_name_general(const char *s, struct header_list **what, char *pre, char *post)
+{
+ struct header_list *p, *q;
+
+ for (p = *what; p != NULL; p = p->next)
+ if (strcmp(p->name, s)==0)
+ return 0;
+ q = (struct header_list *)mymalloc((integer)(sizeof(struct header_list)));
+ q->name = mymalloc(strlen(s) + 1);
+ q->Hname = infont;
+ q->next = NULL;
+ q->precode = pre;
+ q->postcode = post;
+ strcpy(q->name, s);
+ if (*what == NULL)
+ *what = q;
+ else {
+ for (p = *what; p->next != NULL; p = p->next);
+ p->next = q;
+ }
+ return 1;
+}
+/*
+ * This function checks the virtual memory usage of a header file.
+ * If we can find a VMusage comment, we use that; otherwise, we use
+ * length of the file.
+ */
+void
+checkhmem(const char *s, char *pre, char *post)
+{
+ FILE *f;
+
+ f = search(headerpath, s, READBIN);
+ if (pre || post) {
+ if (f==NULL)
+ f = search(figpath, s, READBIN);
+ }
+ if (f==0) {
+ char *msg = concat ("! Couldn't find header file: ", s);
+
+ if (secure == 2) {
+ msg = concat (msg,
+ "\nAbsolute and ../relative paths are denied in -R2 mode.");
+ }
+ error(msg);
+ } else {
+ int len, i, j;
+ long mem = -1;
+ char buf[1024];
+
+ len = fread(buf, sizeof(char), 1024, f);
+ for (i=0; i<len-20; i++)
+ if (buf[i]=='%' && strncmp(buf+i, "%%VMusage:", 10)==0) {
+ if (sscanf(buf+i+10, "%d %ld", &j, &mem) != 2)
+ mem = -1;
+ break;
+ }
+ if (mem == -1) {
+ mem = 0;
+ while (len > 0) {
+ mem += len;
+ len = fread(buf, sizeof(char), 1024, f);
+ }
+ }
+ if (mem < 0)
+ mem = DNFONTCOST;
+ (*close_file) (f);
+#ifdef DEBUG
+ if (dd(D_HEADER))
+ fprintf_str(stderr, "Adding header file \"%s\" %ld\n",
+ s, mem);
+#endif
+ fontmem -= mem;
+ if (fontmem > 0) /* so we don't count it twice. */
+ swmem -= mem;
+ }
+}
+/*
+ * This routine is responsible for adding a header file. We also
+ * calculate the VM usage. If we can find a VMusage comment, we
+ * use that; otherwise, we use the length of the file.
+ */
+int
+add_header(const char *s)
+{
+ return (int) add_header_general (s, NULL, NULL);
+}
+
+int
+add_header_general(const char *s, char *pre, char *post)
+{
+ int r;
+
+ r = add_name_general(s, &header_head, pre, post);
+ if (r) {
+ if (headersready == 1) {
+ struct header_list *p = header_head;
+
+ while (p) {
+ checkhmem(p->name, p->precode, p->postcode);
+ p = p->next;
+ }
+ headersready = 2;
+ } else if (headersready == 2) {
+ checkhmem(s, pre, post);
+ }
+ }
+ return r;
+}
+/*
+ * This routine runs down a list, returning each in order.
+ */
+static struct header_list *CUR_head = NULL;
+char *
+get_name(struct header_list **what)
+{
+ if (what && *what) {
+ char *p = (*what)->name;
+ infont = (*what)->Hname;
+ CUR_head = *what;
+ *what = (*what)->next;
+ return p;
+ } else
+ return 0;
+}
+/*
+ * This routine actually sends the headers.
+ */
+void
+send_headers(void) {
+ struct header_list *p = header_head;
+ char *q;
+
+ while (0 != (q=get_name(&p))) {
+#ifdef DEBUG
+ if (dd(D_HEADER))
+ fprintf_str(stderr, "Sending header file \"%s\"\n", q);
+#endif
+#ifdef HPS
+ if (HPS_FLAG) {
+ if (strcmp(q,"target.dct")==0) noprocset = 1;
+ }
+#endif
+ copyfile_general(q, CUR_head);
+ }
+ infont = NULL;
+}
diff --git a/Build/source/texk/dvipsk/hps.c b/Build/source/texk/dvipsk/hps.c
new file mode 100644
index 00000000000..65a1c85d7fd
--- /dev/null
+++ b/Build/source/texk/dvipsk/hps.c
@@ -0,0 +1,622 @@
+/* This is the main file for hacking dvips to do HyperPostScript
+ * Written by Mark D. Doyle 11/94. It is (C) Copyright 1994 by Mark D. Doyle
+ * and the University of California. You may modify and use this program to
+ * your heart's content.
+ */
+#include "dvips.h"
+
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+#ifdef HPS
+#include <stdlib.h>
+#ifdef KPATHSEA
+#include <kpathsea/c-ctype.h>
+#else
+#define TOLOWER Tolower
+#endif
+#ifndef FALSE
+#define FALSE 0
+#endif
+#ifndef TRUE
+#define TRUE 1
+#endif
+#ifndef Tolower
+#define Tolower tolower
+#endif
+#define NAME 0
+#define HREF 1
+#define skip_space(s) for(; *s == ' '; s++);
+
+Boolean inHTMLregion = 0;
+Boolean NO_ERROR = 1;
+Boolean HPS_ERROR = 0;
+integer HREF_COUNT;
+Boolean ISHREF = 0;
+Boolean POPPED = 0;
+Boolean PUSHED = 0;
+
+char *current_name;
+int current_type;
+int current_pushcount;
+
+
+#define GoTo 0
+#define GoToR 1
+#define Launch 2
+
+typedef struct rectangle {
+ double llx; /* lower left x coor */
+ double lly; /* lower left y coor */
+ double urx; /* upper right x coor */
+ double ury; /* upper right y coor */
+ } dvipsRectangle;
+
+typedef struct hps_link {
+ int action; /* GoTo, GoToR, or Launch */
+ char *file; /* PDF-style system-independent filename - unused now */
+ dvipsRectangle rect; /* rectangle for location of link */
+ int border[5]; /* Border info --- with dashes*/
+ int srcpg; /* Page of location */
+ int page; /* Page of destination --- left out is same as srcpg */
+ int vert_dest; /* Vertical position of destination on page */
+ double color[3]; /* color: length of array gives colorspace (3 <=> RGB)*/
+ char *title; /* Title of link */
+ } Hps_link;
+
+struct nlist { /* hashtable entry */
+ struct nlist *next; /* next entry in chain */
+ char *name; /* defined name */
+ Hps_link *defn; /* Link associated with name */
+ };
+
+typedef struct rect_list { /* linked list of rectangles */
+ struct rect_list *next; /* next rectangle in the chain */
+ dvipsRectangle rect;
+ } Rect_list;
+
+Rect_list *current_rect_list;
+
+#define HASHSIZE 1223
+static struct nlist *link_targets[HASHSIZE]; /* names .... */
+static struct nlist *link_sources[HASHSIZE]; /* hrefs .... */
+
+#ifdef KPATHSEA
+#define dup_str xstrdup
+#else
+char *dup_str(); /* duplicate a string */
+#endif
+
+Boolean noprocset; /* Leave out BeginProc and EndProc comments */
+/* This was hardcoded to letter size. The denominator converts scaled
+ points to big points (65536*72.27/72). */
+#undef PAGESIZE /* HP-UX 10 defines for itself. */
+#define PAGESIZE ((int) (vpapersize/65781.76))
+#define MARGIN 72
+#define VERTICAL 0
+#define HORIZONTAL 1
+#define FUDGE 2.0
+
+/* For later use
+* static char *dest_key[9] = {"Fit", "FitB", "FitW", "FitH", "FitBH"
+ "FitR", "FitV", "FitBV", "XYZ"};
+*/
+
+char *hs = NULL; /* html string to be handled */
+char *url_name = NULL; /* url between double quotes */
+
+static int href_or_name(void);
+static int parseref(void);
+static int get_string(void);
+static int do_link(char *s, int type);
+static struct nlist *lookup_link(char *s, int type);
+static struct nlist *install_link(char *name, struct hps_link *defn, int type);
+static Hps_link *link_dup(struct hps_link *s);
+static double dvi_to_hps_conv(int i, int dir);
+static int href_name_match(char *h, char *n);
+static void stamp_hps(struct hps_link *pl);
+static void stamp_external(char *s, struct hps_link *pl);
+static void print_rect_list(void);
+
+/* parse anchor into link */
+void
+do_html(char *s)
+{
+ Hps_link *nl;
+ url_name = (char *)malloc(strlen(s)+1);
+ hs = s;
+ HREF_COUNT = 0;
+ skip_space(hs); /* skip spaces */
+ if ( TOLOWER(*hs) == 'a') { /* valid start */
+ POPPED = FALSE;
+ if (inHTMLregion) {
+ error("previous html not closed with /A");
+ return;
+ } else {
+ inHTMLregion = TRUE;
+ current_rect_list = NULL;
+ }
+ hs++;
+ skip_space(hs);
+ while(*hs != '\0') {
+ /* parse for names and href */
+ if (!href_or_name()) {
+ error("Bad HMTL:");
+ error(s);
+ error("!");
+ break;
+ }
+ skip_space(hs);
+ }
+ } else if ( (*hs == '/') && (TOLOWER(hs[1]) == 'a') ) {
+ if (!inHTMLregion) {
+ error("In html, /A found without previous A");
+ return;
+ } else {
+ inHTMLregion = FALSE;
+ }
+ if (current_type == HREF && current_name[0] != '#') {
+ if ((nl = lookup_link(current_name, current_type)->defn)) {
+ nl->rect.urx = dvi_to_hps_conv(hh, HORIZONTAL);
+ nl->rect.ury = dvi_to_hps_conv(vv, VERTICAL)-FUDGE+12.0;
+ stamp_external(current_name,nl); /* Broken lines ? */
+ } else {
+ error("!Null lookup");
+ }
+ } else {
+ if ((nl = lookup_link(current_name, current_type)->defn)) {
+ nl->rect.urx = dvi_to_hps_conv(hh, HORIZONTAL);
+ nl->rect.ury = dvi_to_hps_conv(vv, VERTICAL)-FUDGE+12.0;
+ if (current_type) {
+ stamp_hps(nl); /* Put link info right where special is */
+ print_rect_list(); /* print out rectangles */
+ }
+ } else {
+ error("!Null lookup");
+ }
+ }
+ }
+ else {
+ error( "No A in html special");
+ error(s);
+ /*error("!");*/
+ }
+
+ return;
+}
+
+static int
+href_or_name(void) {
+ if ((strncmp(hs, "href", 4) == 0) || (strncmp(hs, "HREF", 4) == 0)) {
+ ISHREF = TRUE;
+ } else if ((strncmp(hs, "name", 4) == 0)
+ || (strncmp(hs, "NAME", 4) == 0)) {
+ ISHREF = FALSE;
+ } else {
+ error("Not valid href or name html reference");
+ return(HPS_ERROR);
+ }
+ if(!parseref()) return(HPS_ERROR);
+ if (url_name) {
+ if( ISHREF ) {
+ do_link(url_name, HREF);
+ } else do_link(url_name, NAME);
+ } else {
+ error("No string in qoutes ");
+ return(HPS_ERROR);
+ }
+ return(NO_ERROR);
+}
+
+static int
+parseref(void) {
+ int i = 0;
+ for(i=0; i++ < 4; hs++); /* skip href or name in html string */
+ skip_space(hs);
+ if (*hs == '=' ) {
+ hs++;
+ } else {
+ error("No equal sign");
+ return(HPS_ERROR);
+ }
+ if(!get_string()) return(HPS_ERROR);
+ return(NO_ERROR); /* extract stuff between double quotes */
+}
+
+static int
+get_string(void) {
+ char *v = url_name;
+
+ skip_space(hs);
+ /* hash_name(); */
+ if (*hs == '"') {
+ for(hs++; *hs != '"' && *hs != '\0'; *v++ = *hs++); /* need to esc " */
+ if(*hs == '"') {
+ hs++;
+ *v++ = '\0';
+ return(NO_ERROR);
+ } else {
+ error("Improper href. Missing closing double quote");
+ return(HPS_ERROR);
+ }
+ } else {
+ error("Improper href. Missing opening double quote");
+ return(HPS_ERROR);
+ }
+}
+
+static int
+do_link(char *s, int type)
+{
+
+ Hps_link *p;
+
+ if (HREF_COUNT++ > 0) {
+ error("!HTML string contains more than one href");
+ return(HPS_ERROR);
+ }
+ p = (Hps_link *)malloc(sizeof(*p));
+ p->action = GoTo;
+ p->title = (char *)malloc(strlen(s)+1);
+ p->title = s;
+ p->srcpg = pagecounter;
+ p->rect.llx = dvi_to_hps_conv(hh, HORIZONTAL);
+ p->rect.lly = dvi_to_hps_conv(vv, VERTICAL)-FUDGE;
+ p->rect.urx = -1.0;
+ p->rect.ury = -1.0;
+ p->vert_dest = -1;
+ p->page = -1;
+ p->color[0] = 0;
+ p->color[1] = 0; /* Blue links */
+ p->color[2] = 1;
+ p->border[0] = 1; /* horizontal corner radius */
+ p->border[1] = 1; /* vertical corner radius */
+ p->border[2] = 1; /* box line width */
+ p->border[3] = 3; /* dash on size */
+ p->border[4] = 3; /* dash off size */
+
+ current_name = (char *)malloc(strlen(s)+1);
+ current_name = s;
+ current_type = type;
+ current_pushcount = pushcount;
+ install_link(s, p, type);
+ return(NO_ERROR);
+}
+
+static unsigned int
+hash_string(char *s)
+{
+ unsigned hashval;
+ for (hashval = 0; *s != '\0'; s++)
+ hashval = *s + 31 * hashval;
+ return hashval % HASHSIZE;
+}
+
+/* lookup a hashed name */
+
+static struct nlist *
+lookup_link(char *s, int type)
+{
+ struct nlist *np;
+
+ for(np = type ? link_sources[hash_string(s)] : link_targets[hash_string(s)];
+ np != NULL; np = np -> next)
+ if (strcmp(s, np->name) == 0)
+ return np; /* found */
+ return NULL; /* not found */
+}
+
+static struct nlist *
+install_link(char *name, Hps_link *defn, int type)
+{
+ struct nlist *np;
+ unsigned hashval;
+ np = (struct nlist *)malloc(sizeof(*np));
+ if (np == NULL || (np->name = dup_str(name)) == NULL)
+ return NULL;
+ hashval = hash_string(name);
+ np->next = type ? link_sources[hashval] : link_targets[hashval];
+ (type ? link_sources : link_targets)[hashval] = np;
+ if ((np->defn = link_dup(defn)) == NULL)
+ return NULL;
+ return np;
+}
+
+#ifndef KPATHSEA
+char *
+dup_str(char *w) /* make a duplicate of s */
+{
+ char *p;
+ p = (char *)malloc(strlen(w)+1);
+ if (p != NULL)
+ strcpy(p,w);
+ return p;
+}
+#endif
+
+static Hps_link *
+link_dup(Hps_link *s) /* make a duplicate link */
+{
+ Hps_link *p;
+
+ p = (Hps_link *) malloc(sizeof(*p));
+ if (p != NULL)
+ p = s;
+ return p;
+}
+
+static double
+dvi_to_hps_conv(int i, int dir)
+{
+ double hps_coor;
+ /* Convert dvi integers into proper hps coordinates
+ Take into account magnification and resolution that dvi file was
+ produced at */
+ hps_coor = dir ? (((i * 72.0) / vactualdpi) +MARGIN) : (PAGESIZE - ((i * 72.0) / (vactualdpi)) - MARGIN );
+ return(hps_coor);
+}
+
+static int
+vert_loc(int i)
+{
+ int return_value;
+ return_value = (int) (i + (PAGESIZE / 4) + FUDGE);
+ if ( return_value > PAGESIZE) {
+ return((int)PAGESIZE);
+ } else if (return_value < (PAGESIZE / 4.0)) {
+ return((PAGESIZE / 4));
+ } else return(return_value);
+}
+
+static Hps_link *
+dest_link(char *s)
+{
+ /* Assume for now that only one entry with same NAME, i.e.
+ Should be true for all legitimate papers.
+ Also, assume prepending of # for names. */
+
+ struct nlist *np;
+
+ s++; /* get rid of hashmark */
+ for(np = link_targets[hash_string(s)]; np != NULL; np = np -> next) {
+ if ( href_name_match(s, np->name)) {
+ return (np->defn); /* found */
+ }
+ }
+ error("Oh no, link not found in target hashtable");
+ error(s);
+ error("!");
+ return NULL; /* not found */
+}
+
+static int
+count_targets(void) {
+ int count=0;
+ int i;
+ struct nlist *np;
+
+ for (i = 0; i < HASHSIZE; i++)
+ for(np = link_targets[i]; np != NULL; np = np -> next)
+ count++;
+ return count;
+}
+
+static void
+do_targets(void) {
+
+ struct nlist *np;
+ int i;
+ Hps_link *dest;
+
+ for (i = 0; i < HASHSIZE; i++)
+ for(np = link_sources[i]; np != NULL; np = np -> next) {
+ if (np->name[0] == '#') {
+ dest = dest_link(np->name);
+ np->defn->page = dest->srcpg;
+ np->defn->vert_dest = vert_loc((int) dest->rect.lly);
+ }
+ }
+}
+
+static void
+do_target_dict(void)
+{
+ struct nlist *np;
+ int i;
+ (void) fprintf(bitfile, "HPSdict begin\n");
+ fprintf(bitfile, "/TargetAnchors\n");
+ fprintf(bitfile, "%i dict dup begin\n",count_targets());
+
+ for (i = 0; i < HASHSIZE; i++)
+ for(np = link_targets[i]; np != NULL; np = np -> next)
+ fprintf(bitfile, "(%s) [%i [%.0f %.0f %.0f %.0f] %i] def\n",
+ np->defn->title, np->defn->srcpg,
+ np->defn->rect.llx, np->defn->rect.lly,
+ np->defn->rect.urx, np->defn->rect.ury,
+ vert_loc((int) np->defn->rect.lly));
+ fprintf(bitfile,"end targetdump-hook def end\n");
+}
+
+static int
+href_name_match(char *h, char *n)
+{
+ int count = 0;
+ int name_length = strlen(n);
+ while((*h == *n) & (*h != '\0') ) {
+ count++;
+ h++;
+ n++;
+ }
+ if (name_length == count) {
+ return 1;
+ } else {
+ /* printf(" count: %i \n", count); */
+ return 0;
+ }
+}
+
+static void
+stamp_hps(Hps_link *pl)
+{
+ char *tmpbuf;
+ unsigned tmpsize;
+
+ if (pl == NULL) {
+ error("stamp_hps: null pl pointer, oh no!");
+ return;
+ }
+ if (pl->title == NULL) {
+ error("stamp_hps: null pl->title pointer, oh no!");
+ return;
+ }
+
+ tmpsize = strlen(pl->title) + 500;
+ tmpbuf = xmalloc(tmpsize);
+
+ /* print out the proper pdfm with local page info only
+ * target info will be in the target dictionary */
+ snprintf(tmpbuf, tmpsize,
+ " (%s) [[%.0f %.0f %.0f %.0f] [%i %i %i [%i %i]] [%.0f %.0f %.0f]] pdfm ",
+ pl->title, pl->rect.llx, pl->rect.lly, pl->rect.urx, pl->rect.ury,
+ pl->border[0], pl->border[1], pl->border[2], pl->border[3],pl->border[4],
+ pl->color[0], pl->color[1], pl->color[2]);
+ cmdout(tmpbuf);
+ free(tmpbuf);
+
+
+}
+
+/* For external URL's, we just pass them through as a string. The hyperps
+ * interpreter can then do what is wants with them.
+ */
+static void
+stamp_external(char *s, Hps_link *pl)
+{
+ char *tmpbuf;
+ unsigned tmpsize;
+ if (pl == NULL) {
+ error("stamp_external: null pl pointer, oh no!");
+ return;
+ }
+ if (s == NULL) {
+ error("stamp_external: null s pointer, oh no!");
+ return;
+ }
+
+ tmpsize = strlen(s) + 500;
+ tmpbuf = xmalloc(tmpsize);
+
+ /* print out the proper pdfm with local page info only
+ * target info will be in the target dictionary */
+ snprintf(tmpbuf, tmpsize,
+ " [[%.0f %.0f %.0f %.0f] [%i %i %i [%i %i]] [%.0f %.0f %.0f]] (%s) pdfm ",
+ pl->rect.llx, pl->rect.lly, pl->rect.urx, pl->rect.ury,
+ pl->border[0], pl->border[1], pl->border[2], pl->border[3],pl->border[4],
+ pl->color[0], pl->color[1], pl->color[2], s);
+ cmdout(tmpbuf);
+ free(tmpbuf);
+}
+
+void
+finish_hps(void) {
+ fclose(bitfile);
+ set_bitfile("head.tmp",1);
+ do_targets();
+ do_target_dict();
+ fprintf(bitfile, "TeXDict begin\n");
+ fprintf(bitfile, "%%%%EndSetup\n");
+ fclose(bitfile);
+ open_output();
+ noprocset = 1;
+ removecomments = 0;
+ copyfile("head.tmp");
+ copyfile("body.tmp");
+ if (dvips_debug_flag == 0 && debug_flag == 0) {
+ unlink("head.tmp");
+ unlink("body.tmp");
+ }
+}
+
+void
+set_bitfile(const char *s, int mode)
+{
+if ((bitfile=fopen(s, mode ? FOPEN_ABIN_MODE : FOPEN_WBIN_MODE))==NULL) {
+ error(s);
+ error("!couldn't open file");
+ }
+ linepos = 0;
+}
+
+void
+vertical_in_hps(void) {
+ Rect_list *rl;
+ /*printf("in vertical_in_hps"); */
+ if (current_type == NAME) return; /* Handle this case later */
+ if (!current_rect_list) {
+ current_rect_list = (Rect_list *)malloc(sizeof(Rect_list));
+ current_rect_list->next = NULL;
+ }
+ else {
+ rl = (Rect_list *)malloc(sizeof(Rect_list));
+ rl->next = current_rect_list;
+ current_rect_list = rl;
+ }
+ current_rect_list->rect.llx = dvi_to_hps_conv(hh, HORIZONTAL);
+ current_rect_list->rect.lly = dvi_to_hps_conv(vv, VERTICAL)-FUDGE;
+ current_rect_list->rect.urx = dvi_to_hps_conv(hhmem, HORIZONTAL);
+ current_rect_list->rect.ury = dvi_to_hps_conv(vvmem, VERTICAL)-FUDGE;
+
+ if (POPPED) start_new_box();
+}
+
+static void
+print_rect_list(void) {
+ Rect_list *rl, *rln;
+
+ for(rl = current_rect_list; rl != NULL; rl = rln) {
+ /* printf("Rectangle is %.0f, %.0f, %.0f, %.0f\n", rl->rect.llx, rl->rect.lly,
+ rl->rect.urx, rl->rect.ury); */
+ rln = rl -> next;
+ free(rl);
+ }
+}
+
+void
+end_current_box(void) {
+ Hps_link *nl;
+
+ POPPED = TRUE;
+ HREF_COUNT--;
+ if (current_type == HREF && current_name[0] != '#') {
+ if ((nl = lookup_link(current_name, current_type)->defn)) {
+ nl->rect.urx = dvi_to_hps_conv(hhmem, HORIZONTAL);
+ nl->rect.ury = dvi_to_hps_conv(vvmem, VERTICAL)-FUDGE+12.0;
+ stamp_external(current_name,nl); /* Broken lines ? */
+ } else {
+ error("!Null lookup");
+ }
+ } else {
+ if ((nl = lookup_link(current_name, current_type)->defn)) {
+ nl->rect.urx = dvi_to_hps_conv(hhmem, HORIZONTAL);
+ nl->rect.ury = dvi_to_hps_conv(vvmem, VERTICAL)-FUDGE+12.0;
+ if (current_type) {
+ stamp_hps(nl); /* Put link info right where special is */
+ }
+ } else {
+ error("!Null lookup");
+ }
+ /* printf("Ended box %.0f, %.0f, %.0f, %.0f\n", nl->rect.llx, \
+ nl->rect.lly,nl->rect.urx, nl->rect.ury); */
+ }
+}
+
+void
+start_new_box(void) {
+ POPPED = FALSE;
+ do_link(current_name, current_type);
+}
+#else
+int no_hypertex; /* prevent an empty file */
+#endif
diff --git a/Build/source/texk/dvipsk/hps.lpro b/Build/source/texk/dvipsk/hps.lpro
new file mode 100644
index 00000000000..e8d10de2482
--- /dev/null
+++ b/Build/source/texk/dvipsk/hps.lpro
@@ -0,0 +1,250 @@
+%!PS-Adobe-2.0 Resource
+%
+% This is the set of procedures that are necessary for using dvips with the
+% -z flag to create PDF-ready PostScript from HyperTeX.
+% Written by Tanmoy Bhattacharya and Mark D. Doyle 11/94.
+% It is (C) Copyright 1994 by Tanmoy Bhattacharya, Mark D. Doyle
+% and the University of California. You may modify and use this program to
+% your heart's content.
+%
+% Version number info
+% 1 0 Probably first release
+% 1 1 Added external handler to let ghostview work
+% 1 2 Attempt at using weblink plugin (not checked)
+%
+% 2 0 Complete rewrite.
+% 2 1 skipped (because testing remotely: it is a debugging version)
+% 2 2 Hopefully correct.
+% 2 3 weblink with anchors corrected.
+% 2 4 bug fix: cvn for dest added
+% 2 5 bug fix: No point of error message if not on a distiller.
+% 2 6 bug fix: stupid {..} error. Check destination name to avoid bad names.
+% 2 2 tested under (Being tested :-)
+% unix distiller (old)
+% mac 2.1
+% mac 2.0
+% windows 2.0
+% ghostscript
+
+%%BeginResource: procset hps.lpro 2 6
+/HPSdict 20 dict dup begin
+
+/braindeaddistill 50 def
+
+/rfch % remove first charcter of string
+ {dup length 1 sub 1 exch getinterval} bind def
+
+/splituri % string splituri dest uri/file true_if_uri
+ {dup (#) search
+ {exch pop}
+ {() exch}
+ ifelse
+ dup (file:) anchorsearch
+ {pop exch pop 3 -1 roll pop false}
+ {pop 3 -1 roll exch pop true}
+ ifelse} bind def
+
+/lookuptarget
+{exch rfch dup % drop the hashmark
+ /TargetAnchors where
+ {pop TargetAnchors dup
+ 3 -1 roll known
+ {exch get true}
+ {pop (target unknown:)print == false}
+ ifelse}
+ {pop pop
+ (target dictionary unknown\012)print false}
+ ifelse}
+bind def
+
+/savecount 0 def
+
+/stackstopped % Like stopped, but clear to current mark on error
+{ count counttomark sub /savecount exch store
+ stopped
+ count savecount sub 1 sub dup 0 gt
+ {{exch pop} repeat}
+ {pop}
+ ifelse
+}
+bind def
+
+% PDF implementation limit for names is 127, see PDF specification,
+% version 1.6, appendix C "Implementation Limits,
+% table C.1 "Architectural limits", page 920.
+/tempstring 128 string def
+
+/targetvalidate
+ {1 index dup length 127 gt exch
+ tempstring cvs
+ dup (/) search
+ {pop pop pop exch pop true exch}
+ {pop}
+ ifelse
+ token {pop length 0 ne} {true} ifelse or
+ not} bind def
+
+/targetdump-hook where
+ {pop}
+ {/targetdump-hook
+ {dup mark exch gsave initmat setmatrix
+ {{ mark /Dest 4 2 roll
+ targetvalidate
+ {aload pop exch pop
+ /Page 3 1 roll /View exch [ exch /FitH exch ]
+ /DEST pdfmark}
+ {cleartomark}
+ ifelse} forall} stackstopped pop
+ grestore} bind def }
+ifelse
+
+/baseurl
+{mark exch 1 dict dup 3 -1 roll
+ /Base exch put
+ /URI exch
+ /DOCVIEW {pdfmark} stackstopped pop}
+bind def
+
+/externalhack systemdict /PDF known def
+/oldstyle true def
+
+/initmat matrix currentmatrix def
+/actiondict 2 dict dup /Subtype /URI put def
+/weblinkhandler
+{ dup 3 1 roll mark 4 1 roll
+ /Title 4 1 roll
+ splituri 3 -1 roll
+ dup length 0 gt
+ {cvn /Dest exch 4 2 roll}
+ {pop}
+ ifelse
+ {externalhack
+ {/HTTPFile exch}
+ {actiondict dup 3 -1 roll /URI exch put
+ /Action exch}
+ ifelse}
+ {externalhack
+ {/HTTPFile exch}
+ {/File exch /Action /GoToR}
+ ifelse
+ }
+ ifelse
+ counttomark 2 sub -1 roll
+ aload pop
+ /Rect 4 1 roll
+ /Border 3 1 roll
+ /Color exch
+ oldstyle
+ {/LNK}
+ {/Subtype /Link /ANN}
+ ifelse
+ gsave initmat setmatrix
+ {pdfmark} stackstopped
+ grestore}
+bind def
+
+/externalhandler where
+{pop}
+{/externalhandler
+{ 2 copy
+ {weblinkhandler} exec
+ {/externalhack externalhack not store
+ 2 copy
+ {weblinkhandler} exec
+ {/externalhack externalhack not store
+ /oldstyle false store
+ 2 copy
+ {weblinkhandler} exec
+ {(WARNING: external refs disabled\012)print
+ /externalhandler {pop pop} bind store externalhandler}
+ {pop pop}
+ ifelse}
+ {pop pop /externalhack externalhack not store}
+ ifelse}
+ {pop pop /externalhandler {weblinkhandler pop} bind store}
+ ifelse}
+bind def}
+ifelse
+
+/pdfmnew
+{dup type /stringtype eq {externalhandler} {
+exch dup rfch exch 3 -1 roll
+lookuptarget
+ {mark 4 1 roll
+ /Title 4 1 roll
+ aload pop
+ exch
+ pop
+ /Page 3 1 roll
+ /View exch
+ [ exch /FitH exch ]
+ 5 -1 roll
+ aload pop
+ /Rect 4 1 roll
+ /Border 3 1 roll
+ /Color exch
+ /LNK gsave initmat setmatrix pdfmark grestore}
+ {pop pop}
+ ifelse} ifelse}
+bind def
+
+/pdfmold
+{dup type /stringtype eq {externalhandler} {
+exch dup rfch exch 3 -1 roll
+lookuptarget
+ {mark 4 1 roll % put a mark below the source array and the array containing
+ % the page
+ % the rectangle array of the destination and the FitH parameter
+ % and below the Title string
+ /Title 4 1 roll % put /Title in front of Title string
+ aload pop % put the array elements on the stack
+ exch % exchange the FitH parameter and the Rect array
+ pop % Get rid of the Rect array
+ /Page 3 1 roll % put a /Page in front of the page number
+ /View exch % put a /View below the FitH parameter
+ [ exch /FitH exch ] % put in the /FitH
+ 5 -1 roll
+ aload pop pop
+ 0 3 getinterval
+ /Rect 3 1 roll
+ /Border exch
+ /LNK gsave initmat setmatrix pdfmark grestore}
+ {pop pop}
+ ifelse} ifelse}
+bind def
+
+/pdfm where
+{pop}
+{/pdfm
+/currentdistillerparams where
+ {pop
+ currentdistillerparams
+ dup /CoreDistVersion known
+ {/CoreDistVersion get}
+ {0}
+ ifelse dup
+ braindeaddistill le
+ {(WARNING: switching to old pdfm because version =)print == /pdfmold}
+ {pop /pdfmnew}
+ ifelse load
+ }
+ {/pdfmark where
+ {pop {dup type /stringtype eq {externalhandler}
+ {2 copy mark 3 1 roll
+ {pdfmnew} stackstopped
+ {2 copy mark 3 1 roll
+ {pdfmold} stackstopped
+ {(WARNING: pdfm disabled\012) print
+ /pdfm {pop pop} store}
+ {(WARNING: new pdfm failed, switching to old pdfm\012)print
+ /pdfm /pdfmold load store}
+ ifelse}
+ {/pdfm /pdfmnew load store}
+ ifelse pop pop}ifelse}}
+ {{pop pop}}
+ ifelse}
+ ifelse bind def}
+ifelse
+end def
+%%EndResource
+%%EOF
diff --git a/Build/source/texk/dvipsk/hps/CHANGES_HPS.txt b/Build/source/texk/dvipsk/hps/CHANGES_HPS.txt
new file mode 100644
index 00000000000..dae9cb36b39
--- /dev/null
+++ b/Build/source/texk/dvipsk/hps/CHANGES_HPS.txt
@@ -0,0 +1,45 @@
+History of changes to dvips source to include hypertex support
+
+last modified Tue Oct 31 10:26:45 MST 1995
+
+Version 0.3c:
+
+1) added a fixed version of hps.lpro (version 2.6 now).
+
+Version 0.3b:
+
+1) corrected hps.c to handle line breaks in external links correctly.
+2) added a fixed version of hps.lpro (version 2.4 now).
+
+Version 0.3a:
+
+1) corrected the support for exteranl url's so that the 2.1 distiller can put
+in proper weblinks. (this just means a new hps.lpro by Tanmoy Bhattacharya.)
+2) fixed a bug in dopage.c that prevented virtual fonts from working.
+
+Version 0.3:
+
+1) added better support for external url's, notably support for
+breaking them across lines.
+2) modified hps.pro to better handle external url's to maintain
+compatibility with Tanmoy Bhattacharya's hacked ghostview
+(hyperpostscript viewer).
+3) Fixed bug so that newlines are now correctly added after
+%%BeginDocument line for included ps files.
+
+Version 0.2:
+
+1) added support for hyperlinks that break across lines and
+pages. Your mileage may vary, but it seems to work fairly well.
+
+Version 0.1:
+
+1) Added hps.c and hps.pro to dvips distribution and modified several
+source files to create hyperPostScript. Added -DHPS compilation option
+and -z flag to get this behavior. Otherwise everything should be
+identical to dvips5.58.
+
+Mark Doyle
+http://nqcd.lanl.gov/people/doyle/
+doyle@mmm.lanl.gov
+
diff --git a/Build/source/texk/dvipsk/hps/README_HPS.txt b/Build/source/texk/dvipsk/hps/README_HPS.txt
new file mode 100644
index 00000000000..2979bb8102a
--- /dev/null
+++ b/Build/source/texk/dvipsk/hps/README_HPS.txt
@@ -0,0 +1,144 @@
+README_HPS, version 0.3
+
+last modified Wed Jul 19 11:34:52 MDT 1995
+
+This is an alpha release of a hacked version of dvips v5.58 for
+converting HyperTeX into HyperPostScript that in turn can be run
+through the Adobe distiller to produce a PDF file with chapter and
+section numbers, references, equation numbers, etc. all links.
+This program is intended for use with the TeX and LaTex macros
+modified to create HyperTeX (see http://xxx.lanl.gov/hypertex/).
+With these macros, TeX and LaTex can be converted into HyperTeX
+without any additional work by the user. The linking information
+is stamped into the dvi file via a set of html: \special commands.
+Normally conversion to PostScript involves a loss of this information.
+This program preserves all of the information in the Hyperdvi file
+and makes it available to all PostScript interpreters, as well as
+the Adobe PDF distiller. In addition, the HyperPostScript produced will
+work with ordinary PostScript interpreters as well.
+The software itself is availabe at http://nqcd.lanl.gov/people/doyle/
+or at ftp://gita.lanl.gov/people/doyle .
+
+INSTALLATION:
+
+To compile this program, just follow the usual instructions. Since
+this version stems from the latest version of dvips, you should
+install the up-to-date versions of config.* and the *.pro files.
+You can edit the Makefile to put these in some other place besides
+the usual one. Compiling with the -DHPS option (enabled by default
+in the Makefile) will produce the hacked version of dvips. Disabling
+this option will produce the version of dvips that you already know
+and love. I have made an effort to keep my changes to the dvips
+source code minimal. Most of the important stuff is in the source
+file hps.c. Almost all of the changes to the dvips source code
+are mandated by the need for putting information at the beginning
+of the PostScript file that isn't normally available until the
+entire dvi file has been completely processed. Thus, two temporary
+files are created when running the program to create HyperPostScript,
+head.tmp and body.tmp. One can freely delete these after running
+the program.
+
+The files modified from the 5.58 dvips distribution are:
+dvips.c, dvips.h, paths.h, dosection.c, dopage.c, dospecial.c, output.c,
+header.c, Makefile, and a very minor (irrelevant) change to afm2tfm.c.
+
+Files added are README_HPS.txt, CHANGES_HPS.txt, hps.c, and hps.lpro.
+
+Anyone interested in going all the way to PDF is encouraged to install
+PostScript versions of the TeX fonts on their system. The Adobe PDF
+readers are extremely slow when dealing with bitmapped fonts. There
+is, however, a bug in the Adobe distillers that requires a workaround
+for certain characters. See below for more info. Commercial versions
+of the fonts are available from BlueSky and public domain versions are
+available at ftp://ftp.shsu.edu/pub/tex/fonts/postscript/bakoma/ and
+ftp://ftp.shsu.edu/pub/tex/fonts/postscript/paradissa/ .
+MS-DOS/Windows user beware: The latest Adobe Type Manager doesn't like
+the BlueSky fonts. I haven't tried the public domain ones. (On a new
+and different PC I was able to get the Blue Sky fonts installed with
+ATM and it works fine. Your mileage may vary. July 19, 1995.)
+
+USAGE:
+
+After compiling with -DHPS, a user can invoke the Hyperdvi to
+HyperPostScript conversion with the -z flag. If the flag is
+omitted, dvips simply will revert back to the default behavior and
+skip over the html: \special commands.
+
+There appears to be a bug in the Adobe distillers. For optimization
+purposes the distillers drop trailing blanks (character code 32)
+from strings. Unfortunately, the PostScript fonts use this character
+code for certain characters (notably the Greek letter psi), and
+so these characters are dropped. This bug still appears in the 2.0
+distiller.
+
+ -----HACK ALERT-----
+
+One way around this is to change all the trailing blanks of strings to
+a character code that isn't in the font. The default behavior is to
+substitute a blank for a missing character, i.e. the distiller is
+fooled into substituting the right character. For instance, with the
+BlueSky fonts, one can globally replace " )" with "\200)" and get the
+desired result. With the public domain fonts, one will probably have
+to use a character code in the range 128 to 191 since these fonts
+duplicate the first 32 characters starting at 192 to avoid MS-DOS
+problems. Fortunately, a simple sed will accomplish the replacements.
+
+OTHER NOTES:
+
+The program is rather straightforward and operates by converting
+the dvi html: href \specials into pdfmark operators in the PostScript
+that specify the links. The html: name \specials are combined into
+a PostScript dictionary with all of the target information. The
+hps.pro header tries to gracefully handle various contingencies.
+If the resulting HyperPostScript file is handed off to an ordinary
+PostScript interpreter, the pdfm operators are automatically defined
+to pop the irrelevant information off the stack. On the other hand,
+if it is handed to a distiller, the PostScript program in the header
+tries to determine of what vintage the distiller is so that various
+enhancements of the pdfmark operator can be used or ignored (color,
+border dashing, etc.). Thus the resulting files can be distilled
+using either the latest PC versions or the older Unix versions.
+The hps.pro header was written by Tanmoy Bhattacharya
+(http://nqcd.lanl.gov/people/tanmoy/tanmoy.html) with some additions
+by me. Other PostScript interpreters are free to pick up the pdfm
+operators as well. For instance, Tanmoy has hacked Ghostview to
+pick up the links and make them active. This can be found at
+ftp://gita.lanl.gov/people/tanmoy/hypertex/ .
+
+THINGS TO DO:
+
+1) More robust error checking and avoidance.
+2) Escaping html correctly for external URL's.
+3) More support for external URL's
+4) More flexibility in the appearance of links on the page
+5) Automatically get the papersize and margins correct (hardcoded at the
+ moment).
+6) Make C source more platform independent (which T. Rokicki has tried
+ very hard to maintain). Code has only been tested on NeXT
+ 3.3 (Motorola and HP) and Sun/SPARC (SunOS 4.1.4), and HP-UX 9.0.5. No
+ effort has been made to make the code portable for MS-DOS, OS/2, VMS,
+ or any other of the platforms that appear in the #ifdef statements.
+ Code improvements for MS-DOS and OS/2 are forthcoming.
+
+DISCLAIMER:
+
+This software is made available without any implied warranties. See
+http://xxx.lanl.gov/disclaimer.html for a more complete disclaimer.
+
+COPYRIGHT:
+
+The HyperPostScript additions to dvips are Copyright (C) 1994, 1995 by
+Mark Doyle and the University of California. You may modify and
+use this program to your heart's content, so long as you send
+modifications to Mark Doyle and abide by the rest of the dvips
+copyrights.
+
+The hps.lpro file is Copyright (C) 1994, 1995 by Tanmoy Bhattacharya, Mark
+Doyle, and the University of California. You may modify and use
+it to your heart's content, so long as you send modifications
+to Tanmoy Bhattacharya or Mark Doyle and abide by the rest of the
+dvips copyrights.
+
+Mark Doyle
+doyle@mmm.lanl.gov
+http://nqcd.lanl.gov/people/doyle/
diff --git a/Build/source/texk/dvipsk/lafonts.map b/Build/source/texk/dvipsk/lafonts.map
new file mode 100644
index 00000000000..8d0e8205253
--- /dev/null
+++ b/Build/source/texk/dvipsk/lafonts.map
@@ -0,0 +1,16 @@
+lasy5 lasy5 <lasy5.pfb
+lasy6 lasy6 <lasy6.pfb
+lasy7 lasy7 <lasy7.pfb
+lasy8 lasy8 <lasy8.pfb
+lasy9 lasy9 <lasy9.pfb
+lasy10 lasy10 <lasy10.pfb
+lasyb10 lasyb10 <lasyb10.pfb
+lcircle10 lcircle10 <lcircle10.pfb
+lcirclew10 lcirclew10 <lcirclew10.pfb
+line10 line10 <line10.pfb
+linew10 linew10 <linew10.pfb
+logo8 logo8 <logo8.pfb
+logo9 logo9 <logo9.pfb
+logo10 logo10 <logo10.pfb
+logobf10 logobf10 <logobf10.pfb
+logosl10 logosl10 <logosl10.pfb
diff --git a/Build/source/texk/dvipsk/loadfont.c b/Build/source/texk/dvipsk/loadfont.c
new file mode 100644
index 00000000000..f6d151dfd17
--- /dev/null
+++ b/Build/source/texk/dvipsk/loadfont.c
@@ -0,0 +1,535 @@
+/*
+ * Here's the code to load a PK file into memory.
+ * Individual bitmaps won't be unpacked until they prove to be needed.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#ifdef OS2
+#include <stdlib.h>
+#endif
+#ifdef KPATHSEA
+#include <kpathsea/c-pathmx.h>
+#include <kpathsea/concatn.h>
+#include <kpathsea/tex-glyph.h>
+#include <kpathsea/tex-make.h>
+#include <kpathsea/lib.h>
+#ifndef MAXPATHLEN
+#define MAXPATHLEN (256)
+#endif
+#else
+#if defined(SYSV) || defined(VMS) || (defined(MSDOS) && !defined(__DJGPP__)) || defined(OS2) || defined(ATARIST)
+#define MAXPATHLEN (256)
+#else
+#include <sys/param.h> /* for MAXPATHLEN */
+#endif
+#endif
+/*
+ * The external declarations:
+ */
+#include "protos_add.h"
+
+char errbuf[1500];
+int lastresortsizes[40];
+int bitmapfontseen = 0 ;
+/*
+ * Now we have some routines to get stuff from the PK file.
+ * Subroutine pkbyte returns the next byte.
+ */
+FILE *pkfile;
+char name[MAXPATHLEN];
+void
+badpk(const char *s)
+{
+ char *msg = concatn ("! Bad PK file ", name, ": ", s, NULL);
+ error(msg);
+}
+
+shalfword
+pkbyte(void)
+{
+ register shalfword i;
+
+ if ((i=getc(pkfile))==EOF)
+ badpk("unexpected eof");
+ return(i);
+}
+
+integer
+pkquad(void)
+{
+ register integer i;
+
+ i = pkbyte();
+ if (i > 127)
+ i -= 256;
+ i = i * 256 + pkbyte();
+ i = i * 256 + pkbyte();
+ i = i * 256 + pkbyte();
+ return(i);
+}
+
+integer
+pktrio(void)
+{
+ register integer i;
+
+ i = pkbyte();
+ i = i * 256 + pkbyte();
+ i = i * 256 + pkbyte();
+ return(i);
+}
+
+
+/*
+ * pkopen opens the pk file. This is system dependent. We work really
+ * hard to open some sort of PK file.
+ */
+#ifdef VMCMS /* IBM: VM/CMS - we let DVIPS EXEC handle this after
+ the DVIPS MODULE has finished to avoid
+ complications with system calls. */
+int dontmakefont = 0;
+#else
+#ifdef MVSXA /* IBM: MVS/XA - we let system administrator handle this on
+ MVS/XA since some printers can't get to user
+ fonts anyway */
+int dontmakefont = 1;
+#else
+int dontmakefont = 0; /* if makefont fails once we won't try again */
+#endif /* IBM: VM/CMS */
+#endif
+
+static void
+lectureuser(void) {
+ static int userwarned = 0;
+
+ if (! userwarned) {
+ error("Such scaling will generate extremely poor output.");
+ userwarned = 1;
+ }
+}
+static Boolean
+pkopen(register fontdesctype *fd)
+{
+ register char *d, *n;
+ const char *name_ret;
+#ifdef KPATHSEA
+ int dpi_ret;
+#else
+ int vdpi;
+#endif
+ d = fd->area;
+ n = fd->name;
+#ifndef KPATHSEA
+ if (*d==0)
+ d = pkpath;
+#endif
+#ifdef FONTLIB
+ if (*(fd->area) == 0) {
+ int del;
+ for (del=0; del<=RES_TOLERANCE(fd->dpi); del=del>0?-del:-del+1) {
+ if ((pkfile=flisearch(n, fd->dpi + del)) != (FILE *)NULL )
+ return(1);
+ }
+ }
+#endif
+ {
+#ifdef KPATHSEA
+ char *this_name = concat (d, n);
+
+ pkfile = pksearch(this_name, READBIN, fd->dpi, &name_ret, &dpi_ret);
+
+ if (!pkfile || !FILESTRCASEEQ (this_name, name_ret)) {
+ char *msg = concatn ("Font ", fd->area, n, " not found; ", NULL);
+ /* wasting some memory */
+ if (!pkfile)
+ msg = concat (msg, "characters will be left blank.");
+ else
+ msg = concat3 (msg, "using ", name_ret);
+ dontmakefont = 1;
+ error (msg);
+
+ } else if (!kpse_bitmap_tolerance ((double) dpi_ret, (double) fd->dpi))
+ {
+ fd->loadeddpi = dpi_ret;
+ fd->alreadyscaled = 0;
+ sprintf(errbuf,
+ "Font %s at %d not found; scaling %d instead.",
+ n, fd->dpi, dpi_ret);
+ error(errbuf);
+ lectureuser();
+ }
+
+ if (this_name != name_ret)
+ free (this_name);
+
+ return pkfile != NULL;
+ }
+#else
+ int del;
+ for (del=0; del<=RES_TOLERANCE(fd->dpi); del=del>0?-del:-del+1) {
+ if (actualdpi == vactualdpi) {
+ vdpi = 0;
+ } else {
+ vdpi = (2 * ((long)vactualdpi) * (fd->dpi + del) + actualdpi)
+ / (2 * actualdpi);
+ }
+#ifdef MVSXA
+ sprintf(name, "pk%d(%s)", fd->dpi + del, n);
+#else
+ sprintf(name, "%s.%dpk", n, fd->dpi + del);
+#endif
+ if (0 != (pkfile=pksearch(d, name, READBIN, n, fd->dpi + del, vdpi)))
+ return(1);
+ }
+ }
+ if (d == pkpath) {
+ if (actualdpi == vactualdpi) {
+ vdpi = 0;
+ } else {
+ vdpi = (2 * ((long)vactualdpi) * fd->dpi + actualdpi)
+ / (2 * actualdpi);
+ }
+#ifdef MVSXA
+ sprintf(name, "pk%d(%s)", fd->dpi, n);
+#else
+ sprintf(name, "%s.%dpk", n, fd->dpi);
+#endif
+ makefont(n, (int)fd->dpi, DPI);
+ if (dontmakefont == 0 &&
+ (pkfile = pksearch(d, name, READBIN, n, fd->dpi, vdpi)))
+ return(1);
+#ifndef MSDOS
+#ifdef OS2
+ if (_osmode == OS2_MODE)
+ dontmakefont = 1; /* failed so don't try again under OS/2,
+ but do try for MSDOS */
+#else
+#ifndef ATARIST
+ dontmakefont = 1;
+#endif
+#endif
+#endif
+ }
+/*
+ * If nothing above worked, then we get desparate. We attempt to
+ * open the stupid font at one of a small set of predefined sizes,
+ * and then use PostScript scaling to generate the correct size.
+ *
+ * We much prefer scaling up to scaling down, since scaling down
+ * can omit character features, so we try the larger sizes first,
+ * and then work down.
+ */
+ {
+ int i, j;
+
+ if (lastresortsizes[0] && fd->dpi < 30000) {
+ for (i=0; lastresortsizes[i] < fd->dpi; i++);
+ for (j = i-1; j >= 0; j--) {
+ if (actualdpi == vactualdpi) {
+ vdpi = 0;
+ } else {
+ vdpi = (2 * ((long)vactualdpi) * lastresortsizes[j] + actualdpi)
+ / (2 * actualdpi);
+ }
+#ifdef MVSXA
+ sprintf(name, "pk%d(%s)", lastresortsizes[j], n);
+#else
+ sprintf(name, "%s.%dpk", n, lastresortsizes[j]);
+#endif
+#ifdef FONTLIB
+ if (0 != (pkfile=flisearch(n,(halfword)lastresortsizes[j]))
+ || 0 != (pkfile=pksearch(d, name, READBIN, n,
+ (halfword)lastresortsizes[j], vdpi))) {
+#else
+ if (0 != (pkfile=pksearch(d, name, READBIN, n,
+ (halfword)lastresortsizes[j], vdpi))) {
+#endif
+ fd->loadeddpi = lastresortsizes[j];
+ fd->alreadyscaled = 0;
+ sprintf(errbuf,
+ "Font %s at %d dpi not found; scaling %d instead.",
+ n, fd->dpi, lastresortsizes[j]);
+ error(errbuf);
+ lectureuser();
+ return 1;
+ }
+ }
+ for (j = i; lastresortsizes[j] < 30000; j++) {
+ if (actualdpi == vactualdpi) {
+ vdpi = 0;
+ } else {
+ vdpi = (2 * ((long)vactualdpi) * lastresortsizes[j] + actualdpi)
+ / (2 * actualdpi);
+ }
+ sprintf(name, "%s.%dpk", n, lastresortsizes[j]);
+#ifdef FONTLIB
+ if (0 != (pkfile=flisearch(n, (halfword)lastresortsizes[j]))
+ || 0 != (pkfile=pksearch(d, name, READBIN, n,
+ (halfword)lastresortsizes[j], vdpi))) {
+#else
+ if (0 != (pkfile=pksearch(d, name, READBIN, n,
+ (halfword)lastresortsizes[j], vdpi))) {
+#endif
+ fd->loadeddpi = lastresortsizes[j];
+ fd->alreadyscaled = 0;
+ sprintf(errbuf,
+ "Font %s at %d dpi not found; scaling %d instead.",
+ name, fd->dpi, lastresortsizes[j]);
+ error(errbuf);
+ lectureuser();
+ return 1;
+ }
+ }
+ }
+ }
+#ifdef MVSXA
+ sprintf(name, "%s.pk%d", n, fd->dpi);
+#else
+ sprintf(name, "%s.%dpk", n, fd->dpi);
+#endif
+ sprintf(errbuf,
+ "Font %s%s not found, characters will be left blank.",
+ fd->area, name);
+ error(errbuf);
+ return(0);
+#endif /* KPATHSEA */
+}
+
+/*
+ * Now our loadfont routine. We return an integer indicating the
+ * highest character code in the font, so we know how much space
+ * to reserve for the character. (It's returned in the font
+ * structure, along with everything else.)
+ */
+void
+loadfont(register fontdesctype *curfnt)
+{
+ register integer i;
+ register shalfword cmd;
+ register integer k;
+ register integer length = 0;
+ register shalfword cc = 0;
+ register integer scaledsize = curfnt->scaledsize;
+ register quarterword *tempr;
+ register chardesctype *cd = 0;
+ int maxcc = 0;
+ int munged = 0;
+/*
+ * We clear out some pointers:
+ */
+ if (curfnt->loaded == 3) {
+ for (i=0; i<256; i++) {
+ curfnt->chardesc[i].TFMwidth = 0;
+ curfnt->chardesc[i].packptr = NULL;
+ curfnt->chardesc[i].pixelwidth = 0;
+ curfnt->chardesc[i].flags &= EXISTS;
+ curfnt->chardesc[i].flags2 = 0;
+ }
+ } else {
+ for (i=0; i<256; i++) {
+ curfnt->chardesc[i].TFMwidth = 0;
+ curfnt->chardesc[i].packptr = NULL;
+ curfnt->chardesc[i].pixelwidth = 0;
+ curfnt->chardesc[i].flags = 0;
+ curfnt->chardesc[i].flags2 = 0;
+ }
+ }
+ curfnt->maxchars = 256; /* just in case we return before the end */
+ curfnt->llx = 0 ;
+ curfnt->lly = 0 ;
+ curfnt->urx = 0 ;
+ curfnt->ury = 0 ;
+ if (!pkopen(curfnt)) {
+ tfmload(curfnt);
+ return;
+ }
+ bitmapfontseen = 1 ;
+ curfnt->dir = 0;
+ if (!quiet) {
+ if (strlen(realnameoffile) + prettycolumn > STDOUTSIZE) {
+ fprintf(stderr, "\n");
+ prettycolumn = 0;
+ }
+ fprintf_str(stderr, "<%s>", realnameoffile);
+ prettycolumn += strlen(realnameoffile) + 2;
+ }
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf_str(stderr,"Loading pk font %s at %.1fpt\n",
+ curfnt->name, (real)scaledsize/(alpha*0x100000));
+#endif /* DEBUG */
+ if (pkbyte()!=247)
+ badpk("expected pre");
+ if (pkbyte()!=89)
+ badpk("wrong id byte");
+ for(i=pkbyte(); i>0; i--)
+ pkbyte();
+ k = (integer)(alpha * (real)pkquad());
+ if (k > curfnt->designsize + fsizetol
+ || k < curfnt->designsize - fsizetol) {
+ char *msg = concat ("Design size mismatch in font ", curfnt->name);
+ error (msg);
+ free (msg);
+ }
+ k = pkquad();
+ if (k && curfnt->checksum)
+ if (k!=curfnt->checksum) {
+ char *msg = concat ("Checksum mismatch in font ", curfnt->name);
+ error (msg);
+ free (msg);
+ }
+ k = pkquad(); /* assume that hppp is correct in the PK file */
+ k = pkquad(); /* assume that vppp is correct in the PK file */
+/*
+ * Now we get down to the serious business of reading character definitions.
+ */
+ while ((cmd=pkbyte())!=245) {
+ if (cmd < 240) {
+ switch (cmd & 7) {
+case 0: case 1: case 2: case 3:
+ length = (cmd & 7) * 256 + pkbyte() - 3;
+ cc = pkbyte();
+ cd = curfnt->chardesc+cc;
+ if (nosmallchars || curfnt->dpi != curfnt->loadeddpi)
+ cd->flags |= BIGCHAR;
+ cd->TFMwidth = scalewidth(pktrio(), scaledsize);
+ cd->pixelwidth = pkbyte();
+ break;
+case 4: case 5: case 6:
+ length = (cmd & 3) * 65536L + pkbyte() * 256L;
+ length = length + pkbyte() - 4L;
+ cc = pkbyte();
+ cd = curfnt->chardesc+cc;
+ cd->TFMwidth = scalewidth(pktrio(), scaledsize);
+ cd->flags |= BIGCHAR;
+ i = pkbyte();
+ cd->pixelwidth = i * 256 + pkbyte();
+ break;
+case 7:
+ length = pkquad() - 11;
+ cc = pkquad();
+ if (cc<0 || cc>255) badpk("character code out of range");
+ cd = curfnt->chardesc + cc;
+ cd->flags |= BIGCHAR;
+ cd->TFMwidth = scalewidth(pkquad(), scaledsize);
+ cd->pixelwidth = (pkquad() + 32768) >> 16;
+ k = pkquad();
+ }
+ if (cd->pixelwidth == 0 && cd->TFMwidth != 0) {
+ if (cd->TFMwidth > 0)
+ k = (integer)(cd->TFMwidth * conv + 0.5);
+ else
+ k = -(integer)(-cd->TFMwidth * conv + 0.5);
+ if (k != 0) {
+ cd->pixelwidth = k;
+ munged++;
+ }
+ }
+ if (length <= 0)
+ badpk("packet length too small");
+ if (dopprescan && ((cd->flags & EXISTS) == 0)) {
+ for (length--; length>0; length--)
+ pkbyte();
+ } else {
+ if (cc > maxcc)
+ maxcc = cc;
+ if (bytesleft < length || (length > MINCHUNK && compressed)) {
+#ifdef DEBUG
+ if (dd(D_MEM))
+ fprintf(stderr,
+#ifdef SHORTINT
+ "Allocating new raster memory (%ld req, %ld left)\n",
+ length, bytesleft);
+#else
+ "Allocating new raster memory (%d req, %d left)\n",
+ (int)length, (int)bytesleft);
+#endif
+#endif /* DEBUG */
+ if (length > MINCHUNK) {
+ tempr = (quarterword *)mymalloc((integer)length);
+ } else {
+ raster = (quarterword *)mymalloc((integer)RASTERCHUNK);
+ tempr = raster;
+ bytesleft = RASTERCHUNK - length;
+ raster += length;
+ }
+ } else {
+ tempr = raster;
+ bytesleft -= length;
+ raster += length;
+ }
+ cd->packptr = tempr;
+ *tempr++ = cmd;
+ for (length--; length>0; length--)
+ *tempr++ = pkbyte();
+ {
+ // update the global font bounding box
+ // this is only used to set font sizes for type 3 bitmap
+ // encoding.
+ integer cwidth, cheight, xoff, yoff ;
+ unpack_bb(cd, &cwidth, &cheight, &xoff, &yoff) ;
+ if (-xoff < curfnt->llx)
+ curfnt->llx = -xoff ;
+ if (cwidth - xoff > curfnt->urx)
+ curfnt->urx = cwidth - xoff ;
+ if (yoff - cheight < curfnt->lly)
+ curfnt->lly = yoff - cheight ;
+ if (yoff > curfnt->ury)
+ curfnt->ury = yoff ;
+ }
+ }
+ cd->flags2 |= EXISTS;
+ } else {
+ k = 0;
+ switch (cmd) {
+case 243:
+ k = pkbyte();
+ if (k > 127)
+ k -= 256;
+case 242:
+ k = k * 256 + pkbyte();
+case 241:
+ k = k * 256 + pkbyte();
+case 240:
+ k = k * 256 + pkbyte();
+ while (k-- > 0)
+ i = pkbyte();
+ break;
+case 244:
+ k = pkquad();
+ break;
+case 246:
+ break;
+default:
+ badpk("! unexpected command");
+ }
+ }
+ }
+#ifdef FONTLIB
+ if (flib)
+ flib = 0;
+ else
+#endif
+ fclose(pkfile);
+ curfnt->loaded = 1;
+ curfnt->maxchars = maxcc + 1;
+ if (munged > 0) {
+ static int seen = 0;
+ sprintf(errbuf,
+ "Font %s at %d dpi has most likely been made improperly;",
+ curfnt->name, curfnt->dpi);
+ error(errbuf);
+ if (seen)
+ return;
+ seen = 1;
+ sprintf(errbuf,
+ "%d characters have 0 escapements but non-trivial TFM widths.", munged);
+ error(errbuf);
+ error(
+ "I'm stumbling along as best I can, but I recommend regenerating");
+ error(
+ "these fonts; the problem is probably that they are non-CM fonts");
+ error(
+ "(such as circle10 or line10) created with a MF with the CM base");
+ error("preloaded .");
+ }
+}
diff --git a/Build/source/texk/dvipsk/makefont.c b/Build/source/texk/dvipsk/makefont.c
new file mode 100644
index 00000000000..ef303888a57
--- /dev/null
+++ b/Build/source/texk/dvipsk/makefont.c
@@ -0,0 +1,300 @@
+/* makefont.c */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#include <math.h>
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+#ifdef OS2
+#include <stdlib.h>
+#endif
+#if !defined(WIN32)
+extern char *getenv();
+extern int system();
+#endif
+#if defined MSDOS || defined OS2
+/*
+ * Write mfjob file
+ */
+void
+mfjobout(char *font, double mag)
+{
+ if (mfjobfile == (FILE *)NULL) {
+ char pkout[128];
+ char *p;
+ int i;
+ for (p=pkpath, i=0; *p && *p!=PATHSEP && i<127; p++) {
+ if (*p=='%') {
+ p++;
+ switch(*p) { /* convert %x codes to mfjob @y codes */
+ case 'b':
+ sprintf(pkout+i,"%d",actualdpi);
+ break;
+ case 'd':
+ strcpy(pkout+i,"@Rr");
+ break;
+ case 'f':
+ strcpy(pkout+i,"@f");
+ break;
+ case 'p':
+ strcpy(pkout+i,"pk");
+ break;
+ case 'm':
+ strcpy(pkout+i, mfmode ? mfmode : "default");
+ break;
+ case '%':
+ strcpy(pkout+i,"%");
+ break;
+ default:
+ sprintf(pkout+i, "%%%c", *p);
+ fprintf(stderr,"Unknown option %%%c in pk path\n",*p);
+ }
+ i += strlen(pkout+i);
+ }
+ else
+ pkout[i++] = *p;
+ }
+ /* *p='\0'; Could some DOS person explain to me what this does? */
+ pkout[i] = 0;
+ mfjobfile = fopen(mfjobname,"w");
+ if (mfjobfile == (FILE *)NULL)
+ return;
+ fprintf(mfjobfile,"input[dvidrv];\n{\ndriver=dvips;\n");
+ if (actualdpi == vactualdpi)
+ fprintf(mfjobfile,"mode=%s[%d];\n",mfmode,actualdpi);
+ else
+ fprintf(mfjobfile,"mode=%s[%d %d];\n",mfmode,actualdpi,vactualdpi);
+ fprintf(mfjobfile,"output=pk[%s];\n",pkout);
+ }
+ fprintf(mfjobfile,"{font=%s; mag=%f;}\n",font,mag);
+ fprintf(stderr,
+ "Appending {font=%s; mag=%f;} to %s\n",font,mag,mfjobname);
+}
+#endif
+/*
+ * Calculate magstep values.
+ */
+static int
+magstep(register int n, register int bdpi)
+{
+ register float t;
+ int neg = 0;
+
+ if (n < 0) {
+ neg = 1;
+ n = -n;
+ }
+ if (n & 1) {
+ n &= ~1;
+ t = 1.095445115;
+ } else
+ t = 1.0;
+ while (n > 8) {
+ n -= 8;
+ t = t * 2.0736;
+ }
+ while (n > 0) {
+ n -= 2;
+ t = t * 1.2;
+ }
+ if (neg)
+ return((int)floor(0.5 + bdpi / t));
+ else
+ return((int)floor(0.5 + bdpi * t));
+}
+#ifdef MAKEPKCMD
+static char *defcommand = MAKEPKCMD " %n %d %b %m";
+#else
+#ifdef OS2
+static char *doscommand = "command /c MakeTeXP %n %d %b %m";
+static char *os2command = "MakeTeXP %n %d %b %m";
+#define defcommand ( _osmode==OS2_MODE ? os2command : doscommand )
+#else
+#ifdef MSDOS
+static char *defcommand = "command /c MakeTeXP %n %d %b %m";
+#else
+#ifdef VMCMS
+static char *defcommand = "EXEC MakeTeXPK %n %d %b %m";
+#else
+#ifdef ATARIST
+static char *defcommand = "maketexp %n %d %b %m";
+#else
+static char *defcommand = "MakeTeXPK %n %d %b %m";
+#endif
+#endif
+#endif
+#endif
+#endif
+char *command = 0;
+/*
+ * This routine tries to create a font by executing a command, and
+ * then opening the font again if possible.
+ */
+static char buf[125];
+void
+makefont(char *name, int dpi, int bdpi)
+{
+ register char *p, *q;
+ register int m, n;
+ int modegiven = 0;
+#if defined MSDOS || defined OS2 || defined(ATARIST)
+ double t;
+#endif
+
+ if (command == 0)
+ if (secure == 0 && (command=getenv("MAKETEXPK")))
+ command = newstring(command);
+ else
+ command = defcommand;
+ for (p=command, q=buf; *p; p++)
+ if (*p != '%')
+ *q++ = *p;
+ else {
+ switch (*++p) {
+case 'n' : case 'N' :
+ strcpy(q, name);
+ break;
+case 'd' : case 'D' :
+ sprintf(q, "%d", dpi);
+ break;
+case 'b' : case 'B' :
+ sprintf(q, "%d", bdpi);
+ break;
+case 'o' : case 'O' :
+ sprintf(q, "%.99s", mfmode ? mfmode : "default");
+ modegiven = 1;
+ break;
+case 'm' : case 'M' :
+/*
+ * Here we want to return a string. If we can find some integer
+ * m such that floor(0.5 + bdpi * 1.2 ^ (m/2)) = dpi, we write out
+ * magstep(m/2)
+ * where m/2 is a decimal number; else we write out
+ * dpi/bdpi
+ * We do this for the very slight improvement in accuracy that
+ * magstep() gives us over the rounded dpi/bdpi.
+ */
+ m = 0;
+ if (dpi < bdpi) {
+ while (1) {
+ m--;
+ n = magstep(m, bdpi);
+ if (n == dpi)
+ break;
+ if (n < dpi || m < -40) {
+ m = 9999;
+ break;
+ }
+ }
+ } else if (dpi > bdpi) {
+ while (1) {
+ m++;
+ n = magstep(m, bdpi);
+ if (n == dpi)
+ break;
+ if (n > dpi || m > 40) {
+ m = 9999;
+ break;
+ }
+ }
+ }
+#if defined MSDOS || defined OS2
+/* write out magnification as decimal number */
+ if (m == 9999) {
+ t = (double)dpi/bdpi;
+ } else {
+ if (m < 0)
+ n = -m;
+ else
+ n = m;
+ if (n & 1) {
+ n &= ~1;
+ t = 1.095445115;
+ } else
+ t = 1.0;
+ while (n > 0) {
+ n -= 2;
+ t = t * 1.2;
+ }
+ if (m < 0)
+ t = 1 / t;
+ }
+ sprintf(q, "%12.9f", t);
+#else
+#ifndef ATARIST
+ if (m == 9999) {
+#else
+ {
+#endif
+ sprintf(q, "%d+%d/%d", dpi/bdpi, dpi%bdpi, bdpi);
+ } else if (m >= 0) {
+ sprintf(q, "magstep\\(%d.%d\\)", m/2, (m&1)*5);
+ } else {
+ sprintf(q, "magstep\\(-%d.%d\\)", (-m)/2, (m&1)*5);
+ }
+#endif
+ break;
+case 0 : *q = 0;
+ break;
+default: *q++ = *p;
+ *q = 0;
+ break;
+ }
+ q += strlen(q);
+ }
+ *q = 0;
+ if (mfmode && !modegiven) {
+ strcpy(q, " ");
+ strcat(q, mfmode);
+ }
+#ifdef OS2
+ if ((_osmode == OS2_MODE) && filter)
+ strcat(buf, quiet ? " >nul" : " 1>&2");
+#else
+#ifndef VMCMS /* no filters and no need to print to stderr */
+#ifndef MVSXA
+#ifndef MSDOS
+#ifndef ATARIST
+ if (filter)
+ strcat(buf, quiet ? " >/dev/null" : " 1>&2");
+#endif
+#endif
+#endif
+#endif
+#endif
+
+#if defined MSDOS || defined OS2
+ if (! quiet && mfjobname == (char *)NULL)
+ fprintf(stderr, "- %s\n", buf);
+ if (dontmakefont == 0) {
+ if (mfjobname != (char *)NULL)
+ mfjobout(name,t);
+ else
+ system(buf);
+ }
+#else
+ if (! quiet)
+ fprintf(stderr, "- %s\n", buf);
+ if (dontmakefont == 0)
+ system(buf);
+#endif
+ else {
+ static FILE *fontlog = 0;
+
+ if (fontlog == 0) {
+ fontlog = fopen("missfont.log", "a");
+ if (fontlog != 0) {
+ fprintf(stderr,
+#ifndef VMCMS
+ "Appending font creation commands to missfont.log\n");
+#else
+ "\nMissing font data will be passed to DVIPS EXEC via MISSFONT LOG\n");
+#endif
+ }
+ }
+ if (fontlog != 0) {
+ fprintf(fontlog, "%s\n", buf);
+ fflush(fontlog);
+ }
+ }
+}
diff --git a/Build/source/texk/dvipsk/mvs/dvipsmvs.h b/Build/source/texk/dvipsk/mvs/dvipsmvs.h
new file mode 100644
index 00000000000..b9cc7a45b8e
--- /dev/null
+++ b/Build/source/texk/dvipsk/mvs/dvipsmvs.h
@@ -0,0 +1,97 @@
+/*
+ * These are changes needed for the MVS/XA version of dvips 5.497
+ * November20, 1992.
+ * This was derived by Peter K. Schilling - DESY - from "dvipscms.h"
+ * written by J. Hafner, E. Blanz and M. Flickner of IBM Research,
+ * Almaden Research Center.
+ * The changes to the rest of the code can be found by searching for
+ * "MVSXA".
+ */
+extern char *malloc();
+/*
+ * Added ascii to ebcdic conversion table for MVSXA.
+ * Only for the printable characters. This is used by DVIPS.
+*/
+char ascii2ebcdic[256] = {
+ 0, 1, 2, 3, 53, 45, 46, 47,
+ 22, 5, 37, 11, 12, 64, 14, 15,
+ 16, 17, 18, 19, 60, 61, 50, 38,
+ 24, 25, 63, 39,111,111,111,111,
+ 64, 90,127,123, 91,108, 80,125,
+ 77, 93, 92, 78,107, 96, 75, 97,
+ 240,241,242,243,244,245,246,247,
+ 248,249,122, 94, 76,126,110,111,
+ 124,193,194,195,196,197,198,199,
+ 200,201,209,210,211,212,213,214,
+ 215,216,217,226,227,228,229,230,
+ 231,232,233,173,224,189, 95,109,
+ 121,129,130,131,132,133,134,135,
+ 136,137,145,146,147,148,149,150,
+ 151,152,153,162,163,164,165,166,
+ 167,168,169,192, 79,208,161, 7,
+ 128,129,130,131,132,133,134,135,
+ 136,137,138,139,140,141,142,143,
+ 144,145,146,147,148,149,150,151,
+ 152,153,154,155,156,157,158,159,
+ 160,161,162,163,164,165,166,167,
+ 168,169,170,171,172,173,174,175,
+ 176,177,178,179,180,181,182,183,
+ 184,185,186,187,188,189,190,191,
+ 192,193,194,195,196,197,198,199,
+ 200,201,202,203,204,205,206,207,
+ 208,209,210,211,212,213,214,215,
+ 216,217,218,219,220,221,222,223,
+ 224,225,226,227,228,229,230,231,
+ 232,233,234,235,236,237,238,239,
+ 240,241,242,243,244,245,246,247,
+ 248,249,250,251,252,253,254,255
+};
+/*
+ * Added ebcdic to ascii conversion table for MVSXA.
+ * Only for the printable characters. This inverts the
+ * table above and is used by AFM2TFM.
+*/
+char ebcdic2ascii[256] = {
+ 0, 1, 2, 3, 4, 9, 6,127,
+ 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 8, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 10, 23, 27,
+ 40, 41, 42, 43, 44, 5, 6, 7,
+ 48, 49, 22, 51, 52, 4, 54, 55,
+ 56, 57, 58, 59, 20, 21, 62, 26,
+ 32, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 46, 60, 40, 43,124,
+ 38, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 33, 36, 42, 41, 59, 94,
+ 45, 47, 98, 99,100,101,102,103,
+ 104,105,124, 44, 37, 95, 62, 63,
+ 112,113,114,115,116,117,118,119,
+ 120, 96, 58, 35, 64, 39, 61, 34,
+ 128, 97, 98, 99,100,101,102,103,
+ 104,105,138,123,140,141,142,143,
+ 144,106,107,108,109,110,111,112,
+ 113,114,154,125,156,157,158,159,
+ 160,161,115,116,117,118,119,120,
+ 121,122,170,171,172, 91,174,175,
+ 176,177,178,179,180,181,182,183,
+ 184,185,186,187,188, 93,190,191,
+ 192, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73,202,203,204,205,206,207,
+ 208, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82,218,219,220,221,222,223,
+ 92,225, 83, 84, 85, 86, 87, 88,
+ 89, 90,234,235,236,237,238,239,
+ 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57,250,251,252,253,254,255
+ };
+
+/*
+ * access.c for MVSXA
+ */
+int access (path, amode)
+char *path;
+int amode;
+{
+ return(1);
+}
diff --git a/Build/source/texk/dvipsk/output.c b/Build/source/texk/dvipsk/output.c
new file mode 100644
index 00000000000..da3b6098262
--- /dev/null
+++ b/Build/source/texk/dvipsk/output.c
@@ -0,0 +1,1897 @@
+/*
+ * These routines do most of the communicating with the printer.
+ *
+ * LINELENGTH tells the maximum line length to send out. It's been
+ * reduced to 72 because sometimes PostScript files are included in
+ * mail messages and many mailers mutilate longer lines.
+ */
+#define LINELENGTH (72)
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#include <ctype.h>
+#include <stdlib.h>
+
+#ifdef OS2
+#ifdef _MSC_VER
+#define popen(pcmd, pmode) _popen(pcmd, pmode)
+#define pclose(pstream) _pclose(pstream)
+#endif
+#endif
+#if defined(WIN32) && defined(KPATHSEA)
+#undef fopen
+#undef popen
+#undef pclose
+extern FILE *generic_fsyscp_fopen(const char *name, const char *mode);
+#define fopen(file, fmode) generic_fsyscp_fopen(file, fmode)
+#define popen(pcmd, pmode) fsyscp_popen(pcmd, pmode)
+#define pclose(pstream) _pclose(pstream)
+#endif
+
+#ifdef __DJGPP__
+#include <unistd.h> /* for `isatty' */
+#endif
+
+/* UCS -> UTF-8 */
+#define UCStoUTF8B1(x) (0xc0 + (((x) >> 6) & 0x1f))
+#define UCStoUTF8B2(x) (0x80 + (((x) ) & 0x3f))
+
+#define UCStoUTF8C1(x) (0xe0 + (((x) >> 12) & 0x0f))
+#define UCStoUTF8C2(x) (0x80 + (((x) >> 6) & 0x3f))
+#define UCStoUTF8C3(x) (0x80 + (((x) ) & 0x3f))
+
+#define UCStoUTF8D1(x) (0xf0 + (((x) >> 18) & 0x07))
+#define UCStoUTF8D2(x) (0x80 + (((x) >> 12) & 0x3f))
+#define UCStoUTF8D3(x) (0x80 + (((x) >> 6) & 0x3f))
+#define UCStoUTF8D4(x) (0x80 + (((x) ) & 0x3f))
+
+/* UTF-32 over U+FFFF -> UTF-16 surrogate pair */
+#define UTF32toUTF16HS(x) (0xd800 + (((x-0x10000) >> 10) & 0x3ff))
+#define UTF32toUTF16LS(x) (0xdc00 + ( x & 0x3ff))
+
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+char preamblecomment[256]; /* usually "TeX output ..." */
+integer rdir = 0, fdir = 0;
+/*
+ * We need a few statics to take care of things.
+ */
+static void chrcmd(char c);
+static void tell_needed_fonts(void);
+static void print_composefont(void);
+static void setdir(int d);
+static int JIStoSJIS(int c);
+
+static Boolean any_dir = 0; /* did we output any direction commands? */
+static Boolean jflag = 0;
+static integer rhh, rvv;
+static int instring;
+static Boolean lastspecial = 1;
+static shalfword d;
+static Boolean popened = 0;
+static int lastfont;
+static char strbuffer[LINELENGTH + 20], *strbp = strbuffer;
+static struct papsiz *finpapsiz;
+static struct papsiz defpapsiz = {
+ 0, 40258437L, 52099154L, "letter", ""
+};
+#ifdef CREATIONDATE
+#if (!defined(VMS) && !defined(MSDOS) && !(defined(OS2) && defined(_MSC_VER)) && !defined(ATARIST))
+ /* VAXC/MSDOS don't like/need this !! */
+#include <sys/types.h>
+#ifndef WIN32
+#include <sys/time.h> /* time(), at least on BSD Unix */
+#endif
+#endif
+#include <time.h> /* asctime() and localtime(), at least on BSD Unix */
+static time_t jobtime;
+
+#if defined(_MSC_VER)
+#define strtoll _strtoi64
+#endif
+
+#define INVALID_EPOCH_VALUE ((time_t) -1)
+
+static time_t
+get_unique_time_if_given(void)
+{
+ const char *source_date_epoch;
+ int64_t epoch;
+ char *endptr;
+ time_t ret = INVALID_EPOCH_VALUE;
+
+ source_date_epoch = getenv("SOURCE_DATE_EPOCH");
+ if (source_date_epoch) {
+ errno = 0;
+ epoch = strtoll(source_date_epoch, &endptr, 10);
+ if (!(epoch < 0 || *endptr != '\0' || errno != 0)) {
+ ret = (time_t) epoch;
+#if defined(_MSC_VER)
+ if (ret > 32535291599ULL)
+ ret = 32535291599ULL;
+#endif
+ }
+ }
+ return ret;
+}
+#endif /* CREATIONDATE */
+
+/*
+ * This routine copies a file down the pipe. Search path uses the
+ * header path.
+ *
+ * We add code to handle the case of MS-DOS font files.
+ *
+ * Format: 80 {01,02} four byte length in littleendian order data
+ * repeated possibly multiple times.
+ */
+static const char *hxdata = "0123456789ABCDEF";
+static int infigure;
+static char possibleDSCLine[81],
+ *dscLinePointer = possibleDSCLine, *dscLineEnd = possibleDSCLine + 80;
+void
+copyfile_general(const char *s, struct header_list *cur_header)
+{
+ FILE *f = NULL;
+ int c, prevc = '\n';
+ long len;
+ /* begin DOS EPS code */
+ int doseps = 0;
+ unsigned long dosepsbegin, dosepsend = 0;
+ int removingBytes = 0;
+ const char *scanForEnd = 0;
+ int scanningFont = 0;
+
+ /* end DOS EPS code */
+#if defined(VMCMS) || defined (MVSXA)
+ register char *lastdirsep;
+ register char *trunc_s;
+ trunc_s = s;
+#endif
+ dscLinePointer = possibleDSCLine;
+
+ switch (infigure) {
+ case 1:
+/*
+ * Look in headerpath too, just in case. This allows common header
+ * or figure files to be installed in the .../ps directory.
+ */
+ f = search(figpath, s, READBIN);
+#if defined(WIN32)
+ if (f == 0 && file_system_codepage != win32_codepage) {
+ int tmpcp = file_system_codepage;
+ file_system_codepage = win32_codepage;
+ f = search(figpath, s, READBIN);
+ file_system_codepage = tmpcp;
+ }
+#endif
+ if (f == 0)
+ f = search(headerpath, s, READBIN);
+#if defined(VMCMS) || defined (MVSXA)
+ lastdirsep = strrchr(s, '/');
+ if ( NULL != lastdirsep ) trunc_s = lastdirsep + 1;
+#ifdef VMCMS
+ sprintf(errbuf,
+ "Couldn't find figure file %s with CMS name %s; continuing.", s, trunc_s);
+ if (secure == 2) {
+ strcat(errbuf, "\nNote that an absolute path or a relative path with .. are denied in -R2 mode.");
+ }
+#else /* ! VMCMS */
+ sprintf(errbuf,
+ "Couldn't find figure file %s with MVS name %s; continuing.", s, trunc_s);
+ if (secure == 2) {
+ strcat(errbuf, "\nNote that an absolute path or a relative path with .. are denied in -R2 mode.");
+ }
+#endif /* ! VMCMS */
+#else /* ! (VMCMS || MVSXA) */
+ sprintf(errbuf, "Could not find figure file %.500s; continuing.", s);
+ if (secure == 2) {
+ strcat(errbuf, "\nNote that an absolute path or a relative path with .. are denied in -R2 mode.");
+ }
+#endif /* !(VMCMS || MVSXA) */
+ break;
+#ifndef VMCMS
+#ifndef MVSXA
+#ifndef VMS
+#if !defined(MSDOS) || defined(__DJGPP__)
+#ifndef ATARIST
+#ifndef __THINK__
+ case 2:
+#ifdef SECURE
+ sprintf(errbuf, "<%.500s>: Tick filename execution disabled", s);
+#else
+#ifdef OS2
+ if (_osmode == OS2_MODE) {
+#endif
+ if (secure == 0) {
+ sprintf(errbuf, "Execution of <%.500s> failed ", s);
+ f = popen(s, "r");
+ if (f != 0)
+ SET_BINARY(fileno(f));
+ }
+ else {
+ sprintf(errbuf,"Secure mode is %d so execute <%.500s> will not run",
+ secure, s);
+ }
+#ifdef OS2
+ }
+#endif
+#endif
+ break;
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+ default:
+ f = search(headerpath, s, READBIN);
+ if(cur_header && (cur_header->precode || cur_header->postcode)) {
+ if(f==NULL)
+ f = search(figpath, s, READBIN);
+ }
+ sprintf(errbuf, "! Could not find header file %.500s.", s);
+ if (secure == 2) {
+ strcat(errbuf, "\nNote that an absolute path or a relative path with .. are denied in -R2 mode.");
+ }
+ break;
+ }
+ if (f==NULL) {
+ found_problems = 1; /* continue, but eventually exit unsuccessfully */
+ error(errbuf);
+ } else {
+ if (! quiet) {
+#if defined(VMCMS) || defined (MVSXA)
+ if (strlen(s) + prettycolumn > STDOUTSIZE) {
+#else
+ if (strlen(realnameoffile) + prettycolumn > STDOUTSIZE) {
+#endif
+ fprintf(stderr, "\n");
+ prettycolumn = 0;
+ }
+#if defined(VMCMS) || defined (MVSXA)
+ fprintf(stderr, "<%s>", trunc_s);
+#else
+ fprintf_str(stderr, "<%s>", realnameoffile);
+#endif
+ fflush(stderr);
+#if defined(VMCMS) || defined (MVSXA)
+ prettycolumn += 2 + strlen(s);
+#else
+ prettycolumn += 2 + strlen(realnameoffile);
+#endif
+ }
+ if (linepos != 0)
+ putc('\n', bitfile);
+/*
+ * Suggested by Andrew Trevorrow; don't ever BeginFont a file ending in .enc
+ */
+ if (infont && strstr(s,".enc"))
+ infont = 0;
+ if (! disablecomments) {
+ if (infigure)
+ fprintf(bitfile, "%%%%BeginDocument: %s\n", s);
+ else if (infont)
+ fprintf(bitfile, "%%%%BeginFont: %s\n", infont);
+#ifdef HPS
+ else if (noprocset) {}
+#endif
+ else
+ fprintf(bitfile, "%%%%BeginProcSet: %s 0 0\n", s);
+ }
+ if (cur_header && cur_header->precode) {
+ fprintf(bitfile, "%s\n", cur_header->precode);
+ free(cur_header->precode);
+ }
+ c = getc(f);
+ if (c == 0x80) {
+ while (1) {
+ c = getc(f);
+ switch(c) {
+case 1:
+case 2:
+ len = getc(f);
+ len += getc(f) * 256L;
+ len += getc(f) * 65536L;
+ len += getc(f) * 256L * 65536;
+ if (c == 1) {
+ while (len > 0) {
+ c = getc(f);
+ if (c == EOF) {
+ error("premature EOF in MS-DOS font file");
+ len = 0;
+ } else {
+ if (c == '\r') { /* Mac- or DOS-style text file */
+ putc('\n', bitfile);
+ if ((c = getc(f)) == '\n') /* DOS-style text */
+ len--; /* consume, but don't generate NL */
+ else
+ ungetc(c, f);
+ }
+ else
+ putc(c, bitfile);
+ len--;
+ }
+ }
+ } else {
+ putc('\n', bitfile);
+ prevc = 0;
+ while (len > 0) {
+ c = getc(f);
+ if (c == EOF) {
+ error("premature EOF in MS-DOS font file");
+ len = 0;
+ } else {
+ putc(hxdata[c >> 4], bitfile);
+ putc(hxdata[c & 15], bitfile);
+ len--;
+ prevc += 2;
+ if (prevc >= 76) {
+ putc('\n', bitfile);
+ prevc = 0;
+ }
+ }
+ }
+ }
+ break;
+case 3:
+ goto msdosdone;
+default:
+ error("saw type other than 1, 2, or 3 in MS-DOS font file");
+ break;
+ }
+ c = getc(f);
+ if (c == EOF)
+ break;
+ if (c != 0x80) {
+ error("saw non-MSDOS header in MSDOS font file");
+ break;
+ }
+ }
+msdosdone:
+ prevc = 0;
+ } else {
+/* begin DOS EPS code */
+ if (c == 'E'+0x80) {
+ if ((getc(f)=='P'+0x80) && (getc(f)=='S'+0x80)
+ && (getc(f)=='F'+0x80)) {
+ doseps = 1;
+ dosepsbegin = getc(f);
+ dosepsbegin += getc(f) * 256L;
+ dosepsbegin += getc(f) * 65536L;
+ dosepsbegin += getc(f) * 256L * 65536;
+ dosepsend = getc(f);
+ dosepsend += getc(f) * 256L;
+ dosepsend += getc(f) * 65536L;
+ dosepsend += getc(f) * 256L * 65536;
+ fseek(f, dosepsbegin, 0);
+ c = getc(f);
+ dosepsend--;
+ }
+ else {
+ rewind(f);
+ c = getc(f);
+ }
+ }
+/* end DOS EPS code */
+ if (c != EOF) {
+ while (1) {
+ if (c == '\n') { /* end or beginning of line; check DSC */
+ *dscLinePointer = 0; /* make sure we terminate!
+ * might be a new empty line! */
+ if (strncmp(possibleDSCLine, "%%BeginBinary:", 14) == 0 ||
+ strncmp(possibleDSCLine, "%%BeginData:", 12) == 0 ||
+ strncmp(possibleDSCLine, "%%BeginFont:", 12) == 0) {
+ integer size = 0;
+ char *p = possibleDSCLine;
+ *dscLinePointer = 0;
+ *dscLineEnd = 0;
+ if (scanForEnd == 0 && removecomments) {
+ fputs(possibleDSCLine, bitfile);
+ putc('\n', bitfile);
+ }
+
+ if (strncmp(possibleDSCLine, "%%BeginFont:", 12) == 0) {
+
+ /* Theoretically, we could wait until we see
+ the "currentfile eexec" and possibly even
+ check that the following data really looks
+ like binary before we begin verbatim
+ copying, but that would complicate the code
+ beyond our present needs. If we were going
+ to do that much work, this entire chunk of
+ code should probably be
+ rewritten. [dmj@ams.org, 2007/08/20] */
+
+ scanForEnd = "%%EndFont";
+ scanningFont = 1;
+ } else {
+ scanningFont = 0;
+
+ scanForEnd = 0;
+ while (*p != ':')
+ p++;
+ p++;
+ while (*p && *p <= ' ')
+ p++;
+ if ('0' > *p || *p > '9') {
+ /*
+ * No byte count! We need to scan for end binary
+ * or end data, and hope we get it right. Really
+ * the file is malformed.
+ */
+ scanForEnd = "Yes";
+ }
+ while ('0' <= *p && *p <= '9') {
+ size = size * 10 + *p - '0';
+ p++;
+ }
+ while (*p && *p <= ' ')
+ p++;
+ if (*p == 'h' || *p == 'H')
+ /*
+ * Illustrator 8 and 9 have bogus byte counts
+ * for hex data. But if it is hex, we assume
+ * that it is safe to use ASCII scanning, so
+ * we do so.
+ */
+ scanForEnd = "Yes";
+ while (*p > ' ') /* ignore Hex/Binary/ASCII */
+ p++;
+ while (*p && *p <= ' ')
+ p++;
+ putc(c, bitfile);
+ if (c == '\r') { /* maybe we have a DOS-style text file */
+ c = getc(f);
+ if (c == '\n') {
+ putc(c, bitfile);
+ dosepsend--;
+ } else
+ ungetc(c, f);
+ }
+ if (scanForEnd != 0) {
+ if (strncmp(possibleDSCLine, "%%BeginBinary", 13) == 0)
+ scanForEnd = "%%EndBinary";
+ else
+ scanForEnd = "%%EndData";
+ }
+ }
+ if (scanForEnd == 0) {
+ if (strncmp(p, "lines", 5) != 0 &&
+ strncmp(p, "Lines", 5) != 0) {
+ for (; size>0; size--) {
+ c = getc(f);
+ dosepsend--;
+ if (c == EOF)
+ error(
+ "! premature end of file in binary section");
+ putc(c, bitfile);
+ }
+ } else {
+ /*
+ * Count both newlines and returns, and when either
+ * goes over the count, we are done.
+ */
+ int newlines=0, returns=0;
+ while (newlines < size && returns < size) {
+ c = getc(f);
+ dosepsend--;
+ if (c == EOF)
+ error(
+ "! premature end of file in binary section");
+ putc(c, bitfile);
+ if (c == '\n')
+ newlines++;
+ else if (c == '\r')
+ returns++;
+ }
+ /*
+ * If we've seen precisely one too few newlines,
+ * and the next char is a newline, include it too.
+ */
+ if (returns == newlines + 1) {
+ if ((c = getc(f)) == '\n') {
+ putc(c, bitfile);
+ dosepsend--;
+ } else {
+ ungetc(c, f);
+ }
+ }
+ }
+ c = getc(f);
+ dosepsend--;
+ if (c == '\n' || c == '\r') {
+ putc(c, bitfile);
+ if (c == '\r') { /* DOS-style text file? */
+ c = getc(f);
+ dosepsend--;
+ if (c == '\n') {
+ putc(c, bitfile);
+ c = getc(f);
+ dosepsend--;
+ }
+ } else {
+ c = getc(f);
+ dosepsend--;
+ }
+ }
+ if (c != '%') {
+ /* try to find %%EndBinary or %%EndData anywhere
+ in the rest of the file, and pretend it
+ worked; this works around various Illustrator
+ bugs. -tgr, 14 June 2003 */
+ const char *m1 = "%%EndData";
+ const char *m2 = "%%EndBinary";
+ const char *p1 = m1;
+ const char *p2 = m2;
+ error(
+ " expected to see %%EndBinary at end of data; struggling on");
+ while (1) {
+ putc(c, bitfile);
+ if (c == '\r' || c == '\n') {
+ if (c == '\r') { /* DOS-style text file? */
+ c = getc(f);
+ if (c != '\n')
+ ungetc(c, f);
+ else
+ dosepsend--;
+ }
+ break;
+ }
+ c = getc(f);
+ dosepsend--;
+ if (c == EOF)
+ error(
+ "! premature end of file in binary section");
+ /*
+ * By the way, this code can be fooled by things like %%%EndBinary
+ * or even %%EndBi%%EndBinary, but this isn't valid DSC anyway.
+ * This comment is mainly here to prevent anyone else from emulating
+ * this code when doing stream-based substring matching.
+ */
+ if (c == *p1) {
+ p1++;
+ if (*p1 == 0)
+ break;
+ } else {
+ p1 = m1;
+ }
+ if (c == *p2) {
+ p2++;
+ if (*p2 == 0)
+ break;
+ } else {
+ p2 = m2;
+ }
+ }
+ }
+ while (1) {
+ putc(c, bitfile);
+ if (c == '\r' || c == '\n') {
+ if (c == '\r') { /* DOS-style text file? */
+ c = getc(f);
+ if (c != '\n')
+ ungetc(c, f);
+ else {
+ putc(c, bitfile);
+ dosepsend--;
+ }
+ }
+ break;
+ }
+ c = getc(f);
+ removingBytes = 0;
+ dosepsend--;
+ if (c == EOF)
+ error(
+ "! premature end of file in binary section");
+ }
+ c = getc(f);
+ dosepsend--;
+ }
+ } else if (scanForEnd && strncmp(possibleDSCLine, scanForEnd,
+ strlen(scanForEnd))==0) {
+ scanForEnd = 0;
+ scanningFont = 0;
+ }
+ dscLinePointer = possibleDSCLine;
+ } else if (dscLinePointer < dscLineEnd) {
+ *dscLinePointer++ = c;
+ if (removecomments && scanForEnd == 0 &&
+ c == '%' && dscLinePointer == possibleDSCLine + 1) {
+ /* % is first char */
+ c = getc(f);
+ if (c == '%' || c == '!')
+ removingBytes = 1;
+ if (c != EOF)
+ ungetc(c, f);
+ c = '%';
+ }
+ }
+#if defined(VMCMS) || defined (MVSXA)
+ if (c != 0x37 || scanningFont) {
+#else
+ if (c != 4 || scanningFont) {
+#endif
+ if (!removingBytes)
+ putc(c, bitfile);
+ }
+ prevc = c;
+/* begin DOS EPS code */
+ if (doseps && (dosepsend <= 0))
+ break; /* stop at end of DOS EPS PostScript section */
+/* end DOS EPS code */
+ c = getc(f);
+ dosepsend--;
+ if (c == EOF)
+ break;
+ else if (c == '\r' && ! scanningFont) {
+ c = getc(f);
+ if (c == '\n') { /* DOS-style text file? */
+ if (!removingBytes) putc('\r', bitfile);
+ dosepsend--;
+ } else
+ ungetc(c, f);
+ c = '\n';
+ }
+ if (prevc == '\n')
+ removingBytes = 0;
+ }
+ }
+ }
+ if (prevc != '\n')
+ putc('\n', bitfile);
+ linepos = 0;
+#ifndef VMCMS
+#ifndef MVSXA
+#ifndef VMS
+#if !defined(MSDOS) || defined(__DJGPP__)
+#ifndef ATARIST
+#ifndef __THINK__
+ if (infigure == 2)
+#ifdef OS2
+ {
+ if (_osmode == OS2_MODE)
+ pclose(f);
+ }
+#else
+ pclose(f);
+#endif
+ else
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+ fclose(f);
+ if (cur_header && cur_header->postcode) {
+ fprintf(bitfile, "\n%s", cur_header->postcode);
+ free(cur_header->postcode);
+ }
+ if (!disablecomments) {
+ if (infigure)
+ fprintf(bitfile, "\n%%%%EndDocument\n");
+ else if (infont)
+ fprintf(bitfile, "\n%%%%EndFont\n");
+#ifdef HPS
+ else if (noprocset) {}
+#endif
+ else
+ fprintf(bitfile, "\n%%%%EndProcSet\n");
+ }
+ }
+}
+
+void
+copyfile(const char *s)
+{
+ copyfile_general(s, NULL);
+}
+
+/*
+ * For included PostScript graphics, we use the above routine, but
+ * with no fatal error message.
+ */
+void
+figcopyfile(char *s, int systemtype)
+{
+ infigure = systemtype ? 2 : 1;
+ copyfile(s);
+ infigure = 0;
+}
+/*
+ * This next routine writes out a `special' character. In this case,
+ * we simply put it out, since any special character terminates the
+ * preceding token.
+ */
+void
+specialout(char c)
+{
+ if (linepos >= LINELENGTH) {
+ putc('\n', bitfile);
+ linepos = 0;
+ }
+ putc(c, bitfile);
+ linepos++;
+ lastspecial = 1;
+}
+
+void
+stringend(void)
+{
+ if (linepos + instring >= LINELENGTH - 2) {
+ putc('\n', bitfile);
+ linepos = 0;
+ }
+ putc('(', bitfile);
+ *strbp = 0;
+ fputs(strbuffer, bitfile);
+ putc(')', bitfile);
+ linepos += instring + 2;
+ lastspecial = 1;
+ instring = 0;
+ strbp = strbuffer;
+}
+
+#ifdef SHIFTLOWCHARS
+/*
+ * moving chars 0-32 and 127 to higher positions
+ * is desirable when using some fonts
+ */
+int
+T1Char(int c)
+{
+ int tmpchr = c;
+ if (shiftlowchars && curfnt->resfont) {
+ if ((tmpchr <= 0x20)&&(tmpchr>=0)) {
+ if (tmpchr < 0x0A) {
+ tmpchr += 0xA1;
+ }
+ else {
+ tmpchr += 0xA3;
+ }
+ }
+ else if (tmpchr == 0x7F) {
+ tmpchr = 0xC4;
+ }
+ }
+ if (curfnt->chardesc[tmpchr].flags2 & EXISTS)
+ tmpchr = c;
+ return tmpchr;
+}
+#endif
+
+void
+scout(unsigned char c) /* string character out */
+{
+/*
+ * Is there room in the buffer? LINELENGTH-6 is used because we
+ * need room for (, ), and a possible four-byte string \000, for
+ * instance. If it is too long, we send out the string.
+ */
+ jflag = 0;
+ if (instring > LINELENGTH-6) {
+ stringend();
+ chrcmd('p');
+ }
+#ifdef SHIFTLOWCHARS
+ c=T1Char(c);
+#endif
+/* changed next line to hex representation for VMCMS port
+ if (c<' ' || c > 126 || c=='%' ) {
+*/
+ if ( c<0x20 || c>= 0x7F || c==0x25 ) {
+ *strbp++ = '\\';
+ *strbp++ = '0' + ((c >> 6) & 3);
+ *strbp++ = '0' + ((c >> 3) & 7);
+ *strbp++ = '0' + (c & 7);
+ instring += 4;
+ } else {
+#if defined(VMCMS) || defined (MVSXA)
+ c = ascii2ebcdic[c];
+#endif
+ if (c == '(' || c == ')' || c == '\\') {
+ *strbp++ = '\\';
+ *strbp++ = c;
+ instring += 2;
+ } else {
+ *strbp++ = c;
+ instring++;
+ }
+ }
+}
+
+static void
+scout2(int c)
+{
+ char s[64];
+
+ sprintf(s, "<%04x>p", c);
+ cmdout(s);
+}
+
+static void
+jscout(int c, char *fs) /* string character out */
+{
+ char s[64];
+
+ if (!dir) {
+ numout(hh);
+ numout(vv);
+ } else {
+ numout(vv);
+ numout(-hh);
+ }
+ if (strstr(fs,"-UTF32-")!=NULL) {
+ snprintf(s, sizeof(s), "a<%08x>p", c);
+ } else if (strstr(fs,"-UTF8-")!=NULL) {
+ if (c<0x80) {
+ snprintf(s, sizeof(s), "a<%02x>p", c);
+ } else if (c<0x800) {
+ snprintf(s, sizeof(s), "a<%02x%02x>p", UCStoUTF8B1(c), UCStoUTF8B2(c));
+ } else if (c<0x10000) {
+ snprintf(s, sizeof(s), "a<%02x%02x%02x>p", UCStoUTF8C1(c),
+ UCStoUTF8C2(c), UCStoUTF8C3(c));
+ } else if (c<0x110000) {
+ snprintf(s, sizeof(s), "a<%02x%02x%02x%02x>p", UCStoUTF8D1(c),
+ UCStoUTF8D2(c), UCStoUTF8D3(c), UCStoUTF8D4(c));
+ } else {
+ error("warning: Illegal code value.");
+ }
+ } else if (c>0xffff && strstr(fs,"-UTF16-")!=NULL) {
+ snprintf(s, sizeof(s), "a<%04x%04x>p",
+ UTF32toUTF16HS(c), UTF32toUTF16LS(c));
+ } else {
+ if ((strstr(fs,"-RKSJ-")!=NULL)) c = JIStoSJIS(c);
+ snprintf(s, sizeof(s), "a<%04x>p", c);
+ }
+ cmdout(s);
+ instring = 0;
+ jflag = 1;
+ strbuffer[0] = '\0';
+}
+
+void
+cmdout(const char *s)
+{
+ int l;
+
+ /* hack added by dorab */
+ if (instring && !jflag) {
+ stringend();
+ chrcmd('p');
+ }
+ l = strlen(s);
+ if ((! lastspecial && linepos >= LINELENGTH - 20) ||
+ linepos + l >= LINELENGTH) {
+ putc('\n', bitfile);
+ linepos = 0;
+ } else if (! lastspecial) {
+ putc(' ', bitfile);
+ linepos++;
+ }
+ fputs(s, bitfile);
+ linepos += l;
+ lastspecial = 0;
+}
+
+void psnameout(const char *s) {
+ // we lead with a special, so we don't need the space.
+ lastspecial = 1 ;
+ cmdout(s) ;
+}
+
+void pslineout(const char *s) {
+ fputs(s, bitfile) ;
+ fprintf(bitfile, "\n");
+ linepos = 0;
+}
+
+static void
+chrcmd(char c)
+{
+ if ((! lastspecial && linepos >= LINELENGTH - 20) ||
+ linepos + 2 > LINELENGTH) {
+ putc('\n', bitfile);
+ linepos = 0;
+ } else if (! lastspecial) {
+ putc(' ', bitfile);
+ linepos++;
+ }
+ putc(c, bitfile);
+ linepos++;
+ lastspecial = 0;
+}
+
+void
+floatout(float n)
+{
+ char buf[50];
+
+ snprintf(buf, sizeof(buf), "%.2f", n);
+ cmdout(buf);
+}
+
+void
+doubleout(double n)
+{
+ char buf[50];
+
+ snprintf(buf, sizeof(buf), "%g", n);
+ cmdout(buf);
+}
+
+void
+numout(integer n)
+{
+ char buf[50];
+
+#ifdef SHORTINT
+ snprintf(buf, sizeof(buf), "%ld", n);
+#else
+ snprintf(buf, sizeof(buf), "%d", n);
+#endif
+ cmdout(buf);
+}
+
+void
+mhexout(register unsigned char *p,
+ register long len)
+{
+ register const char *hexchar = hxdata;
+ register int n, k;
+
+ while (len > 0) {
+ if (linepos > LINELENGTH - 2) {
+ putc('\n', bitfile);
+ linepos = 0;
+ }
+ k = (LINELENGTH - linepos) >> 1;
+ if (k > len)
+ k = len;
+ len -= k;
+ linepos += (k << 1);
+ while (k--) {
+ n = *p++;
+ putc(hexchar[n >> 4], bitfile);
+ putc(hexchar[n & 15], bitfile);
+ }
+ }
+}
+
+static void
+fontout(halfword n)
+{
+ char buf[6];
+
+ if (instring && !jflag) {
+ stringend();
+ chrcmd('p');
+ }
+ makepsname(buf, n);
+ cmdout(buf);
+
+ lastfont = curfnt->psname;
+}
+
+void
+hvpos(void)
+{
+ if (!dir) {
+ if (rvv != vv || jflag) {
+ if (instring) {
+ stringend();
+ numout(hh);
+ numout(vv);
+ chrcmd('y');
+ } else if (rhh != hh || jflag) {
+ numout(hh);
+ numout(vv);
+ chrcmd('a') ;
+ } else { /* hard to get this case, but it's there when you need it! */
+ numout(vv - rvv);
+ chrcmd('x');
+ }
+ rvv = vv;
+ } else if (rhh != hh || jflag) {
+ if (instring) {
+ stringend();
+ if (hh - rhh < 5 && rhh - hh < 5) {
+#if defined(VMCMS) || defined (MVSXA) /* should replace 'p' in non-VMCMS, non-MVSXA line as well */
+ chrcmd(ascii2ebcdic[(char)(112 + hh - rhh)]);
+#else
+ chrcmd((char)('p' + hh - rhh));
+#endif
+ } else if (hh - rhh < d + 5 && rhh - hh < 5 - d) {
+#if defined(VMCMS) || defined (MVSXA) /* should replace 'g' in non-VMCMS, non-MVSXA line as well */
+ chrcmd(ascii2ebcdic[(char)(103 + hh - rhh - d)]);
+#else
+ chrcmd((char)('g' + hh - rhh - d));
+#endif
+ d = hh - rhh;
+ } else {
+ numout(hh - rhh);
+ chrcmd('b');
+ d = hh - rhh;
+ }
+ } else {
+ numout(hh - rhh);
+ chrcmd('w');
+ }
+ }
+ rhh = hh;
+ } else {
+ if (rhh != hh || jflag) {
+ if (instring) {
+ stringend();
+ numout(vv);
+ numout(-hh);
+ chrcmd('y');
+ } else if (rvv != vv || jflag) {
+ numout(vv);
+ numout(-hh);
+ chrcmd('a');
+ } else { /* hard to get this case, but it's there when you need it! */
+ numout(rhh - hh);
+ chrcmd('x');
+ }
+ rhh = hh;
+ } else if (rvv != vv || jflag) {
+ if (instring) {
+ stringend();
+ if (vv - rvv < 5 && rvv - vv < 5) {
+#if defined(VMCMS) || defined (MVSXA) /* should replace 'p' in non-VMCMS, non-MVSXA line as well */
+ chrcmd(ascii2ebcdic[(char)(112 + vv - rvv)]);
+#else
+ chrcmd((char)('p' + vv - rvv));
+#endif
+ } else if (vv - rvv < d + 5 && rvv - vv < 5 - d) {
+#if defined(VMCMS) || defined (MVSXA) /* should replace 'g' in non-VMCMS, non-MVSXA line as well */
+ chrcmd(ascii2ebcdic[(char)(103 + vv - rvv - d)]);
+#else
+ chrcmd((char)('g' + vv - rvv - d));
+#endif
+ d = vv - rvv;
+ } else {
+ numout(vv - rvv);
+ chrcmd('b');
+ d = vv - rvv;
+ }
+ } else {
+ numout(vv - rvv);
+ chrcmd('w');
+ }
+ }
+ rvv = vv;
+ }
+}
+
+/*
+ * initprinter opens the bitfile and writes the initialization sequence
+ * to it.
+ */
+void
+newline(void)
+{
+ if (linepos != 0) {
+ fprintf(bitfile, "\n");
+ linepos = 0;
+ }
+ lastspecial = 1;
+}
+
+void
+nlcmdout(const char *s)
+{
+ newline();
+ cmdout(s);
+ newline();
+}
+/*
+ * Is the dimension close enough for a match? We use 5bp
+ * as a match; this is 65536*72.27*5/72 or 328909 scaled points.
+ */
+static int
+indelta(integer i)
+{
+ if (i < 0)
+ i = -i;
+ return (i <= 328909);
+}
+/*
+ * A case-irrelevant string compare.
+ */
+static int
+mlower(int c)
+{
+ if ('A' <= c && c <= 'Z')
+ return c - 'A' + 'a';
+ else
+ return c;
+}
+static int
+ncstrcmp(const char *a, const char *b)
+{
+ while (*a && (*a == *b ||
+ mlower(*a) == mlower(*b)))
+ a++, b++;
+ if (*a == 0 && *b == 0)
+ return 0;
+ else
+ return 1;
+}
+/*
+ * Find the paper size.
+ */
+static void
+findpapersize(void) {
+ if (finpapsiz == 0) {
+ struct papsiz *ps;
+ struct papsiz *fps = 0;
+ int ih, iv, it;
+ int mindiff = 0x7fffffff;
+
+ if (tryepsf && !landscape) {
+ finpapsiz = &defpapsiz;
+ hpapersize = defpapsiz.xsize;
+ vpapersize = defpapsiz.ysize;
+ return;
+ }
+ if (cropmarks) {
+/*
+ * If user wanted crop marks, we increase the size of the page by
+ * a half inch all around.
+ */
+ if (hpapersize == 0 || vpapersize == 0) {
+ error(
+ "warning: -k crop marks wanted, but no paper size specified; using default");
+ if (landscape) {
+ hpapersize = defpapsiz.ysize;
+ vpapersize = defpapsiz.xsize;
+ } else {
+ hpapersize = defpapsiz.xsize;
+ vpapersize = defpapsiz.ysize;
+ }
+ }
+ hpapersize += 2368143L;
+ vpapersize += 2368143L;
+ add_header(CROPHEADER);
+ }
+ if (paperfmt && *paperfmt) {
+ for (ps = papsizes; ps; ps = ps->next)
+ if (ncstrcmp(paperfmt, ps->name)==0)
+ finpapsiz = ps;
+ if (finpapsiz == 0)
+ error("no match for papersize");
+ }
+ if (finpapsiz == 0 && hpapersize > 0 && vpapersize > 0) {
+ for (ps=papsizes; ps; ps = ps->next) {
+ ih = ps->xsize-hpapersize;
+ iv = ps->ysize-vpapersize;
+ if (ih < 0) ih = -ih;
+ if (iv < 0) iv = -iv;
+ it = ih;
+ if (it < iv) it = iv;
+ if (it < mindiff) {
+ mindiff = it;
+ fps = ps;
+ }
+ }
+ if (indelta(mindiff))
+ landscape = 0;
+ else
+ fps = 0;
+ mindiff = 0x7fffffff;
+ if (fps == 0) {
+ for (ps=papsizes; ps; ps = ps->next) {
+ iv = ps->ysize-hpapersize;
+ ih = ps->xsize-vpapersize;
+ if (ih < 0) ih = -ih;
+ if (iv < 0) iv = -iv;
+ it = ih;
+ if (it < iv) it = iv;
+ if (it < mindiff) {
+ mindiff = it;
+ fps = ps;
+ }
+ }
+ if (indelta(mindiff))
+ landscape = 1;
+ else
+ fps = 0;
+ if (fps == 0) {
+ for (ps=papsizes; ps; ps = ps->next) {
+ if (ps->ysize == 0 && ps->xsize == 0) {
+ fps = ps;
+ break;
+ }
+ }
+ if (fps == 0) {
+ landscape = (hpapersize > vpapersize);
+ error(
+ "no match for special paper size found; using default");
+ }
+ }
+ }
+ finpapsiz = fps;
+ }
+ if (finpapsiz == 0) {
+ if (papsizes)
+ finpapsiz = papsizes;
+ else
+ finpapsiz = &defpapsiz;
+/*
+ * But change xsize/ysize to match so bounding box works.
+ */
+ if (hpapersize && vpapersize) {
+ if (landscape) {
+ finpapsiz->ysize = hpapersize;
+ finpapsiz->xsize = vpapersize;
+ } else {
+ finpapsiz->xsize = hpapersize;
+ finpapsiz->ysize = vpapersize;
+ }
+ }
+ }
+/*
+ * Here, there was no papersize special. We set the paper size from
+ * the selected paper format. If the selected paper format has no
+ * sizes, we use the defaults.
+ */
+ if (hpapersize == 0 || vpapersize == 0) {
+ if (finpapsiz->xsize == 0 || finpapsiz->ysize == 0) {
+ finpapsiz->xsize = defpapsiz.xsize;
+ finpapsiz->ysize = defpapsiz.ysize;
+ }
+ if (landscape) {
+ vpapersize = finpapsiz->xsize;
+ hpapersize = finpapsiz->ysize;
+ } else {
+ hpapersize = finpapsiz->xsize;
+ vpapersize = finpapsiz->ysize;
+ }
+/*
+ * Here, there was a papersize special, but the selected paper
+ * format has 0 0 for sizes. We set the sizes here so that the
+ * bounding box works.
+ */
+ } else if (finpapsiz->xsize == 0 || finpapsiz->ysize == 0) {
+ finpapsiz->xsize = hpapersize;
+ finpapsiz->ysize = vpapersize;
+/*
+ * Here, the user specified a size with -t, and there was a
+ * papersize special, and its sizes were greater than zero.
+ * We make sure the sizes are okay. Note that the user must have
+ * specified landscape if this is desired.
+ */
+ } else if (paperfmt && *paperfmt) {
+ if (landscape) {
+ if (!indelta(vpapersize - finpapsiz->xsize) ||
+ !indelta(hpapersize - finpapsiz->ysize)) {
+ if (vpapersize > finpapsiz->xsize ||
+ hpapersize > finpapsiz->ysize)
+ error("warning: -t selected paper may be too small");
+ else
+ error("note: -t selected paper may be too large");
+ }
+ } else {
+ if (!indelta(hpapersize - finpapsiz->xsize) ||
+ !indelta(vpapersize - finpapsiz->ysize)) {
+ if (hpapersize > finpapsiz->xsize ||
+ vpapersize > finpapsiz->ysize)
+ error("warning: -t selected paper may be too small");
+ else
+ error("note: -t selected paper may be too large");
+ }
+ }
+ }
+ }
+}
+/*
+ * Convert scaled points to PostScript points. This is the same
+ * as return (i * 72 / (65536 * 72.27)), which is the same as
+ * dividing by 65781.76, but we want to round up.
+ */
+static int
+topoints(integer i)
+{
+ i += 65780L;
+ return (i / 6578176L)*100 + (i % 6578176) * 100 / 6578176;
+}
+/*
+ * Send out the special paper stuff. If `hed' is non-zero, only
+ * send out lines starting with `!' else send all other lines out.
+ */
+static void
+paperspec(const char *s, int hed)
+{
+ int sendit;
+
+ while (*s) {
+ s++;
+ if (*s == '\0')
+ return;
+ if (*s == '!') {
+ s++;
+ while (*s == ' ') s++;
+ sendit = hed;
+ } else
+ sendit = ! hed;
+ if (sendit) {
+ while (*s && *s != '\n')
+ putc(*s++, bitfile);
+ putc('\n', bitfile);
+ } else {
+ while (*s && *s != '\n')
+ s++;
+ }
+ }
+}
+static char *
+epsftest(integer bop)
+{
+ if (tryepsf && paperfmt == 0 && *iname) {
+ findbb(bop+44);
+ return nextstring;
+ }
+ return 0;
+}
+static char *isepsf = 0;
+static int endprologsent;
+void
+open_output(void) {
+ FILE * pf = NULL;
+ if (*oname != 0) {
+/*
+ * We check to see if the first character is a exclamation
+ * point, and popen if so.
+ */
+ if (*oname == '!' || *oname == '|') {
+#if defined(MSDOS) && !defined(__DJGPP__) || defined(VMS) || defined(VMCMS) || defined(MVSXA) || defined(__THINK__) || defined(ATARIST)
+ error("! can't open output pipe");
+#else
+#ifdef OS2
+ if (_osmode != OS2_MODE) {
+ error("! can't open output pipe");
+ } else {
+#endif
+#ifdef __DJGPP__
+ /* Feature: if they pipe to "lpr" and there's no executable by
+ that name anywhere in sight, write to local printer instead.
+
+ We do this up front, before even trying to popen, because on
+ MS-DOS popen always succeeds for writing (it only opens a
+ temporary file), and by the time we get to actually run the
+ (possibly nonexistent) program in pclose, it's too late to
+ fall back.
+
+ We don't use kpathsea functions here because they don't
+ know about DOS-specific executable extensions, while we
+ want to be able to find "lpr.exe", "lpr.com", "lpr.bat" etc. */
+ extern char *__dosexec_find_on_path(const char *,
+ char **, char *);
+ extern char **environ;
+ char *p = oname + 1;
+ char found[FILENAME_MAX];
+
+ while (ISSPACE(*p))
+ p++;
+ if (strncmp(p, "lpr", 3) == 0 && (ISSPACE(p[3]) || p[3] == '\0')
+ && !__dosexec_find_on_path(oname+1, (char **)0, found)
+ && !__dosexec_find_on_path(oname+1, environ, found))
+ pf = fopen("PRN", "w");
+#endif
+ if (pf == NULL && (pf = popen(oname+1, "w")) != NULL) {
+ popened = 1;
+ SET_BINARY(fileno(pf));
+ }
+ if (pf == NULL)
+ error("! couldn't open output pipe");
+ bitfile = pf;
+#ifdef OS2
+ }
+#endif
+#endif /* MSDOS && !__DJGPP__ || VMS || ... */
+ } else {
+ if ((bitfile=fopen(oname,"w"))==NULL)
+ error("! couldn't open PostScript file");
+ SET_BINARY(fileno(bitfile));
+ }
+ } else {
+ bitfile = stdout;
+ }
+
+ /* Even PostScript output may include binary characters, so switch
+ bitfile to binary mode. */
+ if (O_BINARY && !isatty(fileno(bitfile)))
+ SET_BINARY(fileno(bitfile));
+}
+void
+initprinter(sectiontype *sect)
+{
+ int n = sect->numpages * pagecopies * collatedcopies;
+#ifdef HPS
+ if (!HPS_FLAG)
+#endif
+ open_output();
+
+ findpapersize();
+ if (disablecomments) {
+ fprintf(bitfile,
+ "%%!PS (but not EPSF; comments have been disabled)\n");
+ fprintf(stderr, "Warning: no %%%%Page comments generated.\n");
+ } else {
+ if (multiplesects) {
+ fprintf(bitfile,
+ "%%!PS (but not EPSF because of memory limits)\n");
+ fprintf(stderr, "Warning: no %%%%Page comments generated.\n");
+ } else {
+ isepsf = epsftest(sect->bos);
+ if (isepsf)
+ fprintf(bitfile, "%%!PS-Adobe-2.0 EPSF-2.0\n");
+ else
+ fprintf(bitfile, "%%!PS-Adobe-2.0\n");
+ }
+ if (tryepsf && isepsf == 0)
+ error("We tried, but couldn't make it EPSF.");
+ fprintf(bitfile, "%%%%Creator: %s\n", banner + 8);
+ if (*titlename)
+ fprintf(bitfile, "%%%%Title: %s\n", titlename);
+ else if (*iname)
+ fprintf(bitfile, "%%%%Title: %s\n", xbasename(iname));
+#ifdef CREATIONDATE
+ jobtime = get_unique_time_if_given();
+ if (jobtime == INVALID_EPOCH_VALUE) {
+ jobtime = time(0);
+ }
+ fprintf(bitfile, "%%%%CreationDate: %s", asctime(gmtime(&jobtime)));
+#endif
+ if (! isepsf) {
+/*
+ * Normally, we wouldn't want to add that second field
+ * indicating that the page order is reversed, as per page
+ * 644 of the Red book. But we have to, for many existing
+ * spoolers.
+ */
+ fprintf(bitfile, "%%%%Pages: %d%s\n", (sepfiles ? n : totalpages),
+ (reverse?" -1":""));
+ fprintf(bitfile, "%%%%PageOrder: %sscend\n", reverse?"De":"A");
+ }
+ if (landscape) {
+ fprintf(bitfile, "%%%%Orientation: Landscape\n");
+ fprintf(bitfile, "%%%%BoundingBox: 0 0 %d %d\n",
+ topoints(finpapsiz->xsize), topoints(finpapsiz->ysize));
+ } else if (isepsf)
+ fprintf(bitfile, "%%%%BoundingBox: %s\n", isepsf);
+ else
+ fprintf(bitfile, "%%%%BoundingBox: 0 0 %d %d\n",
+ topoints(finpapsiz->xsize), topoints(finpapsiz->ysize));
+ tell_needed_fonts();
+ paperspec(finpapsiz->specdat, 1);
+ fprintf(bitfile, "%%%%EndComments\n");
+/*
+ * If we encode Type 3 fonts with an encoding vector, this can cause
+ * Distiller's autoorientation to get confused. We remedy this by
+ * emitting underdocumented ViewingOrientation comments right after
+ * EndComments. Known defect: if a user "flips" the landscape to be
+ * 180 degrees using one of the \special{} commands available, the
+ * document will be rendered in the viewer upside down. (But only
+ * with bitmap font encoding enabled and bitmapped fonts actually used.)
+ * --tgr, 29 February 2020.
+ */
+ if (encodetype3 && bitmapfontseen) {
+ fprintf(bitfile, "%%%%BeginDefaults\n") ;
+ if (landscape) {
+ fprintf(bitfile, "%%%%ViewingOrientation: 0 -1 1 0\n") ;
+ } else {
+ fprintf(bitfile, "%%%%ViewingOrientation: 1 0 0 1\n") ;
+ }
+ fprintf(bitfile, "%%%%EndDefaults\n") ;
+ }
+ }
+ {
+ int i, len;
+ char *p;
+
+/*
+ * Here, too, we have to be careful not to exceed the line length
+ * limitation, if possible.
+ */
+ fprintf(bitfile, "%%DVIPSWebPage: %s\n", banner2);
+ fprintf(bitfile, "%%DVIPSCommandLine:");
+ len = 18;
+ for (i=0; i<gargc; i++) {
+ p = gargv[i];
+ while (*p > ' ')
+ p++;
+ if (*p)
+ len += 2;
+ len += strlen(gargv[i]) + 1;
+ if (len > LINELENGTH) {
+ fprintf(bitfile, "\n%%+");
+ len = strlen(gargv[i]) + 3;
+ if (*p)
+ len += 2;
+ }
+ fprintf(bitfile, (*p ? " \"%s\"" : " %s"), gargv[i]);
+ }
+ fprintf(bitfile, "\n%%DVIPSParameters: dpi=%d", actualdpi);
+ if (actualdpi != vactualdpi)
+ fprintf(bitfile, "x%d", vactualdpi);
+ if (compressed)
+ fprintf(bitfile, ", compressed");
+ if (removecomments)
+ fprintf(bitfile, ", comments removed");
+ fputc('\n', bitfile);
+ }
+#if defined(VMCMS) || defined (MVSXA) /* convert preamblecomment to ebcdic so we can read it */
+ {
+ int i;
+ for ( i=0; preamblecomment[i]; i++ )
+ preamblecomment[i] = ascii2ebcdic[preamblecomment[i]];
+ }
+#endif
+ fprintf(bitfile, "%%DVIPSSource: %s\n", preamblecomment);
+ linepos = 0;
+ endprologsent = 0;
+ if (safetyenclose)
+ fprintf(bitfile, "/SafetyEnclosure save def\n");
+ print_composefont();
+ if (! headers_off)
+ send_headers();
+}
+void
+setup(void) {
+ newline();
+ if (endprologsent == 0 && !disablecomments) {
+ fprintf(bitfile, "%%%%EndProlog\n");
+ fprintf(bitfile, "%%%%BeginSetup\n");
+ if (vactualdpi == actualdpi)
+ fprintf(bitfile, "%%%%Feature: *Resolution %ddpi\n",
+ actualdpi);
+ else
+ fprintf(bitfile, "%%%%Feature: *Resolution %dx%ddpi\n",
+ actualdpi, vactualdpi);
+ if (multiplesects && *(finpapsiz->specdat)) {
+ fprintf(bitfile, "TeXDict begin\n");
+ paperspec(finpapsiz->specdat, 0);
+ fprintf(bitfile, "end\n");
+ }
+ if (manualfeed)
+ fprintf(bitfile, "%%%%Feature: *ManualFeed True\n");
+#ifdef HPS
+ if (!HPS_FLAG)
+#endif
+ if (multiplesects)
+ fprintf(bitfile, "%%%%EndSetup\n");
+ }
+ if (multiplesects && ! disablecomments)
+ fprintf(bitfile, "%%DVIPSBeginSection\n");
+ cmdout("TeXDict");
+ cmdout("begin");
+ if (endprologsent || disablecomments || multiplesects == 0) {
+ fprintf(bitfile, "\n");
+ paperspec(finpapsiz->specdat, 0);
+ }
+ if (manualfeed) cmdout("@manualfeed");
+ if (landscape) cmdout("@landscape");
+ if (numcopies != 1) {
+ numout((integer)numcopies);
+ cmdout("@copies");
+ }
+ cmdout("end");
+ if (endprologsent == 0 && !disablecomments) {
+ newline();
+ endprologsent = 1;
+#ifdef HPS
+ if (!HPS_FLAG)
+#endif
+ if (! multiplesects)
+ fprintf(bitfile, "%%%%EndSetup\n");
+ }
+#ifdef HPS
+ if (HPS_FLAG) {
+ fclose(bitfile);
+ set_bitfile("body.tmp",0);
+ }
+#endif
+}
+/*
+ * cleanprinter is the antithesis of the above routine.
+ */
+void
+cleanprinter(void)
+{
+ fprintf(bitfile, "\n");
+ fprintf(bitfile, "userdict /end-hook known{end-hook}if\n");
+ if (safetyenclose)
+ fprintf(bitfile, "SafetyEnclosure restore\n");
+ if (!disablecomments)
+ fprintf(bitfile, "%%%%EOF\n");
+ if (sendcontrolD)
+ putc(4, bitfile);
+ if (ferror(bitfile))
+ error("Problems with file writing; probably disk full.");
+#if !defined(MSDOS) || defined(__DJGPP__)
+#ifndef VMS
+#ifndef MVSXA
+#ifndef VMCMS
+#ifndef __THINK__
+#ifndef ATARIST
+#ifdef OS2
+ if (_osmode == OS2_MODE)
+#endif
+ if (popened)
+ pclose(bitfile);
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+ if (popened == 0)
+ fclose(bitfile);
+ bitfile = NULL;
+}
+
+/* this tells dvips that it has no clue where it is. */
+static int thispage = 0;
+static integer rulex, ruley;
+void
+psflush(void) {
+ rulex = ruley = rhh = rvv = -314159265;
+ lastfont = -1;
+}
+/*
+ * pageinit initializes the output variables.
+ */
+void
+pageinit(void)
+{
+ psflush();
+ newline();
+ thispage++;
+ if (!disablecomments) {
+ if (multiplesects)
+#ifdef SHORTINT
+ fprintf(bitfile, "%%DVIPSSectionPage: %ld\n", pagenum);
+ else if (! isepsf)
+ fprintf(bitfile, "%%%%Page: %ld %d\n", pagenum, thispage);
+#else
+ fprintf(bitfile, "%%DVIPSSectionPage: %d\n", pagenum);
+ else if (! isepsf)
+ fprintf(bitfile, "%%%%Page: %d %d\n", pagenum, thispage);
+#endif
+ }
+ linepos = 0;
+ cmdout("TeXDict");
+ cmdout("begin");
+#ifdef HPS
+ if (HPS_FLAG) {
+ cmdout("HPSdict");
+ cmdout("begin");
+ }
+#endif
+ if (landscape) cmdout("@landscape");
+ numout((integer)pagenum);
+ numout((integer)thispage-1);
+ cmdout("bop");
+ d = 0;
+}
+
+
+
+/*
+ * This routine ends a page.
+ */
+void
+pageend(void)
+{
+ if (instring) {
+ stringend();
+ chrcmd('p');
+ }
+ if (dir)
+ cmdout("-90 rotate");
+ if (any_dir)
+ cmdout("dyy");
+ cmdout("eop");
+ cmdout("end");
+#ifdef HPS
+ if (HPS_FLAG)
+ cmdout("end");
+#endif
+}
+
+/*
+ * drawrule draws a rule at the specified position.
+ * It does nothing to save/restore the current position,
+ * or even draw the current string. (Rules are normally
+ * set below the baseline anyway, so this saves us on
+ * output size almost always.)
+ */
+void
+drawrule(integer rw, integer rh)
+{
+ if (!dir) {
+ numout((integer)hh);
+ numout((integer)vv);
+ } else {
+ numout((integer)vv);
+ numout((integer)-hh);
+ }
+ if (rw == rulex && rh == ruley)
+ chrcmd('V');
+ else {
+ numout((integer)rw);
+ numout((integer)rh);
+ chrcmd('v');
+ rulex = rw;
+ ruley = rh;
+ }
+}
+
+/*
+ * drawchar draws a character at the specified position.
+ */
+void
+drawchar(chardesctype *c, int cc)
+{
+ if (rdir != dir || fdir != curfnt->dir) {
+ if (curfnt->dir == 9)
+ setdir(dir+2);
+ else
+ setdir(dir);
+ rdir = dir;
+ fdir = curfnt->dir;
+ }
+
+ if (curfnt->iswide == 0 && curfnt->codewidth == 2) {
+ Boolean savejflag = jflag;
+ jflag = 1;
+ hvpos();
+ jflag = savejflag;
+ if (lastfont != curfnt->psname)
+ fontout(curfnt->psname);
+ scout2(cc);
+ }
+ else if (curfnt->iswide) {
+ if (lastfont != curfnt->psname)
+ fontout(curfnt->psname);
+ jscout(cc, curfnt->resfont->PSname);
+ }
+ else {
+ if (jflag) {
+ if (!dir){
+ numout(hh);
+ numout(vv);
+ }
+ else {
+ numout(vv);
+ numout(-hh);
+ }
+ chrcmd('a');
+ rhh = hh;
+ rvv = vv;
+ }
+ else hvpos();
+ if (lastfont != curfnt->psname)
+ fontout(curfnt->psname);
+ scout((unsigned char)cc);
+ }
+ if (!dir)
+ rhh = hh + c->pixelwidth; /* rvv = rv */
+ else
+ rvv = vv + c->pixelwidth; /* rhh = rh */
+}
+/*
+ * This routine sends out the document fonts comment.
+ */
+static void
+tell_needed_fonts(void) {
+ struct header_list *hl = ps_fonts_used;
+ char *q;
+ int roomleft = -1;
+
+ if (hl == 0)
+ return;
+ while (0 != (q=get_name(&hl))) {
+ if ((int)strlen(q) >= roomleft) {
+ if (roomleft != -1) {
+ fprintf(bitfile, "\n%%%%+");
+ roomleft = LINELENGTH - 3;
+ } else {
+ fprintf(bitfile, "%%%%DocumentFonts:");
+ roomleft = LINELENGTH - 16;
+ }
+ }
+ fprintf(bitfile, " %s", q);
+ roomleft -= strlen(q) + 1;
+ }
+ fprintf(bitfile, "\n");
+}
+
+static void print_composefont(void)
+{
+ struct header_list *hl = ps_fonts_used;
+ int len;
+ char *q, *p;
+
+ if (hl == 0)
+ return;
+ while (0 != (q=get_name(&hl))) {
+ len = strlen(q);
+ if(len > 11 && (!strncmp(q+len-10, "Identity-H", 10) ||
+ !strncmp(q+len-10, "Identity-V", 10))) {
+ fprintf(bitfile, "%%%%BeginFont: %s\n", q);
+ fprintf(bitfile, "/%s ", q);
+ fprintf(bitfile, "/%s ", q+len-10);
+ fprintf(bitfile, "[/");
+ for(p=q; p <= q+len-12; p++)
+ fprintf(bitfile, "%c", *p);
+ fprintf(bitfile, "] composefont pop\n");
+ fprintf(bitfile, "%%%%EndFont\n");
+ }
+ }
+}
+
+static void setdir(int d)
+{
+ if (instring) {
+ stringend();
+ chrcmd('p');
+ }
+ switch(d) {
+ case 1 :
+ cmdout("dyt");
+ break;
+ case 2 :
+ cmdout("dty");
+ break;
+ case 3 :
+ cmdout("dtt");
+ break;
+ default :
+ cmdout("dyy");
+ break;
+ }
+ linepos += 4;
+ any_dir = 1;
+}
+
+void cmddir(void)
+{
+ if (dir != rdir) {
+ if (dir)
+ cmdout("90 rotate");
+ else
+ cmdout("-90 rotate");
+ rdir = dir;
+ }
+}
+
+static int JIStoSJIS(int c)
+{
+ int high, low;
+ int nh,nl;
+
+ high = (c>>8) & 0xff;
+ low = c & 0xff;
+ nh = ((high-0x21)>>1) + 0x81;
+ if (nh>0x9f)
+ nh += 0x40;
+ if (high & 1) {
+ nl = low + 0x1f;
+ if (low>0x5f)
+ nl++;
+ }
+ else
+ nl = low + 0x7e;
+ if (((nh >= 0x81 && nh <= 0x9f) || (nh >= 0xe0 && nh <= 0xfc)) &&
+ (nl >= 0x40 && nl <= 0xfc && nl != 0x7f))
+ return((nh<<8) | nl);
+ else
+ return(0x813f);
+}
diff --git a/Build/source/texk/dvipsk/papersiz.c b/Build/source/texk/dvipsk/papersiz.c
new file mode 100644
index 00000000000..ea1d5fddde8
--- /dev/null
+++ b/Build/source/texk/dvipsk/papersiz.c
@@ -0,0 +1,135 @@
+/*
+ * This function calculates approximately (whole + num/den) * sf.
+ * No need for real extreme accuracy; one twenty thousandth of an
+ * inch should be sufficient.
+ *
+ * No `sf' parameter means to use an old one; inches are assumed
+ * originally.
+ *
+ * Assumptions:
+ *
+ * 0 <= num < den <= 20000
+ * 0 <= whole
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+static long
+scale(long whole, long num, long den, long sf)
+{
+ long v;
+
+ v = whole * sf + num * (sf / den);
+ if (v / sf != whole || v < 0 || v > 0x40000000L)
+ error("! arithmetic overflow in parameter");
+ sf = sf % den;
+ v += (sf * num * 2 + den) / (2 * den);
+ return(v);
+}
+/*
+ * Convert a sequence of digits into a long; return -1 if no digits.
+ * Advance the passed pointer as well.
+ */
+static long
+myatol(char **s)
+{
+ register char *p;
+ register long result;
+
+ result = 0;
+ p = *s;
+ while ('0' <= *p && *p <= '9') {
+ if (result > 100000000)
+ error("! arithmetic overflow in parameter");
+ result = 10 * result + *p++ - '0';
+ }
+ if (p == *s && *p == '.') {
+ return 0;
+ } else if (p == *s) {
+#ifdef KPATHSEA
+ error(concat3 ("expected number in ", *s, ", returning 10"));
+#else
+ error("expected number! returning 10");
+#endif
+ return 10;
+ } else {
+ *s = p;
+ return(result);
+ }
+}
+/*
+ * Get a dimension, allowing all the various extensions, and
+ * defaults. Returns a value in scaled points.
+ */
+static long scalevals[] = { 1864680L, 65536L, 786432L, 186468L,
+ 1L, 65782L, 70124L, 841489L, 4736286L };
+static const char *scalenames = "cmptpcmmspbpddccin";
+static long
+myatodim(char **s)
+{
+ register long w, num, den, sc;
+ register const char *q;
+ char *p;
+ int negative = 0, i;
+
+ p = *s;
+ if (**s == '-') {
+ p++;
+ negative = 1;
+ }
+ w = myatol(&p);
+ if (w < 0) {
+ error("number too large; 1000 used");
+ w = 1000;
+ }
+ num = 0;
+ den = 1;
+ if (*p == '.') {
+ p++;
+ while ('0' <= *p && *p <= '9') {
+ if (den <= 1000) {
+ den *= 10;
+ num = num * 10 + *p - '0';
+ } else if (den == 10000) {
+ den *= 2;
+ num = num * 2 + (*p - '0') / 5;
+ }
+ p++;
+ }
+ }
+ while (*p == ' ')
+ p++;
+ for (i=0, q=scalenames;; i++, q += 2)
+ if (*q == 0) {
+#ifdef KPATHSEA
+ error(concat3 ("expected units in ", *s, ", assuming inches."));
+#else
+ error("expected units! assuming inches.");
+#endif
+ sc = scalevals[8];
+ break;
+ } else if (*p == *q && p[1] == q[1]) {
+ sc = scalevals[i];
+ p += 2;
+ break;
+ }
+ w = scale(w, num, den, sc);
+ *s = p;
+ return(negative?-w:w);
+}
+/*
+ * The routine where we handle the paper size special. We need to pass in
+ * the string after the `papersize=' specification.
+ */
+void
+handlepapersize(char *p, integer *x, integer *y)
+{
+ while (*p == ' ')
+ p++;
+ *x = myatodim(&p);
+ while (*p == ' ' || *p == ',')
+ p++;
+ *y = myatodim(&p);
+}
diff --git a/Build/source/texk/dvipsk/paths.h b/Build/source/texk/dvipsk/paths.h
new file mode 100644
index 00000000000..c0bdf2466d6
--- /dev/null
+++ b/Build/source/texk/dvipsk/paths.h
@@ -0,0 +1,84 @@
+/* paths.h - public domain.
+ * OUTPATH is where to send the output. If you want a .ps file to
+ * be created by default, set this to "". If you want to automatically
+ * invoke a pipe (as in lpr), make the first character an exclamation
+ * point or a vertical bar, and the remainder the command line to
+ * execute.
+ */
+#define OUTPATH ""
+/* (Actually OUTPATH will be overridden by an `o' line in config.ps.) */
+/*
+ * Names of config and prologue files:
+ */
+#if defined MSDOS || defined OS2 || defined(ATARIST)
+#define DVIPSRC "dvips.ini"
+#else
+#ifdef VMCMS /* IBM: VM/CMS */
+#define DVIPSRC "dvips.profile"
+#else
+#ifdef MVSXA /* IBM: MVS/XA */
+#define DVIPSRC "dvips.profile"
+#else /* not IBM */
+#define DVIPSRC "$HOME/.dvipsrc"
+#endif
+#endif /* IBM: VM/CMS */
+#endif
+
+#define HEADERFILE "tex.pro"
+#define CHEADERFILE "texc.pro"
+#define PSFONTHEADER "texps.pro"
+#define IFONTHEADER "finclude.pro"
+#define SPECIALHEADER "special.pro"
+#define COLORHEADER "color.pro" /* IBM: color */
+#define CROPHEADER "crop.pro"
+#define PSMAPFILE "psfonts.map"
+#ifndef CONFIGFILE
+#define CONFIGFILE "config.ps"
+#endif
+#ifdef HPS
+#define HPSHEADER "hps.pro"
+#endif
+#ifndef KPATHSEA
+/* arguments to fopen */
+#define READ "r"
+
+/* directories are separated in the path by PATHSEP */
+/* DIRSEP is the char that separates directories from files */
+#ifdef __THINK__
+#define READBIN "rb" /* Macintosh OS will use binary mode */
+#define PATHSEP ',' /* use same syntax as VMS */
+#define DIRSEP ':'
+#else
+#if defined MSDOS || defined OS2 || defined(ATARIST) || defined(WIN32)
+#define READBIN "rb" /* MSDOS and OS/2 must use binary mode */
+#define PATHSEP ';'
+#define DIRSEP '\\'
+#define DEVICESEP ':'
+#else
+#ifdef VMS
+#define READBIN "rb" /* VMS must use binary mode */
+#define PATHSEP ','
+#define DIRSEP ':'
+#else
+#ifdef VMCMS /* IBM: VM/CMS */
+#define READBIN "rb" /* VMCMS must use binary mode */
+#define PATHSEP ' '
+#define DIRSEP ' '
+#else
+#ifdef MVSXA /* IBM: MVS/XA */
+#define READBIN "rb" /* MVSXA must use binary mode */
+#define PATHSEP ':'
+#define DIRSEP '.'
+#else
+#define READBIN "r" /* UNIX doesn't care */
+#define PATHSEP ':'
+#define DIRSEP '/'
+#endif /* IBM: VM/CMS */
+#endif
+#endif
+#endif
+#endif
+
+/* paths are all in the Makefile; by not supplying defaults, we force
+ the installer to set them up. */
+#endif /* ! KPATHSEA */
diff --git a/Build/source/texk/dvipsk/pfbincl.test b/Build/source/texk/dvipsk/pfbincl.test
new file mode 100755
index 00000000000..6b06c194b8b
--- /dev/null
+++ b/Build/source/texk/dvipsk/pfbincl.test
@@ -0,0 +1,9 @@
+#! /bin/sh -vx
+# $Id$
+# Public domain.
+
+./dvips -D 300 $srcdir/testdata/pfbincl.xdv -o pfbincl.ps || exit 1
+diff $srcdir/testdata/pfbincl.xps pfbincl.ps
+
+exit 0
+
diff --git a/Build/source/texk/dvipsk/pprescan.c b/Build/source/texk/dvipsk/pprescan.c
new file mode 100644
index 00000000000..b434a93fac1
--- /dev/null
+++ b/Build/source/texk/dvipsk/pprescan.c
@@ -0,0 +1,279 @@
+/*
+ * This is the main routine for the first (prescanning) pass.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+/*
+ * We declare this to tell everyone we are prescanning early.
+ */
+Boolean pprescan;
+/*
+ * When a font is selected during the pre-prescan, this routine makes sure
+ * that the tfm or vf (but not pk) file is loaded.
+ */
+static void
+ppreselectfont(fontdesctype *f)
+{
+ int i;
+
+ curfnt = f;
+ if (curfnt->loaded == 0) {
+ if (!residentfont(curfnt))
+ if (!virtualfont(curfnt)) {
+ for (i=0; i<256; i++)
+ curfnt->chardesc[i].flags = 0;
+ curfnt->loaded = 3; /* we're scanning for sizes */
+ }
+ }
+}
+/*
+ * Now our scanpage routine.
+ */
+static void
+pscanpage(void)
+{
+ register shalfword cmd;
+ register chardesctype *cd;
+ register fontmaptype *cfnt = 0;
+ integer fnt;
+ integer mychar;
+ register frametype *frp = frames;
+
+#ifdef DEBUG
+ if (dd(D_PAGE))
+#ifdef SHORTINT
+ fprintf(stderr,"PPrescanning page %ld\n", pagenum);
+#else /* ~SHORTINT */
+ fprintf(stderr,"PPrescanning page %d\n", pagenum);
+#endif /* ~SHORTINT */
+#endif /* DEBUG */
+ curfnt = NULL;
+ curpos = NULL;
+ bopcolor(0);
+ while (1) {
+ switch (cmd=dvibyte()) {
+case 255: /* pTeX's dir or undefined */
+ if (!noptex) {
+ dvibyte();
+ break;
+ }
+/* illegal commands */
+case 131: case 136: case 139: /* set4, put4, bop */
+case 247: case 248: case 249: /* pre, post, post_post */
+case 250: case 251: case 252: case 253: case 254: /* undefined */
+ sprintf(errbuf,
+ "! DVI file contains unexpected command (%d)",cmd);
+ error(errbuf);
+case 132: case 137: /* eight-byte commands setrule, putrule */
+ dvibyte();
+ dvibyte();
+ dvibyte();
+ dvibyte();
+case 146: case 151: case 156: case 160: case 165: case 170:
+ /* four-byte commands right4, w4, x4, down4, y4, z4 */
+ dvibyte();
+case 145: case 150: case 155: case 159: case 164: case 169:
+ /* three-byte commands right3, w3, x3, down3, y3, z3 */
+ dvibyte();
+case 144: case 149: case 154: case 158: case 163: case 168:
+ /* two-byte commands right2, w2, x2, down2, y2, z2 */
+ dvibyte();
+case 143: case 148: case 153: case 157: case 162: case 167:
+ /* one-byte commands right1, w1, x1, down1, y1, z1 */
+ dvibyte();
+case 147: case 152: case 161: case 166: /* w0, x0, y0, z0 */
+case 138: case 141: case 142: /* nop, push, pop */
+ break;
+case 130: case 135: /* set3, put3 */
+ if (noptex) {
+ sprintf(errbuf,
+ "! DVI file contains unexpected pTeX command (%d)",cmd);
+ error(errbuf);
+ }
+ mychar = dvibyte(); mychar = (mychar << 8) + dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ goto dochar;
+case 129: case 134: /* set2, put2 */
+ if (noomega && noptex) {
+ sprintf(errbuf,
+ "! DVI file contains unexpected command (%d)",cmd);
+ error(errbuf);
+ }
+ mychar = dvibyte(); mychar = (mychar << 8) + dvibyte();
+ goto dochar;
+case 128: case 133: cmd = dvibyte(); /* set1, put1 commands drops through */
+default: /* these are commands 0 (setchar0) thru 127 (setchar 127) */
+ mychar = cmd;
+dochar:
+ if (curfnt==NULL)
+ error("! Bad DVI file: no font selected");
+ if (mychar>=curfnt->maxchars) {
+ if (!noptex && mychar<0x1000000 && curfnt->loaded == 2 && curfnt->kind == VF_PTEX) {
+ /* fallback */
+ } else {
+ sprintf(errbuf,"! [pscanpage] invalid char %d from font %.500s",
+ mychar, curfnt->name);
+ error(errbuf);
+ }
+ }
+ if (curfnt->loaded == 2) { /* scanning a virtual font character */
+ struct tft *ffont0;
+ frp->curp = curpos;
+ frp->curl = curlim;
+ frp->ff = ffont;
+ frp->curf = curfnt;
+ if (++frp == &frames[MAXFRAME] )
+ error("! virtual recursion stack overflow");
+ cd = curfnt->chardesc + mychar;
+ if (mychar>=curfnt->maxchars || cd->packptr == NULL) {
+ if (!noptex && mychar<0x1000000 && curfnt->kind == VF_PTEX) { /* fallback */
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf_str(stderr,
+ "We will fallback pTeX vf:%s to %s\n",
+ curfnt->name, curfnt->localfonts->desc->name);
+#endif /* DEBUG */
+ } else {
+ fprintf(stderr, "Wrong char code: %04X\n", mychar);
+ error("! a non-existent virtual character is being used; check vf/tfm files");
+ }
+ ffont0 = curfnt->localfonts;
+ if (ffont0==NULL)
+ curfnt = NULL;
+ else
+ ppreselectfont(ffont0->desc);
+ } else {
+ curpos = cd->packptr + 2;
+ curlim = curpos + (256*(long)(*cd->packptr)+(*(cd->packptr+1)));
+ ffont = curfnt->localfonts;
+ if (ffont==NULL)
+ curfnt = NULL;
+ else
+ ppreselectfont(ffont->desc);
+ }
+ } else if (curfnt->loaded == 3)
+ curfnt->chardesc[mychar].flags = EXISTS;
+ break;
+case 171: case 172: case 173: case 174: case 175: case 176: case 177:
+case 178: case 179: case 180: case 181: case 182: case 183: case 184:
+case 185: case 186: case 187: case 188: case 189: case 190: case 191:
+case 192: case 193: case 194: case 195: case 196: case 197: case 198:
+case 199: case 200: case 201: case 202: case 203: case 204: case 205:
+case 206: case 207: case 208: case 209: case 210: case 211: case 212:
+case 213: case 214: case 215: case 216: case 217: case 218: case 219:
+case 220: case 221: case 222: case 223: case 224: case 225: case 226:
+case 227: case 228: case 229: case 230: case 231: case 232: case 233:
+case 234: case 235: case 236: case 237: case 238: /* font selection commands */
+ if (cmd < 235) fnt = cmd - 171; /* fntnum0 thru fntnum63 */
+ else {
+ fnt = dvibyte(); /* fnt1 */
+ while (cmd-- > 235)
+ fnt = (fnt << 8) + dvibyte();
+ }
+ for (cfnt=ffont; cfnt; cfnt = cfnt->next)
+ if (cfnt->fontnum == fnt) goto fontfound;
+ error("! no font selected");
+fontfound: curfnt = cfnt->desc;
+ ppreselectfont(curfnt);
+ break;
+case 239: predospecial((integer)dvibyte(), 1); break; /* xxx1 */
+case 240: predospecial((integer)twobytes(), 1); break; /* xxx2 */
+case 241: predospecial(threebytes(), 1); break; /* xxx3 */
+case 242: predospecial(signedquad(), 1); break; /* xxx4 */
+case 243: case 244: case 245: case 246: fontdef(cmd-242); break; /* fntdef1 */
+case 140: /* eop or end of virtual char */
+ if (curpos) {
+ --frp;
+ curfnt = frp->curf;
+ ffont = frp->ff;
+ curlim = frp->curl;
+ curpos = frp->curp;
+ break;
+ }
+ return;
+ }
+ }
+}
+/*
+ * Finally, here's our main pprescan routine.
+ */
+static integer firstmatch = -1, lastmatch = -1;
+void
+pprescanpages(void)
+{
+ register int cmd;
+ integer lmaxpages = maxpages;
+ integer mpagenum;
+ integer pageseq = 0;
+ int ntfirst = notfirst;
+
+ pprescan = 1;
+ readpreamble();
+/*
+ * Now we look for the first page to process. If we get to the end of
+ * the file before the page, we complain (fatally).
+ * Incidentally, we don't use the DVI file's bop backpointer to skip
+ * over pages at high speed, because we want to look to for special
+ * header that might be in skipped pages.
+ */
+ while (1) {
+ cmd = skipnop();
+ if (cmd==248)
+ error("! End of document before first specified page");
+ if (cmd!=139)
+ error("! Bad DVI file: expected bop");
+ pagenum = signedquad();
+ pageseq++;
+ mpagenum = abspage ? pageseq : pagenum;
+ if (mpagenum == firstpage && ntfirst)
+ firstmatch++;
+ if (mpagenum == lastpage && notlast)
+ lastmatch++;
+ if (ntfirst && mpagenum == firstpage && firstmatch == firstseq)
+ ntfirst = 0;
+ if (ntfirst ||
+ ((evenpages && (pagenum & 1)) || (oddpages && (pagenum & 1)==0) ||
+ (pagelist && !InPageList(pagenum)))) {
+ skipover(40);
+ skippage();
+ } else {
+ if (notlast && mpagenum == lastpage)
+ lastmatch--;
+ break;
+ }
+ }
+/*
+ * Here we scan for each of the sections. First we initialize some of
+ * the variables we need. We don't have to be as smart as before in
+ * skipping pages.
+ */
+ skipover(40);
+ while (lmaxpages > 0) {
+ if (!(evenpages && (pagenum & 1)) &&
+ !(oddpages && (pagenum & 1)==0) &&
+ !(pagelist && !InPageList(pagenum))) {
+ pscanpage();
+ lmaxpages--;
+ } else
+ skippage();
+ mpagenum = abspage ? pageseq : pagenum;
+ if (mpagenum == lastpage && notlast)
+ lastmatch++;
+ if (notlast && mpagenum == lastpage && lastmatch == lastseq)
+ lmaxpages = -1; /* we are done after this page. */
+ cmd=skipnop();
+ if (cmd==248) break;
+ if (cmd!=139)
+ error("! Bad DVI file: expected bop");
+ pagenum = signedquad();
+ skipover(40);
+ pageseq++;
+ }
+ fseek(dvifile, 0L, 0);
+ pprescan = 0;
+}
diff --git a/Build/source/texk/dvipsk/prescan.c b/Build/source/texk/dvipsk/prescan.c
new file mode 100644
index 00000000000..bde97ef2531
--- /dev/null
+++ b/Build/source/texk/dvipsk/prescan.c
@@ -0,0 +1,254 @@
+/*
+ * This is the main routine for the first (prescanning) pass.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+/*
+ * This routine handles the processing of the preamble in the dvi file.
+ */
+void
+readpreamble(void)
+{
+ register int i;
+ char *p;
+
+ if (dvibyte()!=247) error("! Bad DVI file: first byte not preamble");
+ if (dvibyte()!=2) error("! Bad DVI file: id byte not 2");
+ num = signedquad();
+ den = signedquad();
+ if (overridemag > 0) signedquad();
+ else if (overridemag < 0) mag = (mag * signedquad()) / 1000.0;
+ else mag = signedquad();
+ conv = (real) num * DPI * mag / ( den * 254000000.0 );
+ vconv = (real) num * VDPI * mag / ( den * 254000000.0 );
+ alpha = (((real)den / 7227.0) / 0x100000) * (25400000.0 / (real) num);
+ fsizetol = 1 + (integer)(DPI/(72270.0 * conv));
+ if (!pprescan) {
+ for (i=dvibyte(),p=preamblecomment;i>0;i--,p++) *p=dvibyte();
+ *p='\0';
+ if (!quiet) {
+ fprintf(stderr, "'");
+#ifdef VMCMS /* IBM: VM/CMS */
+ for(p=preamblecomment;*p;p++) putc(ascii2ebcdic[*p], stderr);
+#else
+#ifdef MVSXA /* IBM: MVS/XA */
+ for(p=preamblecomment;*p;p++) putc(ascii2ebcdic[*p], stderr);
+#else
+ for(p=preamblecomment;*p;p++) putc_str(*p, stderr);
+#endif /* IBM: VM/CMS */
+#endif
+ fprintf_str(stderr, "' -> %s\n", oname);
+ }
+ } else
+ skipover(dvibyte());
+}
+
+/*
+ * Finally, here's our main prescan routine.
+ */
+static integer firstmatch = -1, lastmatch = -1;
+void
+prescanpages(void)
+{
+ register int cmd;
+ short ret = 0;
+ register integer thispageloc, thissecloc;
+ register fontdesctype *f;
+ register shalfword c;
+ register long thissectionmem = 0;
+ integer mpagenum;
+ integer pageseq = 0;
+ int ntfirst = notfirst;
+
+ readpreamble();
+/*
+ * Now we look for the first page to process. If we get to the end of
+ * the file before the page, we complain (fatally).
+ * Incidentally, we don't use the DVI file's bop backpointer to skip
+ * over pages at high speed, because we want to look to for special
+ * header that might be in skipped pages.
+ */
+ while (1) {
+ cmd = skipnop();
+ if (cmd==248)
+ error("! End of document before first specified page");
+ if (cmd!=139)
+ error("! Bad DVI file: expected bop");
+ thispageloc = ftell(dvifile); /* the location FOLLOWING the bop */
+#ifdef DEBUG
+ if (dd(D_PAGE))
+#ifdef SHORTINT
+ fprintf(stderr,"bop at %ld\n", thispageloc);
+#else /* ~SHORTINT */
+ fprintf(stderr,"bop at %d\n", (int)thispageloc);
+#endif /* ~SHORTINT */
+#endif /* DEBUG */
+ pagenum = signedquad();
+ pageseq++;
+ mpagenum = abspage ? pageseq : pagenum;
+ if (mpagenum == firstpage && ntfirst)
+ firstmatch++;
+ if (mpagenum == lastpage && notlast)
+ lastmatch++;
+ if (ntfirst && mpagenum == firstpage && firstmatch == firstseq)
+ ntfirst = 0;
+ if (ntfirst ||
+ ((evenpages && (pagenum & 1)) || (oddpages && (pagenum & 1)==0) ||
+ (pagelist && !InPageList(pagenum)))) {
+ skipover(40);
+ skippage();
+ } else {
+ if (notlast && mpagenum == lastpage)
+ lastmatch--;
+ break;
+ }
+ }
+/*
+ * Here we scan for each of the sections. First we initialize some of
+ * the variables we need.
+ */
+ while (maxpages > 0 && cmd != 248) {
+ for (f=fonthead; f; f=f->next) {
+ f->psname = 0;
+ if (f->loaded==1)
+ for (c=255; c>=0; c--)
+ f->chardesc[c].flags &= (STATUSFLAGS);
+ }
+ fontmem = swmem - OVERCOST;
+ if (fontmem <= 1000)
+ error("! Too little VM in printer");
+
+/* The section begins at the bop command just before thispageloc (which may
+ * be a page that was aborted because the previous section overflowed memory).
+ */
+ pagecount = 0;
+ fseek(dvifile, (long)thispageloc, 0);
+ pagenum = signedquad();
+ skipover(40);
+ thissecloc = thispageloc;
+/*
+ * Now we have the loop that actually scans the pages. The scanpage routine
+ * returns 1 if the page scans okay; it returns 2 if the memory ran out
+ * before any pages were completed (in which case we'll try to carry on
+ * and hope for the best); it returns 0 if a page was aborted for lack
+ * of memory. After each page, we mark the characters seen on that page
+ * as seen for this section so that they will be downloaded.
+ */
+ ret = 0;
+ while (maxpages>0) {
+ if (!(evenpages && (pagenum & 1)) &&
+ !(oddpages && (pagenum & 1)==0) &&
+ !(pagelist && !InPageList(pagenum))) {
+ ret = scanpage();
+ if (ret == 0)
+ break;
+ pagecount++;
+ maxpages--;
+ } else
+ skippage();
+ thissectionmem = swmem - fontmem - OVERCOST;
+ mpagenum = abspage ? pageseq : pagenum;
+ pageseq++;
+ if (mpagenum == lastpage && notlast)
+ lastmatch++;
+ if (notlast && mpagenum == lastpage && lastmatch == lastseq)
+ maxpages = -1; /* we are done after this page. */
+ if (reverse)
+ thissecloc = thispageloc;
+ for (f=fonthead; f; f=f->next)
+ if (f->loaded==1) {
+ if (f->psflag & THISPAGE)
+ f->psflag = PREVPAGE;
+ for (c=255; c>=0; c--)
+ if (f->chardesc[c].flags & THISPAGE)
+ f->chardesc[c].flags = PREVPAGE |
+ (f->chardesc[c].flags & (STATUSFLAGS));
+ }
+ cmd=skipnop();
+ if (cmd==248) break;
+ if (cmd!=139)
+ error("! Bad DVI file: expected bop");
+ thispageloc = ftell(dvifile);
+#ifdef DEBUG
+ if (dd(D_PAGE))
+#ifdef SHORTINT
+ fprintf(stderr,"bop at %ld\n", thispageloc);
+#else /* ~SHORTINT */
+ fprintf(stderr,"bop at %d\n", (int)thispageloc);
+#endif /* ~SHORTINT */
+#endif /* DEBUG */
+ pagenum = signedquad();
+ skipover(40);
+ if (ret==2 || (maxsecsize && pagecount >= maxsecsize))
+ break;
+ }
+/*
+ * Now we have reached the end of a section for some reason.
+ * If there are any pages, we save the pagecount, section location,
+ * and continue.
+ */
+ if (pagecount>0) {
+ register int fc = 0;
+ register sectiontype *sp;
+ register charusetype *cp;
+
+ totalpages += pagecount;
+ for (f=fonthead; f; f=f->next)
+ if (f->loaded==1 && f->psname)
+ fc++;
+ sp = (sectiontype *)mymalloc((integer)(sizeof(sectiontype) +
+ fc * sizeof(charusetype) + sizeof(fontdesctype *)));
+ sp->bos = thissecloc;
+ if (reverse) {
+ sp->next = sections;
+ sections = sp;
+ } else {
+ register sectiontype *p;
+
+ sp->next = NULL;
+ if (sections == NULL)
+ sections = sp;
+ else {
+ for (p=sections; p->next != NULL; p = p->next);
+ p->next = sp;
+ }
+ }
+ sp->numpages = pagecount;
+#ifdef DEBUG
+ if (dd(D_PAGE))
+#ifdef SHORTINT
+ fprintf(stderr,"Have a section: %ld pages at %ld fontmem %ld\n",
+#else /* ~SHORTINT */
+ fprintf(stderr,"Have a section: %d pages at %d fontmem %d\n",
+#endif /* ~SHORTINT */
+ (integer)pagecount, (integer)thissecloc, (integer)thissectionmem);
+#endif /* DEBUG */
+ cp = (charusetype *) (sp + 1);
+ fc = 0;
+ for (f=fonthead; f; f=f->next)
+ if (f->loaded==1 && f->psname) {
+ register halfword b, bit;
+
+ cp->psfused = (f->psflag & PREVPAGE);
+ f->psflag = 0;
+ cp->fd = f;
+ c = 0;
+ for (b=0; b<16; b++) {
+ cp->bitmap[b] = 0;
+ for (bit=32768; bit!=0; bit>>=1) {
+ if (f->chardesc[c].flags & PREVPAGE)
+ cp->bitmap[b] |= bit;
+ c++;
+ }
+ }
+ cp++;
+ }
+ cp->fd = NULL;
+ }
+ }
+}
diff --git a/Build/source/texk/dvipsk/protos.h b/Build/source/texk/dvipsk/protos.h
new file mode 100644
index 00000000000..1cc8b8ba090
--- /dev/null
+++ b/Build/source/texk/dvipsk/protos.h
@@ -0,0 +1,433 @@
+#ifndef _PROTOS_H_
+
+/* see dvips.h for copyright notice */
+
+#define _PROTOS_H_
+
+/* some types need declaration before being used */
+struct nlink;
+struct hps_link;
+struct Char;
+struct String;
+struct tcd;
+
+/******* prototypes for functions *******/
+
+/* prototypes for functions from bbox.c */
+extern void findbb(int bop);
+
+/* prototypes for functions from bitmapenc.c */
+extern void bmenc_startsection(void) ;
+extern void bitmapencopt(int) ;
+extern int downloadbmencoding(const char *name, double scale, fontdesctype *curfnt) ;
+extern void finishbitmapencoding(const char *name, double scale) ;
+
+/* prototypes for functions from color.c */
+extern void initcolor(void);
+extern void background(char *bkgrnd);
+extern void resetcolorstack(char *p, int outtops);
+extern void bopcolor(int outtops);
+extern void pushcolor(char *p, Boolean outtops);
+extern void popcolor(Boolean outtops);
+
+/* prototypes for functions from dopage.c */
+extern void dopage(void);
+
+/* prototypes for functions from dosection.c */
+extern void dosection(sectiontype *s, int c);
+extern int InPageList(int i);
+extern int ParsePages(char *s);
+
+/* prototypes for functions from dospecial.c */
+extern void specerror(const char *s);
+extern void outbangspecials(void);
+extern void predospecial(int numbytes, Boolean scanning);
+extern void dospecial(int numbytes);
+extern float *bbdospecial(int nbytes);
+
+/* prototypes for functions from download.c */
+quarterword *unpack_bb(chardesctype *c, integer *cwidth, integer *cheight,
+ integer *xoff, integer *yoff) ;
+extern void download(charusetype *p, int psfont);
+extern void makepsname(char *s, int n);
+extern void lfontout(int n);
+extern void dopsfont(sectiontype *fs);
+
+/* prototypes for functions from dpicheck.c */
+extern unsigned short dpicheck(unsigned short dpi);
+
+/* prototypes for functions from drawPS.c */
+#ifdef TPIC
+extern void setPenSize(char *cp);
+extern void addPath(char *cp);
+extern void arc(char *cp, int invis);
+extern void flushPath(int invis);
+extern void flushDashed(char *cp, int dotted);
+extern void flushSpline(char *cp);
+extern void SetShade(char *cp);
+extern void shadeLast(char *cp);
+extern void whitenLast(void);
+extern void blackenLast(void);
+#endif /* TPIC */
+
+/* prototypes for functions from dviinput.c */
+extern short dvibyte(void);
+extern unsigned short twobytes(void);
+extern int threebytes(void);
+extern short signedbyte(void);
+extern short signedpair(void);
+extern int signedtrio(void);
+extern int signedquad(void);
+extern void skipover(int i);
+
+/* prototypes for functions from dvips.c */
+extern void help(int status);
+extern void error_with_perror(const char *s, const char *fname);
+extern void error(const char *s);
+extern void check_checksum(unsigned int c1, unsigned int c2, const char *name);
+extern char *mymalloc(int n);
+extern void checkstrings(void);
+extern char *newstring(const char *s);
+extern void *revlist(void *p);
+
+/* prototypes for functions from emspecial.c */
+extern void emclear(void);
+extern void emspecial(char *p);
+
+/* prototypes for functions from finclude.c */
+extern void scanfontcomments(const char *filename);
+extern void fonttableout(void);
+
+/* prototypes for functions from flib.c */
+#ifdef FONTLIB
+extern void fliload(void);
+extern char *fliparse(char *path, char *name)
+#endif
+
+/* prototypes for functions from fontdef.c */
+extern fontdesctype *newfontdesc(int cksum, int scsize, int dssize, char *name, char *area);
+extern fontdesctype *matchfont(char *name, char *area, int scsize, char *scname);
+extern void fontdef(int siz);
+extern int skipnop(void);
+
+/* prototypes for functions from header.c */
+extern int add_name(const char *s, struct header_list **what );
+extern void checkhmem(const char *s, char *p, char *q);
+extern int add_header(const char *s);
+extern int add_header_general(const char *s, char *pre, char* post);
+extern char *get_name(struct header_list **what );
+extern void send_headers(void);
+
+/* prototypes for functions from hps.c */
+#ifdef HPS
+extern void do_html(char *s);
+extern void finish_hps(void);
+extern void set_bitfile(const char *s, int mode);
+extern void vertical_in_hps(void);
+extern void end_current_box(void);
+extern void start_new_box(void);
+#endif /* HPS */
+
+/* prototypes for functions from loadfont.c */
+extern void badpk(const char *s);
+extern short pkbyte(void);
+extern int pkquad(void);
+extern int pktrio(void);
+extern void loadfont(fontdesctype *curfnt);
+
+/* prototypes for functions from makefont.c */
+extern void makefont(char *name, int dpi, int bdpi);
+
+/* prototypes for functions from output.c */
+extern void copyfile(const char *s);
+extern void copyfile_general(const char *s, struct header_list *h);
+extern void figcopyfile(char *s, int systemtype);
+extern void specialout(char c);
+extern void stringend(void);
+#ifdef SHIFTLOWCHARS
+extern int T1Char(int c);
+#endif
+extern void scout(unsigned char c);
+extern void cmdout(const char *s);
+extern void floatout(float n);
+extern void doubleout(double n);
+extern void numout(int n);
+extern void mhexout(unsigned char *p, long len);
+extern void hvpos(void);
+extern void newline(void);
+extern void open_output(void);
+extern void nlcmdout(const char *s);
+extern void initprinter(sectiontype *sect);
+extern void setup(void);
+extern void cleanprinter(void);
+extern void psflush(void);
+extern void pslineout(const char *s);
+extern void psnameout(const char *s);
+extern void pageinit(void);
+extern void pageend(void);
+extern void drawrule(int rw, int rh);
+extern void cmddir(void);
+extern void drawchar(chardesctype * c, int cc);
+
+/* prototypes for functions from papersiz.c */
+extern void handlepapersize(char *p, int *x, int *y);
+
+/* prototypes for functions from pprescan.c */
+extern void pprescanpages(void);
+
+/* prototypes for functions from prescan.c */
+extern void readpreamble(void);
+extern void prescanpages(void);
+
+/* prototypes for functions from repack.c */
+extern long getlong(unsigned char *a);
+extern void dochar(unsigned char *from, short width, short height);
+extern void repack(struct tcd *cp);
+
+/* prototypes for functions from resident.c */
+extern unsigned int hash(char *s);
+extern void revpslists(void);
+extern void cleanres(void);
+extern struct resfont *lookup(char *name);
+extern struct resfont *findPSname(char *name);
+extern int residentfont(fontdesctype *curfnt);
+extern Boolean getdefaults(const char *s);
+extern void getpsinfo(const char *name);
+extern void checkenv(int which);
+
+/* prototypes for functions from scalewidth.c */
+extern int scalewidth(int a, int b);
+
+/* prototypes for functions from scanpage.c */
+extern Boolean prescanchar(chardesctype *cd);
+extern Boolean preselectfont(fontdesctype *f);
+extern short scanpage(void);
+
+/* prototypes for functions from search.c */
+#ifdef KPATHSEA
+extern FILE *search(kpse_file_format_type format, const char *file, const char *mode);
+extern FILE *pksearch(const char *file, const char *mode, halfword dpi, const char **name_ret, int *dpi_ret);
+#else /* !KPATSHEA */
+extern FILE *search(char *path, const char *file, const char *mode);
+extern FILE *pksearch(char *path, const char *file, const char *mode, char *n, halfword dpi, halfword vdpi);
+#endif /* KPATHSEA */
+extern FILE *my_real_fopen(const char *n, const char *t);
+extern int close_file(FILE *f);
+
+/* prototypes for functions from skippage.c */
+extern void skippage(void);
+
+/* prototypes for functions from t1part.c */
+extern void *getmem(unsigned int size);
+extern struct Char *UnDefineChars(struct Char *TmpChar);
+extern int FontPart(FILE *fout, unsigned char *fontfile, unsigned char *vectfile);
+
+/* prototypes for functions from tfmload.c */
+extern void badtfm(const char *s);
+extern void tfmopen(fontdesctype *fd);
+extern unsigned short tfm16(void);
+extern int tfm32(void);
+extern int tfmload(fontdesctype *curfnt);
+
+/* prototypes for functions from unpack.c */
+extern long unpack(unsigned char *pack, unsigned short *raster,
+ unsigned short cwidth, unsigned short cheight, unsigned short cmd);
+
+/* prototypes for functions from virtualfont.c */
+extern Boolean virtualfont(fontdesctype *curfnt);
+
+/* prototypes for functions from writet1.c */
+extern char **load_enc_file(char *);
+extern boolean t1_subset_2(char *, unsigned char *, char *);
+
+/*********** global variables ***********/
+
+/* global variables from bitmapenc.c */
+extern int encodetype3 ;
+
+/* global variables from dopage.c */
+extern integer dir;
+#ifdef HPS
+extern integer hhmem, vvmem;
+extern integer pushcount;
+extern Boolean PAGEUS_INTERUPPTUS;
+extern Boolean NEED_NEW_BOX;
+#endif
+
+/* global variables from dosection.c */
+#ifdef HPS
+extern int pagecounter;
+#endif
+
+/* global variables from dvips.c */
+extern int found_problems;
+extern char *downloadedpsnames[];
+extern int unused_top_of_psnames;
+extern fontdesctype *fonthead;
+extern fontdesctype *curfnt;
+extern sectiontype *sections;
+extern Boolean partialdownload;
+extern Boolean manualfeed;
+extern Boolean compressed;
+extern Boolean downloadpspk;
+extern Boolean safetyenclose;
+extern Boolean removecomments;
+extern Boolean nosmallchars;
+extern Boolean cropmarks;
+extern Boolean abspage;
+extern Boolean tryepsf;
+extern int secure;
+extern int secure_option;
+extern int collatedcopies;
+extern integer pagecopies;
+extern shalfword linepos;
+extern integer maxpages;
+extern Boolean notfirst, notlast;
+extern Boolean evenpages, oddpages, pagelist;
+extern Boolean sendcontrolD;
+extern Boolean shiftlowchars;
+extern integer firstpage, lastpage;
+extern integer firstseq, lastseq;
+extern integer hpapersize, vpapersize;
+extern integer hoff, voff;
+extern integer maxsecsize;
+extern integer firstboploc;
+extern Boolean sepfiles;
+extern int numcopies;
+extern char *titlename;
+extern const char *oname;
+extern char *iname;
+extern char *fulliname;
+extern char *nextstring, *maxstring;
+extern FILE *dvifile, *bitfile;
+extern quarterword *curpos, *curlim;
+extern fontmaptype *ffont;
+extern real conv;
+extern real vconv;
+extern real alpha;
+extern double mag;
+extern integer num, den;
+extern int overridemag;
+extern int actualdpi, vactualdpi;
+extern int maxdrift, vmaxdrift;
+extern char *paperfmt;
+extern int landscape;
+extern integer fontmem;
+extern integer pagecount;
+extern integer pagenum;
+extern long bytesleft;
+extern quarterword *raster;
+extern integer hh, vv;
+extern Boolean noomega;
+extern Boolean noptex;
+extern Boolean lastpsizwins;
+extern const char *infont;
+#ifndef KPATHSEA
+extern char *tfmpath;
+extern char *pkpath;
+extern char *vfpath;
+extern char *figpath;
+extern char *headerpath;
+extern char *configpath;
+extern char *pictpath;
+#ifdef SEARCH_SUBDIRECTORIES
+extern char *fontsubdirpath;
+#endif
+#endif /* ! KPATHSEA */
+#ifdef FONTLIB
+extern char *flipath;
+extern char *fliname;
+#endif
+extern integer swmem;
+extern int quiet;
+extern int filter;
+extern int dvips_debug_flag;
+extern int prettycolumn;
+extern int gargc;
+extern char **gargv;
+extern int totalpages;
+extern Boolean reverse;
+extern Boolean usesPSfonts;
+extern Boolean usesspecial;
+extern Boolean headers_off;
+extern Boolean usescolor;
+extern char *warningmsg;
+extern Boolean multiplesects;
+extern Boolean disablecomments;
+extern char *printer;
+extern char *mfmode;
+extern char *mflandmode;
+extern int mfmode_option;
+extern int oname_option;
+extern frametype frames[];
+extern integer pagecost;
+extern integer fsizetol;
+extern Boolean includesfonts;
+extern fontdesctype *fonthd[MAXFONTHD];
+extern int nextfonthd;
+extern char xdig[256];
+extern char banner[], banner2[];
+extern Boolean noenv;
+extern Boolean dopprescan;
+extern int dontmakefont;
+extern struct papsiz *papsizes;
+extern int headersready;
+#if defined(MSDOS) || defined(OS2) || defined(ATARIST)
+extern char *mfjobname;
+extern FILE *mfjobfile;
+#endif
+#ifdef DEBUG
+extern integer debug_flag;
+#endif
+#ifdef HPS
+extern Boolean HPS_FLAG;
+#endif
+
+/* global variables from flib.c */
+#ifdef FONTLIB
+extern Boolean flib;
+#endif
+
+/* global variables from hps.c */
+#ifdef HPS
+extern Boolean inHTMLregion;
+extern integer HREF_COUNT;
+extern int current_pushcount;
+extern Boolean noprocset;
+#endif
+
+/* global variables from loadfont.c */
+extern char errbuf[1500];
+extern int lastresortsizes[40];
+extern FILE *pkfile;
+
+/* global variables from output.c */
+extern char preamblecomment[256];
+extern integer rdir, fdir;
+
+/* global variables from pprescan.c */
+extern Boolean pprescan;
+
+/* global variables from repack.c */
+extern long mbytesleft;
+extern quarterword *mraster;
+
+/* global variables from resident.c */
+extern struct header_list *ps_fonts_used;
+extern const char *psmapfile;
+
+/* global variables from search.c */
+extern int to_close;
+#ifdef KPATHSEA
+extern char *realnameoffile;
+#else
+extern char realnameoffile[];
+#endif
+
+/* global variables from tfmload.c */
+extern FILE *tfmfile;
+
+/* global variables from loadfont.c */
+extern int bitmapfontseen ;
+
+#endif
diff --git a/Build/source/texk/dvipsk/protos_add.h b/Build/source/texk/dvipsk/protos_add.h
new file mode 100644
index 00000000000..22bd4393adb
--- /dev/null
+++ b/Build/source/texk/dvipsk/protos_add.h
@@ -0,0 +1,21 @@
+#ifndef _PROTOS_ADD_H
+#define _PROTOS_ADD_H
+
+#include "protos.h"
+
+/****** additional global variables ******
+ *
+ * We can declare 'dvistack' and 'name' only in some files, because
+ * otherwise they would conflict with equally named static variables.
+ */
+
+/* global variables from dopage.c */
+extern struct dvistack {
+ integer hh, vv;
+ integer h, v, w, x, y, z, dir;
+} stack[];
+
+/* global variables from loadfont.c */
+extern char name[];
+
+#endif
diff --git a/Build/source/texk/dvipsk/psfonts.map b/Build/source/texk/dvipsk/psfonts.map
new file mode 100644
index 00000000000..761ed1f3d47
--- /dev/null
+++ b/Build/source/texk/dvipsk/psfonts.map
@@ -0,0 +1,538 @@
+% original psfonts.map -- match TFM filenames to PostScript FontNames.
+% This file is public domain.
+% (If you change or delete `original' on the previous line, dvips won't
+% install its psfonts.map over this file.)
+%
+% This file includes mappings for the standard 35 PostScript fonts, plus
+% freely available high-quality fonts, plus fonts that come with various
+% commercial Unixes. (dvips.texi gives the precise directories for the latter.)
+%
+% The fontname distribution contains listings of many more commercially
+% available fonts. See /tex-archive/info/fontname on CTAN hosts,
+% mirrored from ftp://ftp.tug.org/tex/fontname.
+
+% The standard 35 fonts built in to almost all (but very old) PostScript
+% printers, plus a few variants afm2tfm can construct.
+rpagk AvantGarde-Book
+rpagko AvantGarde-BookOblique
+rpagd AvantGarde-Demi
+rpagdo AvantGarde-DemiOblique
+
+rpbkl Bookman-Light
+rpbkli Bookman-LightItalic
+rpbkd Bookman-Demi
+rpbkdi Bookman-DemiItalic
+
+rpcrr Courier
+rpcrro Courier-Oblique
+rpcrb Courier-Bold
+rpcrbo Courier-BoldOblique
+
+rphvr Helvetica
+rphvro Helvetica-Oblique
+rphvb Helvetica-Bold
+rphvbo Helvetica-BoldOblique
+rphvrrn Helvetica ".82 ExtendFont"
+rphvron Helvetica-Oblique ".82 ExtendFont"
+rphvbrn Helvetica-Bold ".82 ExtendFont"
+rphvbon Helvetica-BoldOblique ".82 ExtendFont"
+
+rpncr NewCenturySchlbk-Roman
+rpncri NewCenturySchlbk-Italic
+rpncb NewCenturySchlbk-Bold
+rpncbi NewCenturySchlbk-BoldItalic
+
+rpplr Palatino-Roman
+rpplri Palatino-Italic
+rpplro Palatino-Roman ".167 SlantFont"
+rpplb Palatino-Bold
+rpplbi Palatino-BoldItalic
+rpplbu Palatino-BoldItalic "-.1763 SlantFont"
+rpplru Palatino-Italic "-.1763 SlantFont"
+rpplrrn Palatino-Roman ".82 ExtendFont"
+rpplrre Palatino-Roman "1.2 ExtendFont"
+
+psyr Symbol
+rpsyr Symbol
+psyro Symbol ".167 SlantFont"
+rpsyro Symbol ".167 SlantFont"
+
+rptmr Times-Roman
+rptmri Times-Italic
+rptmro Times-Roman ".167 SlantFont"
+rptmb Times-Bold
+rptmbi Times-BoldItalic
+rptmbo Times-Bold ".167 SlantFont"
+rptmrrn Times-Roman ".8 ExtendFont"
+rptmrre Times-Roman "1.2 ExtendFont"
+
+pzdr ZapfDingbats
+rpzdr ZapfDingbats
+
+rpzcmi ZapfChancery-MediumItalic
+
+% Some fonts that have been contributed by vendors to the X
+% consortium (also Courier). You can get TFM and VF files for these
+% from ftp://ftp.tug.org/tex (and on ctan).
+rputr Utopia-Regular <putr.pfa
+rputri Utopia-Italic <putri.pfa
+rputb Utopia-Bold <putb.pfa
+rputbi Utopia-BoldItalic <putbi.pfa
+
+rbchr CharterBT-Roman <bchr.pfb
+rbchri CharterBT-Italic <bchri.pfb
+rbchb CharterBT-Bold <bchb.pfb
+rbchbi CharterBT-BoldItalic <bchbi.pfb
+
+% NimbusRoman is actually Times, and NimbusSans is Helvetica.
+ruaqrrc URWAntiquaT-RegularCondensed <uaqrrc.pfa
+rugqb URWGroteskT-Bold <ugqb.pfa
+runmr NimbusRomanNo9L-Regular <unmr.pfa
+runmrs NimbusSansL-Regular <unmrs.pfa
+
+% Bigelow&Holmes have made this freely available to linguists.
+hlcr5s LucidaSansIPA <hlcr5s.pfa
+hlcr5as LucidaSansPhoneticAlternate <hlcr5as.pfa
+
+
+% These fonts come with NeXT computers. Also AvantGarde, Bookman,
+% Helvetica Narrow, New Century Schoolbook, Palatino, Zapf Chancery, and
+% Zapf Dingbats.
+rpaab Aachen-Bold <paab.pfa
+
+rpadr AGaramond-Regular <padr.pfa
+rpadri AGaramond-Italic <padri.pfa
+rpads AGaramond-Semibold <pads.pfa
+rpadsi AGaramond-SemiboldItalic <padsi.pfa
+rpadb AGaramond-Bold <padb.pfa
+rpadbi AGaramond-BoldItalic <padbi.pfa
+rpadrd AGaramond-Titling <padrd.pfa
+rpadrx AGaramondExp-Regular <padrx.pfa
+rpadrix AGaramondExp-Italic <padrix.pfa
+rpadsx AGaramondExp-Semibold <padsx.pfa
+rpadbx AGaramondExp-Bold <padbx.pfa
+rpadbix AGaramondExp-BoldItalic <padbix.pfa
+
+rpbdr Bodoni <pbdr.pfa
+rpbdri Bodoni-Italic <pbdri.pfa
+rpbdb Bodoni-Bold <pbdb.pfa
+rpbdbi Bodoni-BoldItalic <pbdbi.pfa
+rpbdp Bodoni-Poster <pbdp.pfa
+
+rpburw BrushScript <pburw.pfa
+
+rpc5r CaslonFiveForty-Roman <pc5r.pfa
+rpc5ri CaslonFiveForty-Italic <pc5ri.pfa
+
+rpc3r CaslonThree-Roman <pc3r.pfa
+rpc3ri CaslonThree-Italic <pc3ri.pfa
+
+rphvrrc Helvetica-Condensed <phvrrc.pfa
+rphvroc Helvetica-Condensed-Oblique <phvroc.pfa
+rphvbrc Helvetica-Condensed-Bold <phvbrc.pfa
+rphvboc Helvetica-Condensed-BoldObl <phvboc.pfa
+
+rpubr BauerBodoni-Roman <pubr.pfa
+rpubri BauerBodoni-Italic <pubri.pfa
+rpubb BauerBodoni-Bold <pubb.pfa
+rpubbi BauerBodoni-BoldItalic <pubbi.pfa
+
+
+% These fonts come with DEC Ultrix and DEC OSF. Also
+% Courier, Symbol, and Times.
+rplbk LubalinGraph-Book <plbk.pfa
+rplbko LubalinGraph-BookOblique <plbko.pfa
+rplbd LubalinGraph-Demi <plbd.pfa
+rplbdo LubalinGraph-DemiOblique <plbdo.pfa
+
+rpsvl Souvenir-Light <psvl.pfa
+rpsvli Souvenir-LightItalic <psvli.pfa
+rpsvd Souvenir-Demi <psvd.pfa
+rpsvdi Souvenir-DemiItalic <psvdi.pfa
+
+
+% These fonts come with IBM AIX. See INSTALL. Also AvantGarde,
+% Courier, Helvetica, New Century Schoolbook, Symbol, and Times.
+rphbr Hobo <phbr.pfa
+
+rpslr Stencil <pslr.pfa
+
+
+% Adobe Lucida. You have to buy the outlines from Adobe, but
+% ftp.tug.org///tex/lucida.tar.gz has TFM and VF's for TeX
+% (including the math fonts).
+rplcr Lucida <plcr.pfa
+rplcri Lucida-Italic <plcri.pfa
+rplcro Lucida <plcr.pfa ".167 SlantFont"
+rplcb Lucida-Bold <plcb.pfa
+rplcbi Lucida-BoldItalic <plcbi.pfa
+rplcrs LucidaSans <plcrs.pfa
+rplcris LucidaSans-Italic <plcris.pfa
+rplcbs LucidaSans-Bold <plcbs.pfa
+rplcbis LucidaSans-BoldItalic <plcbis.pfa
+rplcrb LucidaBrightNormal <plcrb.pfa
+rplcrbi LucidaBrightItalic <plcrbi.pfa
+rplcbb LucidaBrightBold <plcbb.pfa
+rplcrst LucidaSansTypNormal <plcrst.pfa
+rplcrm LucidaMath-Italic <plcrm.pfa
+rplcrv LucidaMath-Extension <plcrv.pfa
+rplcry LucidaMath-Symbol <plcry.pfa
+
+% Y&Y Lucida. They have their own names, which it doesn't hurt to include.
+
+rylhr LucidaBright <ylhr.pfb
+lbr LucidaBright <lbr.pfb
+rylhri LucidaBright-Italic <ylhri.pfb
+lbi LucidaBright-Italic <lbi.pfb
+rylhro LucidaBright-Oblique <ylhro.pfb
+lbsl LucidaBright-Oblique <lbsl.pfb
+rylhd LucidaBright-Demi <ylhd.pfb
+lbd LucidaBright-Demi <lbd.pfb
+rylhdi LucidaBright-DemiItalic <ylhdi.pfb
+lbdi LucidaBright-DemiItalic <lbdi.pfb
+rylcrs LucidaSans <ylcrs.pfb
+lsr LucidaSans <lsr.pfb
+rylcds LucidaSans-Demi <ylcds.pfb
+lsd LucidaSans-Demi <lsd.pfb
+rylcdis LucidaSans-DemiItalic <ylcdis.pfb
+lsdi LucidaSans-DemiItalic <lsdi.pfb
+rylcrst LucidaSans-Typewriter <ylcrst.pfb
+lstr LucidaSans-Typewriter <lstr.pfb
+rylcrost LucidaSans-TypewriterOblique <ylcrost.pfb
+lsto LucidaSans-TypewriterOblique <lsto.pfb
+rylcbst LucidaSans-TypewriterBold <ylcbst.pfb
+lstb LucidaSans-TypewriterBold <lstb.pfb
+rylcbost LucidaSans-TypewriterBoldOblique <ylcbost.pfb
+lstbo LucidaSans-TypewriterBoldOblique <lstbo.pfb
+rylcr4 LucidaFax <ylcr4.pfb
+lfr LucidaFax <lfr.pfb
+rylcr4i LucidaFax-Italic <ylcr4i.pfb
+lfi LucidaFax-Italic <lfi.pfb
+rylcd4 LucidaFax-Demi <ylcd4.pfb
+lfd LucidaFax-Demi <lfd.pfb
+rylcd4i LucidaFax-DemiItalic <ylcd4i.pfb
+lfdi LucidaFax-DemiItalic <lfdi.pfb
+rylcrf LucidaBlackletter <ylcrf.pfb
+lbl LucidaBlackletter <lbl.pfb
+rylcrihw LucidaHandwriting-Italic <ylcrihw.pfb
+lbh LucidaHandwriting-Italic <lbh.pfb
+rylcris LucidaSans-Italic <ylcris.pfb
+lsi LucidaSans-Italic <lsi.pfb
+rylcriw LucidaCalligraphy-Italic <ylcriw.pfb
+lbc LucidaCalligraphy-Italic <lbc.pfb
+
+% Two random fonts CG donated to typography research at UMB.
+rcggr CgGarthGraphic <cggr.pfa
+rcggri CgGarthGraphicIt <cggri.pfa
+rcggb CgGarthGraphicBd <cggb.pfa
+rcggbi CgGarthGraphicBdIt <cggbi.pfa
+
+rcshr CgShannon <cshr.pfa
+rcshro CgShannonOb <cshro.pfa
+rcshb CgShannonBd <cshb.pfa
+rcshx CgShannonExBd <cshx.pfa
+
+% The same for 8r (new base encoding).
+bchbo8r CharterBT-Bold ".167 SlantFont " <bchb.pfa
+bchro8r CharterBT-Roman ".167 SlantFont " <bchr.pfa
+pbkdo8r Bookman-Demi ".167 SlantFont"
+pbklo8r Bookman-Light ".167 SlantFont"
+pncbo8r NewCenturySchlbk-Bold ".167 SlantFont"
+pncro8r NewCenturySchlbk-Roman ".167 SlantFont"
+pplbo8r Palatino-Bold ".167 SlantFont"
+putbo8r Utopia-Bold ".167 SlantFont " <putb8r.pfa
+putro8r Utopia-Regular ".167 SlantFont " <putr.pfa
+pagk8r AvantGarde-Book "TeXBase1Encoding ReEncodeFont" <8r.enc
+pagko8r AvantGarde-BookOblique "TeXBase1Encoding ReEncodeFont" <8r.enc
+pagd8r AvantGarde-Demi "TeXBase1Encoding ReEncodeFont" <8r.enc
+pagdo8r AvantGarde-DemiOblique "TeXBase1Encoding ReEncodeFont" <8r.enc
+pbkl8r Bookman-Light "TeXBase1Encoding ReEncodeFont" <8r.enc
+pbkli8r Bookman-LightItalic "TeXBase1Encoding ReEncodeFont" <8r.enc
+pbkd8r Bookman-Demi "TeXBase1Encoding ReEncodeFont" <8r.enc
+pbkdi8r Bookman-DemiItalic "TeXBase1Encoding ReEncodeFont" <8r.enc
+pcrr8r Courier "TeXBase1Encoding ReEncodeFont" <8r.enc
+pcrro8r Courier-Oblique "TeXBase1Encoding ReEncodeFont" <8r.enc
+pcrb8r Courier-Bold "TeXBase1Encoding ReEncodeFont" <8r.enc
+pcrbo8r Courier-BoldOblique "TeXBase1Encoding ReEncodeFont" <8r.enc
+phvr8r Helvetica "TeXBase1Encoding ReEncodeFont" <8r.enc
+phvro8r Helvetica-Oblique "TeXBase1Encoding ReEncodeFont" <8r.enc
+phvb8r Helvetica-Bold "TeXBase1Encoding ReEncodeFont" <8r.enc
+phvbo8r Helvetica-BoldOblique "TeXBase1Encoding ReEncodeFont" <8r.enc
+phvrrn8r Helvetica ".82 ExtendFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+phvron8r Helvetica-Oblique ".82 ExtendFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+phvbrn8r Helvetica-Bold ".82 ExtendFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+phvbon8r Helvetica-BoldOblique ".82 ExtendFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+pncr8r NewCenturySchlbk-Roman "TeXBase1Encoding ReEncodeFont" <8r.enc
+pncri8r NewCenturySchlbk-Italic "TeXBase1Encoding ReEncodeFont" <8r.enc
+pncb8r NewCenturySchlbk-Bold "TeXBase1Encoding ReEncodeFont" <8r.enc
+pncbi8r NewCenturySchlbk-BoldItalic "TeXBase1Encoding ReEncodeFont" <8r.enc
+pplr8r Palatino-Roman "TeXBase1Encoding ReEncodeFont" <8r.enc
+pplri8r Palatino-Italic "TeXBase1Encoding ReEncodeFont" <8r.enc
+pplro8r Palatino-Roman ".167 SlantFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+pplb8r Palatino-Bold "TeXBase1Encoding ReEncodeFont" <8r.enc
+pplbi8r Palatino-BoldItalic "TeXBase1Encoding ReEncodeFont" <8r.enc
+pplbu8r Palatino-BoldItalic "-.1763 SlantFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+pplru8r Palatino-Italic "-.1763 SlantFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+pplrrn8r Palatino-Roman ".82 ExtendFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+pplrre8r Palatino-Roman "1.2 ExtendFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmr8r Times-Roman "TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmri8r Times-Italic "TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmro8r Times-Roman ".167 SlantFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmb8r Times-Bold "TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmbi8r Times-BoldItalic "TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmbo8r Times-Bold ".167 SlantFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmrrn8r Times-Roman ".8 ExtendFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmrre8r Times-Roman "1.2 ExtendFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+pzcmi8r ZapfChancery-MediumItalic "TeXBase1Encoding ReEncodeFont" <8r.enc
+putr8r Utopia-Regular <putr.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+putri8r Utopia-Italic <putri.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+putb8r Utopia-Bold <putb.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+putbi8r Utopia-BoldItalic <putbi.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+bchr8r CharterBT-Roman <bchr.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+bchri8r CharterBT-Italic <bchri.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+bchb8r CharterBT-Bold <bchb.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+bchbi8r CharterBT-BoldItalic <bchbi.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+uaqrrc8r URWAntiquaT-RegularCondensed <uaqrrc.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+ugqb8r URWGroteskT-Bold <ugqb.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+unmr8r NimbusRomanNo9L-Regular <unmr.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+unmrs8r NimbusSansL-Regular <unmrs.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+paab8r Aachen-Bold <paab.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+padr8r AGaramond-Regular <padr.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+padri8r AGaramond-Italic <padri.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pads8r AGaramond-Semibold <pads.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+padsi8r AGaramond-SemiboldItalic <padsi.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+padb8r AGaramond-Bold <padb.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+padbi8r AGaramond-BoldItalic <padbi.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+padrd8r AGaramond-Titling <padrd.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+padrx8r AGaramondExp-Regular <padrx.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+padrix8r AGaramondExp-Italic <padrix.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+padsx8r AGaramondExp-Semibold <padsx.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+padbx8r AGaramondExp-Bold <padbx.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+padbix8r AGaramondExp-BoldItalic <padbix.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pbdr8r Bodoni <pbdr.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pbdri8r Bodoni-Italic <pbdri.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pbdb8r Bodoni-Bold <pbdb.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pbdbi8r Bodoni-BoldItalic <pbdbi.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pbdp8r Bodoni-Poster <pbdp.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pburw8r BrushScript <pburw.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pc5r8r CaslonFiveForty-Roman <pc5r.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pc5ri8r CaslonFiveForty-Italic <pc5ri.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pc3r8r CaslonThree-Roman <pc3r.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pc3ri8r CaslonThree-Italic <pc3ri.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+phvrrc8r Helvetica-Condensed <phvrrc.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+phvroc8r Helvetica-Condensed-Oblique <phvroc.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+phvbrc8r Helvetica-Condensed-Bold <phvbrc.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+phvboc8r Helvetica-Condensed-BoldObl <phvboc.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pubr8r BauerBodoni-Roman <pubr.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pubri8r BauerBodoni-Italic <pubri.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pubb8r BauerBodoni-Bold <pubb.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pubbi8r BauerBodoni-BoldItalic <pubbi.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plbk8r LubalinGraph-Book <plbk.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plbko8r LubalinGraph-BookOblique <plbko.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plbd8r LubalinGraph-Demi <plbd.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plbdo8r LubalinGraph-DemiOblique <plbdo.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+psvl8r Souvenir-Light <psvl.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+psvli8r Souvenir-LightItalic <psvli.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+psvd8r Souvenir-Demi <psvd.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+psvdi8r Souvenir-DemiItalic <psvdi.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+phbr8r Hobo <phbr.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+pslr8r Stencil <pslr.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcr8r Lucida <plcr.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcri8r Lucida-Italic <plcri.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcro8r Lucida <plcr.pfa ".167 SlantFont" "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcb8r Lucida-Bold <plcb.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcbi8r Lucida-BoldItalic <plcbi.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcrs8r LucidaSans <plcrs.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcris8r LucidaSans-Italic <plcris.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcbs8r LucidaSans-Bold <plcbs.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcbis8r LucidaSans-BoldItalic <plcbis.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcrb8r LucidaBrightNormal <plcrb.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcrbi8r LucidaBrightItalic <plcrbi.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcbb8r LucidaBrightBold <plcbb.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcrst8r LucidaSansTypNormal <plcrst.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcrm8r LucidaMath-Italic <plcrm.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcrv8r LucidaMath-Extension <plcrv.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+plcry8r LucidaMath-Symbol <plcry.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylhr8r LucidaBright <ylhr.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylhri8r LucidaBright-Italic <ylhri.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylhro8r LucidaBright-Oblique <ylhro.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylhd8r LucidaBright-Demi <ylhd.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylhdi8r LucidaBright-DemiItalic <ylhdi.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcrs8r LucidaSans <ylcrs.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcds8r LucidaSans-Demi <ylcds.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcdis8r LucidaSans-DemiItalic <ylcdis.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcrst8r LucidaSans-Typewriter <ylcrst.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcrost8r LucidaSans-TypewriterOblique <ylcrost.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcbst8r LucidaSans-TypewriterBold <ylcbst.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcbost8r LucidaSans-TypewriterBoldOblique <ylcbost.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcr48r LucidaFax <ylcr4.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcr4i8r LucidaFax-Italic <ylcr4i.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcd48r LucidaFax-Demi <ylcd4.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcd4i8r LucidaFax-DemiItalic <ylcd4i.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcrf8r LucidaBlackletter <ylcrf.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcrihw8r LucidaHandwriting-Italic <ylcrihw.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcris8r LucidaSans-Italic <ylcris.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+ylcriw8r LucidaCalligraphy-Italic <ylcriw.pfb "TeXBase1Encoding ReEncodeFont" <8r.enc
+cggr8r CgGarthGraphic <cggr.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+cggri8r CgGarthGraphicIt <cggri.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+cggb8r CgGarthGraphicBd <cggb.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+cggbi8r CgGarthGraphicBdIt <cggbi.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+cshr8r CgShannon <cshr.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+cshro8r CgShannonOb <cshro.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+cshb8r CgShannonBd <cshb.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+cshx8r CgShannonExBd <cshx.pfa "TeXBase1Encoding ReEncodeFont" <8r.enc
+
+% The same for 0 (old lwnfss).
+pagk0 AvantGarde-Book
+pagko0 AvantGarde-BookOblique
+pagd0 AvantGarde-Demi
+pagdo0 AvantGarde-DemiOblique
+pbkl0 Bookman-Light
+pbkli0 Bookman-LightItalic
+pbklo0 Bookman-Light ".167 SlantFont"
+pbkd0 Bookman-Demi
+pbkdi0 Bookman-DemiItalic
+pbkdo0 Bookman-Demi ".167 SlantFont"
+pcrr0 Courier
+pcrro0 Courier-Oblique
+pcrb0 Courier-Bold
+pcrbo0 Courier-BoldOblique
+phvr0 Helvetica
+phvro0 Helvetica-Oblique
+phvb0 Helvetica-Bold
+phvbo0 Helvetica-BoldOblique
+phvrrn0 Helvetica ".82 ExtendFont"
+phvron0 Helvetica-Oblique ".82 ExtendFont"
+phvbrn0 Helvetica-Bold ".82 ExtendFont"
+phvbon0 Helvetica-BoldOblique ".82 ExtendFont"
+pncr0 NewCenturySchlbk-Roman
+pncri0 NewCenturySchlbk-Italic
+pncro0 NewCenturySchlbk-Roman ".167 SlantFont"
+pncb0 NewCenturySchlbk-Bold
+pncbi0 NewCenturySchlbk-BoldItalic
+pncbo0 NewCenturySchlbk-Bold ".167 SlantFont"
+pplr0 Palatino-Roman
+pplri0 Palatino-Italic
+pplro0 Palatino-Roman ".167 SlantFont"
+pplb0 Palatino-Bold
+pplbi0 Palatino-BoldItalic
+pplbo0 Palatino-Bold ".167 SlantFont"
+pplbu0 Palatino-BoldItalic "-.1763 SlantFont"
+pplru0 Palatino-Italic "-.1763 SlantFont"
+pplrrn0 Palatino-Roman ".82 ExtendFont"
+pplrre0 Palatino-Roman "1.2 ExtendFont"
+ptmr0 Times-Roman
+ptmri0 Times-Italic
+ptmro0 Times-Roman ".167 SlantFont"
+ptmb0 Times-Bold
+ptmbi0 Times-BoldItalic
+ptmbo0 Times-Bold ".167 SlantFont"
+ptmrrn0 Times-Roman ".8 ExtendFont"
+ptmrre0 Times-Roman "1.2 ExtendFont"
+pzcmi0 ZapfChancery-MediumItalic
+putr0 Utopia-Regular <putr.pfa
+putri0 Utopia-Italic <putri.pfa
+putro0 Utopia-Regular ".167 SlantFont " <putr.pfa
+putb0 Utopia-Bold <putb.pfa
+putbi0 Utopia-BoldItalic <putbi.pfa
+putbo0 Utopia-Bold ".167 SlantFont " <putb.pfa
+bchr0 CharterBT-Roman <bchr.pfb
+bchri0 CharterBT-Italic <bchri.pfb
+bchro0 CharterBT-Roman ".167 SlantFont " <bchr.pfa
+bchb0 CharterBT-Bold <bchb.pfb
+bchbi0 CharterBT-BoldItalic <bchbi.pfb
+bchbo0 CharterBT-Bold ".167 SlantFont " <bchb.pfa
+uaqrrc0 URWAntiquaT-RegularCondensed <uaqrrc.pfa
+ugqb0 URWGroteskT-Bold <ugqb.pfa
+unmr0 NimbusRomanNo9L-Regular <unmr.pfa
+unmrs0 NimbusSansL-Regular <unmrs.pfa
+paab0 Aachen-Bold <paab.pfa
+padr0 AGaramond-Regular <padr.pfa
+padri0 AGaramond-Italic <padri.pfa
+pads0 AGaramond-Semibold <pads.pfa
+padsi0 AGaramond-SemiboldItalic <padsi.pfa
+padb0 AGaramond-Bold <padb.pfa
+padbi0 AGaramond-BoldItalic <padbi.pfa
+padrd0 AGaramond-Titling <padrd.pfa
+padrx0 AGaramondExp-Regular <padrx.pfa
+padrix0 AGaramondExp-Italic <padrix.pfa
+padsx0 AGaramondExp-Semibold <padsx.pfa
+padbx0 AGaramondExp-Bold <padbx.pfa
+padbix0 AGaramondExp-BoldItalic <padbix.pfa
+pbdr0 Bodoni <pbdr.pfa
+pbdri0 Bodoni-Italic <pbdri.pfa
+pbdb0 Bodoni-Bold <pbdb.pfa
+pbdbi0 Bodoni-BoldItalic <pbdbi.pfa
+pbdp0 Bodoni-Poster <pbdp.pfa
+pburw0 BrushScript <pburw.pfa
+pc5r0 CaslonFiveForty-Roman <pc5r.pfa
+pc5ri0 CaslonFiveForty-Italic <pc5ri.pfa
+pc3r0 CaslonThree-Roman <pc3r.pfa
+pc3ri0 CaslonThree-Italic <pc3ri.pfa
+phvrrc0 Helvetica-Condensed <phvrrc.pfa
+phvroc0 Helvetica-Condensed-Oblique <phvroc.pfa
+phvbrc0 Helvetica-Condensed-Bold <phvbrc.pfa
+phvboc0 Helvetica-Condensed-BoldObl <phvboc.pfa
+pubr0 BauerBodoni-Roman <pubr.pfa
+pubri0 BauerBodoni-Italic <pubri.pfa
+pubb0 BauerBodoni-Bold <pubb.pfa
+pubbi0 BauerBodoni-BoldItalic <pubbi.pfa
+plbk0 LubalinGraph-Book <plbk.pfa
+plbko0 LubalinGraph-BookOblique <plbko.pfa
+plbd0 LubalinGraph-Demi <plbd.pfa
+plbdo0 LubalinGraph-DemiOblique <plbdo.pfa
+psvl0 Souvenir-Light <psvl.pfa
+psvli0 Souvenir-LightItalic <psvli.pfa
+psvd0 Souvenir-Demi <psvd.pfa
+psvdi0 Souvenir-DemiItalic <psvdi.pfa
+phbr0 Hobo <phbr.pfa
+pslr0 Stencil <pslr.pfa
+plcr0 Lucida <plcr.pfa
+plcri0 Lucida-Italic <plcri.pfa
+plcro0 Lucida <plcr.pfa ".167 SlantFont"
+plcb0 Lucida-Bold <plcb.pfa
+plcbi0 Lucida-BoldItalic <plcbi.pfa
+plcrs0 LucidaSans <plcrs.pfa
+plcris0 LucidaSans-Italic <plcris.pfa
+plcbs0 LucidaSans-Bold <plcbs.pfa
+plcbis0 LucidaSans-BoldItalic <plcbis.pfa
+plcrb0 LucidaBrightNormal <plcrb.pfa
+plcrbi0 LucidaBrightItalic <plcrbi.pfa
+plcbb0 LucidaBrightBold <plcbb.pfa
+plcrst0 LucidaSansTypNormal <plcrst.pfa
+plcrm0 LucidaMath-Italic <plcrm.pfa
+plcrv0 LucidaMath-Extension <plcrv.pfa
+plcry0 LucidaMath-Symbol <plcry.pfa
+ylhr0 LucidaBright <ylhr.pfb
+ylhri0 LucidaBright-Italic <ylhri.pfb
+ylhro0 LucidaBright-Oblique <ylhro.pfb
+ylhd0 LucidaBright-Demi <ylhd.pfb
+ylhdi0 LucidaBright-DemiItalic <ylhdi.pfb
+ylcrs0 LucidaSans <ylcrs.pfb
+ylcds0 LucidaSans-Demi <ylcds.pfb
+ylcdis0 LucidaSans-DemiItalic <ylcdis.pfb
+ylcrst0 LucidaSans-Typewriter <ylcrst.pfb
+ylcrost0 LucidaSans-TypewriterOblique <ylcrost.pfb
+ylcbst0 LucidaSans-TypewriterBold <ylcbst.pfb
+ylcbost0 LucidaSans-TypewriterBoldOblique <ylcbost.pfb
+ylcr40 LucidaFax <ylcr4.pfb
+ylcr4i0 LucidaFax-Italic <ylcr4i.pfb
+ylcd40 LucidaFax-Demi <ylcd4.pfb
+ylcd4i0 LucidaFax-DemiItalic <ylcd4i.pfb
+ylcrf0 LucidaBlackletter <ylcrf.pfb
+ylcrihw0 LucidaHandwriting-Italic <ylcrihw.pfb
+ylcris0 LucidaSans-Italic <ylcris.pfb
+ylcriw0 LucidaCalligraphy-Italic <ylcriw.pfb
+cggr0 CgGarthGraphic <cggr.pfa
+cggri0 CgGarthGraphicIt <cggri.pfa
+cggb0 CgGarthGraphicBd <cggb.pfa
+cggbi0 CgGarthGraphicBdIt <cggbi.pfa
+cshr0 CgShannon <cshr.pfa
+cshro0 CgShannonOb <cshro.pfa
+cshb0 CgShannonBd <cshb.pfa
+cshx0 CgShannonExBd <cshx.pfa
+
+%
+% Local variables:
+% page-delimiter: "^% \f"
+% End:
diff --git a/Build/source/texk/dvipsk/ptexmac.h b/Build/source/texk/dvipsk/ptexmac.h
new file mode 100644
index 00000000000..fc76a316231
--- /dev/null
+++ b/Build/source/texk/dvipsk/ptexmac.h
@@ -0,0 +1,189 @@
+/*
+Copyright (c) 1996-2012 Han The Thanh, <thanh@pdftex.org>
+
+This file is part of pdfTeX.
+
+pdfTeX 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.
+
+pdfTeX 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 pdfTeX; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+$Id: //depot/Build/source.development/TeX/texk/web2c/pdftexdir/ptexmac.h#18 $
+*/
+
+#ifndef PDFTEXMAC
+#define PDFTEXMAC
+
+#ifdef WIN32
+// Why relying on gmalloc() ???
+#define gmalloc(n) xmalloc(n)
+#define gfree(p) free(p)
+#define inline __inline
+#define srandom(n) srand(n)
+#define random() rand()
+#endif
+
+/* Pascal WEB macros */
+#define maxinteger 0x7FFFFFFF
+#define maxdimen 0x3FFFFFFF
+
+#define objinfo(n) objtab[n].int0
+
+#define pdfroom(n) do { \
+ if (pdfbufsize < n) \
+ pdftex_fail("PDF output buffer overflowed"); \
+ if (pdfptr + n > pdfbufsize) \
+ pdfflush(); \
+} while (0)
+
+#define pdfout(c) do { \
+ if (pdfptr > pdfbufsize) \
+ pdfflush(); \
+ pdfbuf[pdfptr++] = c; \
+} while (0)
+
+#define pdfoffset() (pdfgone + pdfptr)
+#define pdfinitfont(f) {tmpf = f; pdfcreatefontobj();}
+
+#define MAX_CHAR_CODE 255
+
+#define PRINTF_BUF_SIZE 1024
+#define MAX_CSTRING_LEN 1024
+#define MAX_PSTRING_LEN 1024
+#define SMALL_BUF_SIZE 256
+#define SMALL_ARRAY_SIZE 256
+#define FONTNAME_BUF_SIZE 128 /* a PDF name can be maximum 127 chars long */
+
+#define check_buf(size, buf_size) \
+ if ((size) > (buf_size)) \
+ pdftex_fail("buffer overflow", (buf_size))
+
+#define append_char_to_buf(c, p, buf, buf_size) do { \
+ if (c == 9) \
+ c = 32; \
+ if (c == 13 || c == EOF) \
+ c = 10; \
+ if (c != ' ' || (p > buf && p[-1] != 32)) { \
+ check_buf(p - buf + 1, (buf_size)); \
+ *p++ = c; \
+ } \
+} while (0)
+
+#define append_eol(p, buf, buf_size) do { \
+ check_buf(p - buf + 2, (buf_size)); \
+ if (p - buf > 1 && p[-1] != 10) \
+ *p++ = 10; \
+ if (p - buf > 2 && p[-2] == 32) { \
+ p[-2] = 10; \
+ p--; \
+ } \
+ *p = 0; \
+} while (0)
+
+#define remove_eol(p, buf) do { \
+ p = strend(buf) - 1; \
+ if (*p == 10) \
+ *p = 0; \
+} while (0)
+
+#define skip(p, c) if (*p == c) p++
+
+#define alloc_array(T, n, s) do { \
+ if (T##_array == NULL) { \
+ T##_limit = (s); \
+ if ((n) > T##_limit) \
+ T##_limit = (n); \
+ T##_array = xtalloc(T##_limit, T##_entry); \
+ T##_ptr = T##_array; \
+ } \
+ else if (T##_ptr - T##_array + (n) > T##_limit) { \
+ last_ptr_index = T##_ptr - T##_array; \
+ T##_limit *= 2; \
+ if (T##_ptr - T##_array + (n) > T##_limit) \
+ T##_limit = T##_ptr - T##_array + (n); \
+ xretalloc(T##_array, T##_limit, T##_entry); \
+ T##_ptr = T##_array + last_ptr_index; \
+ } \
+} while (0)
+
+#define is_cfg_comment(c) \
+ (c == 10 || c == '*' || c == '#' || c == ';' || c == '%')
+
+#define define_array(T) \
+T##_entry *T##_ptr, *T##_array = NULL; \
+size_t T##_limit
+
+#define xfree(p) do { if (p != NULL) free(p); p = NULL; } while (0)
+#define strend(s) strchr(s, 0)
+#define xtalloc XTALLOC
+#define xretalloc XRETALLOC
+
+#define ASCENT_CODE 0
+#define CAPHEIGHT_CODE 1
+#define DESCENT_CODE 2
+#define FONTNAME_CODE 3
+#define ITALIC_ANGLE_CODE 4
+#define STEMV_CODE 5
+#define XHEIGHT_CODE 6
+#define FONTBBOX1_CODE 7
+#define FONTBBOX2_CODE 8
+#define FONTBBOX3_CODE 9
+#define FONTBBOX4_CODE 10
+#define MAX_KEY_CODE (FONTBBOX1_CODE + 1)
+#define FONT_KEYS_NUM (FONTBBOX4_CODE + 1)
+
+#define F_INCLUDED 0x01
+#define F_SUBSETTED 0x02
+#define F_TRUETYPE 0x04
+#define F_BASEFONT 0x08
+
+#define set_included(fm) ((fm)->type |= F_INCLUDED)
+#define set_subsetted(fm) ((fm)->type |= F_SUBSETTED)
+#define set_truetype(fm) ((fm)->type |= F_TRUETYPE)
+#define set_basefont(fm) ((fm)->type |= F_BASEFONT)
+
+#define unset_included(fm) ((fm)->type &= ~F_INCLUDED)
+#define unset_subsetted(fm) ((fm)->type &= ~F_SUBSETTED)
+#define unset_truetype(fm) ((fm)->type &= ~F_TRUETYPE)
+#define unset_basefont(fm) ((fm)->type &= ~F_BASEFONT)
+
+#define unset_fontfile(fm) xfree((fm)->ff_name)
+
+#define is_included(fm) ((fm)->type & F_INCLUDED)
+#define is_subsetted(fm) ((fm)->type & F_SUBSETTED)
+#define is_truetype(fm) ((fm)->type & F_TRUETYPE)
+#define is_basefont(fm) ((fm)->type & F_BASEFONT)
+#define no_font_desc(fm) (is_basefont(fm) && !is_included(fm))
+
+#define fm_slant(fm) (fm)->slant
+#define fm_extend(fm) (fm)->extend
+#define fm_fontfile(fm) (fm)->ff_name
+
+#define is_reencoded(fm) ((fm)->encoding != NULL)
+#define is_fontfile(fm) (fm_fontfile(fm) != NULL)
+#define is_t1fontfile(fm) (is_fontfile(fm) && !is_truetype(fm))
+
+#define LINK_TFM 0x01
+#define LINK_PS 0x02
+#define set_tfmlink(fm) ((fm)->links |= LINK_TFM)
+#define set_pslink(fm) ((fm)->links |= LINK_PS)
+#define unset_tfmlink(fm) ((fm)->links &= ~LINK_TFM)
+#define unset_pslink(fm) ((fm)->links &= ~LINK_PS)
+#define has_tfmlink(fm) ((fm)->links & LINK_TFM)
+#define has_pslink(fm) ((fm)->links & LINK_PS)
+
+
+#define set_cur_file_name(s) \
+ cur_file_name = s; \
+ packfilename(maketexstring(cur_file_name), getnullstr(), getnullstr())
+
+#endif /* PDFTEXMAC */
diff --git a/Build/source/texk/dvipsk/quotecmd-test.pl b/Build/source/texk/dvipsk/quotecmd-test.pl
new file mode 100755
index 00000000000..47ea252d037
--- /dev/null
+++ b/Build/source/texk/dvipsk/quotecmd-test.pl
@@ -0,0 +1,34 @@
+#!/usr/bin/env perl
+# $Id$
+# Public domain. Originally written 2010, Karl Berry.
+# Check that dvips quotes external command arguments.
+
+BEGIN { chomp ($srcdir = $ENV{"srcdir"} || `dirname $0`); }
+require "$srcdir/../tests/common-test.pl";
+
+exit (&main ());
+
+sub main
+{
+ # create the weirdly-named file which dvips executes with popen.
+ # quotecmd.tex also creates it, but we don't want to run TeX in
+ # this test, nor do we want such a weirdly-named file in our
+ # repository, so create it here. The names here and in quotecmd.tex
+ # must match exactly or the test won't be testing what it should.
+ #
+ # Leave the file in place, so we can conveniently run dvips under the
+ # debugger if we need to.
+ my $weirdf = ' 2>&1 | echo badnews >pwned.txt #.gz';
+ unlink ($weirdf); # ensure no leftover
+ open (WEIRDF, ">", $weirdf);
+ close (WEIRDF) || die "open(weird file name) failed: $!";
+
+ $badfile = "pwned.txt"; # will be created if program is broken
+ unlink ($badfile); # ensure no leftover from previous test
+
+ my @args = ("$srcdir/testdata/quotecmd.dvi", qw(-o /dev/null));
+ my $ret = &test_run ("./dvips", @args);
+
+ my $bad = -f $badfile; # file should not have been created
+ return $bad;
+}
diff --git a/Build/source/texk/dvipsk/repack.c b/Build/source/texk/dvipsk/repack.c
new file mode 100644
index 00000000000..631be16e4f6
--- /dev/null
+++ b/Build/source/texk/dvipsk/repack.c
@@ -0,0 +1,448 @@
+/*
+ * Compressed TeX fonts in PostScript.
+ * By Radical Eye Software.
+ * (Slight mods by Don Knuth in December 89.)
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+/* Given a raster that has been unpacked from PK format,
+ * we compress it by another scheme that is suitable for
+ * a PostScript-oriented unpacking. We write instructions for
+ * a little interpreter whose one-byte instructions have the form
+ * 18*opcode+parameter. The interpreter forms each row based
+ * on simple transformations to the previous row. */
+
+#define MAXOUT (18)
+#define CMD(n) (MAXOUT*(n))
+#define ADVXCHG1 CMD(0)
+#define ADVXCHG1END CMD(1)
+#define CHGX CMD(2)-1
+#define CHGXEND CMD(3)-1
+#define ADVXLSH CMD(4)
+#define ADVXLSHEND CMD(5)
+#define ADVXRSH CMD(6)
+#define ADVXRSHEND CMD(7)
+#define ADVX CMD(8)-1
+#define REPX CMD(9)-1
+#define SETX CMD(10)-1
+#define CLRX CMD(11)-1
+#define ADVXCHG2 CMD(12)
+#define ADVXCHG2END CMD(13)
+#define END CMD(14)
+
+static int rowlength = -1;
+static unsigned char *specdata;
+static long tslen = 0;
+static unsigned char *tempstore, *tsp, *tsend;
+
+static void
+putlong(register char *a, long i)
+{
+ a[0] = i >> 24;
+ a[1] = i >> 16;
+ a[2] = i >> 8;
+ a[3] = i;
+}
+
+long
+getlong(register unsigned char *a)
+{
+ return ((((((a[0] << 8L) + a[1]) << 8L) + a[2]) << 8L) + a[3]);
+}
+
+/* First, a routine that appends one byte to the compressed output. */
+
+#define addtse(n) {lcm=tsp-tempstore;addts(n);} /* mark END option position */
+
+static void
+addts(register unsigned char what)
+{
+ register unsigned char *p, *q;
+
+ if (tsp >= tsend) {
+ if (tempstore == NULL) {
+ tslen = 2020;
+ tempstore = (unsigned char *)mymalloc((integer)tslen);
+ tsp = tempstore;
+ } else {
+ tslen = 2 * tslen;
+ tsp = (unsigned char *)mymalloc((integer)tslen);
+ for (p=tempstore, q=tsp; p<tsend; p++, q++)
+ *q = *p;
+ free((char *)tempstore);
+ tempstore = tsp;
+ tsp = q;
+ }
+ tsend = tempstore + tslen;
+ }
+ *tsp++ = what;
+}
+
+/* Next, a routine that discovers how to do the compression. */
+
+#define rsh(a,b) ( ((a)==0) ? ((b)==128) : ( ((a)==255) ? ((b)==127) :\
+ ((b)==(((a)>>1)|((a)&128))) ))
+#define lsh(a,b) ( ((a)==0) ? ((b)==1) : ( ((a)==255) ? ((b)==254) :\
+ ((b)==((((a)<<1)&255)|((a)&1))) ))
+#define DIFFERENT (1)
+#define LSHPOSSIB (2)
+#define RSHPOSSIB (4)
+#define BLKPOSSIB (8)
+#define WHTPOSSIB (16)
+#define ENDROW (32)
+#define NOPOSSIB(n) ((n&(LSHPOSSIB|RSHPOSSIB|BLKPOSSIB|WHTPOSSIB))==0)
+#define NOSHIFT(n) ((n&(LSHPOSSIB|RSHPOSSIB))==0)
+/*
+ * Our input bytes are packed to the 16-bit word. On output,
+ * they're packed to bytes. Thus, we may have to skip a byte at
+ * the end of each row.
+ */
+void
+dochar(unsigned char *from, short width, short height)
+{
+ register int i;
+ register unsigned char *f, *t, *d;
+ register unsigned char *e;
+ register int accum;
+ int j, k, kk;
+ int diffrow;
+ int repeatcount;
+ int lit, pos, cmd = 0;
+ long lcm;
+ int widthc;
+
+ widthc = width + (width & 1); /* halfword correction */
+ lcm = -1;
+ if (widthc > rowlength) {
+ if (rowlength > 0)
+ free((char *)specdata);
+ rowlength = widthc + 30;
+ specdata = (unsigned char *)mymalloc((integer)(rowlength + 15));
+ }
+ for (i= -15, t=specdata; i<=widthc; i++, t++)
+ *t = 0;
+ repeatcount = 0;
+ f = specdata + 2;
+ for (j=0; j<height; j++, f = from, from += widthc) {
+ diffrow = 0;
+ for (i=0, t=from, d=specdata; i<width; i++, f++, t++, d++) {
+ if (*f == *t) {
+ if (*t == 0)
+ *d = WHTPOSSIB;
+ else if (*t == 255)
+ *d = BLKPOSSIB;
+ else
+ *d = 0;
+ } else {
+ accum = DIFFERENT;
+ if (rsh(*f, *t))
+ accum |= RSHPOSSIB;
+ else if (lsh(*f, *t))
+ accum |= LSHPOSSIB;
+ if (*t == 0)
+ accum |= WHTPOSSIB;
+ else if (*t == 255)
+ accum |= BLKPOSSIB;
+ *d = accum;
+ diffrow++;
+ }
+ } /* end 'for i' */
+ *d = ENDROW;
+ if (diffrow == 0) {
+ repeatcount++;
+ } else {
+ if (repeatcount) {
+ while (repeatcount > MAXOUT) {
+ addts((unsigned char)(REPX+MAXOUT));
+ repeatcount -= MAXOUT;
+ }
+ addts((unsigned char)(REPX+repeatcount));
+ repeatcount = 0;
+ }
+ pos = 0;
+ for (i=0, d=specdata, f=t-width; i<width;) {
+ if ((*d & DIFFERENT) == 0) {
+ i++;
+ d++;
+ f++;
+ } else {
+ accum = 0;
+ if (pos != i)
+ lit = NOSHIFT(*d);
+ else /* N.B.: 'lit' does not imply literate programming here */
+ lit = NOPOSSIB(*d);
+ for (e=d;;e++) {
+ if (NOPOSSIB(*e))
+ lit = 1;
+ if ((*e & DIFFERENT) == 0)
+ break;
+ if ((*e & WHTPOSSIB) &&
+ (e[1] & WHTPOSSIB)) {
+ while (*e & WHTPOSSIB) {
+ e++;
+ accum++;
+ }
+ cmd = CLRX;
+ e -= accum;
+ break;
+ } else if ((*e & BLKPOSSIB) &&
+ (e[1] & BLKPOSSIB)) {
+ while (*e & BLKPOSSIB) {
+ e++;
+ accum++;
+ }
+ cmd = SETX;
+ e -= accum;
+ break;
+ }
+ } /* end 'for e'; d pts to first bad byte, e to next good one */
+ while (i - pos > MAXOUT) {
+ addts((unsigned char)(ADVX+MAXOUT));
+ pos += MAXOUT;
+ }
+ if (0 != (k = (e - d))) {
+ if (lit) {
+ if (k > 2) {
+ if (i > pos) {
+ addts((unsigned char)(ADVX + i - pos));
+ pos = i;
+ }
+ while (k > MAXOUT) {
+ addts((unsigned char)(CHGX + MAXOUT));
+ for (kk=0; kk<MAXOUT; kk++)
+ addts((unsigned char)(*f++));
+ d += MAXOUT;
+ pos += MAXOUT;
+ i += MAXOUT;
+ k -= MAXOUT;
+ }
+ addtse((unsigned char)(CHGX + k));
+ pos += k;
+ for (; d<e; d++, i++, f++)
+ addts((unsigned char)(*f));
+ } else {
+ if (k == 1) {
+ if (i == pos+MAXOUT) {
+ addts((unsigned char)(ADVX + MAXOUT));
+ pos = i;
+ }
+ addtse((unsigned char)(ADVXCHG1 + i - pos));
+ addts((unsigned char)(*f));
+ i++;
+ pos = i;
+ d++;
+ f++;
+ } else {
+ if (i == pos+MAXOUT) {
+ addts((unsigned char)(ADVX + MAXOUT));
+ pos = i;
+ }
+ addtse((unsigned char)(ADVXCHG2 + i - pos));
+ addts((unsigned char)(*f));
+ addts((unsigned char)(f[1]));
+ i += 2;
+ pos = i;
+ d += 2;
+ f += 2;
+ }
+ }
+ } else {
+ while (e > d) {
+ if (*d & LSHPOSSIB) {
+ if (i == pos+MAXOUT) {
+ addts((unsigned char)(ADVX + MAXOUT));
+ pos = i;
+ }
+ addtse((unsigned char)(ADVXLSH + i - pos));
+ } else if (*d & RSHPOSSIB) {
+ if (i == pos+MAXOUT) {
+ addts((unsigned char)(ADVX + MAXOUT));
+ pos = i;
+ }
+ addtse((unsigned char)(ADVXRSH + i - pos));
+ } else if (*d & WHTPOSSIB) { /* i==pos */
+ addts((unsigned char)(CLRX + 1)); lcm = -1;
+ } else if (*d & BLKPOSSIB) { /* i==pos */
+ addts((unsigned char)(SETX + 1)); lcm = -1;
+ } else
+ error("! bug"); /* why wasn't lit true? */
+ d++;
+ f++;
+ i++;
+ pos = i;
+ } /* end 'while e>d' */
+ }
+ } /* end 'if e>d' */
+ if (accum > 0) {
+ if (i > pos) {
+ addts((unsigned char)(ADVX + i - pos));
+ pos = i;
+ }
+ i += accum;
+ d += accum;
+ f += accum;
+ while (accum > MAXOUT) {
+ addts((unsigned char)(cmd + MAXOUT));
+ accum -= MAXOUT;
+ pos += MAXOUT;
+ }
+ lcm = -1;
+ addts((unsigned char)(cmd + accum));
+ pos += accum;
+ }
+ } /* end 'else DIFFERENT' */
+ } /* end 'for i' */
+ if (lcm != -1) {
+ tempstore[lcm] += MAXOUT; /* append END */
+ lcm = -1;
+ } else {
+ addts((unsigned char)(END));
+ }
+ } /* end 'else rows different' */
+#ifdef DEBUG
+ if (d != specdata + width)
+ error("! internal inconsistency in repack");
+#endif
+ } /* end 'for j' */
+ if (repeatcount) {
+ while (repeatcount > MAXOUT) {
+ addts((unsigned char)(REPX+MAXOUT));
+ repeatcount -= MAXOUT;
+ }
+ addts((unsigned char)(REPX+repeatcount));
+ repeatcount = 0;
+ }
+}
+
+long mbytesleft;
+quarterword *mraster;
+
+static char *
+makecopy(register unsigned char *what,
+ register long len,
+ register unsigned char *p)
+{
+ register unsigned char *q;
+
+ if (p == NULL) {
+ if (len > MINCHUNK)
+ p = (unsigned char *)mymalloc((integer)len);
+ else {
+ if (bytesleft < len) {
+ raster = (quarterword *)mymalloc((integer)RASTERCHUNK);
+ bytesleft = RASTERCHUNK;
+ }
+ p = (unsigned char *)raster;
+ bytesleft -= len;
+ raster += len;
+ }
+ }
+ q = p;
+ while (len > 0) {
+ *p++ = *what++;
+ len --;
+ }
+ return ((char *)q);
+}
+
+/* Now the main routine, which is called when a character is used
+ for the very first time. */
+void
+repack(register chardesctype *cp)
+{
+ register long i, j;
+ register unsigned char *p;
+ register int width, height;
+ register int wwidth;
+ char startbytes;
+ int smallchar;
+
+ p = cp->packptr;
+ if (p == NULL)
+ error("! no raster?");
+ tsp = tempstore;
+ tsend = tempstore + tslen;
+ addts(*p); /* copy the PK flag byte */
+ if (*p & 4) {
+ if ((*p & 7) == 7) {
+ startbytes = 17;
+ width = getlong(p + 1);
+ height = getlong(p + 5);
+ for (i=0; i<12; i++)
+ addts(*++p);
+ } else {
+ startbytes = 9;
+ width = p[1] * 256 + p[2];
+ height = p[3] * 256 + p[4];
+ addts(*++p);
+ addts(*++p);
+ addts(*++p);
+ addts(*++p);
+ }
+ } else {
+ startbytes = 5;
+ width = p[1];
+ height = p[2];
+ }
+ addts(*++p);
+ addts(*++p);
+ addts(*++p);
+ addts(*++p);
+ p++; /* OK, p now points to beginning of the nibbles */
+ addts((unsigned char)0);
+ addts((unsigned char)0);
+ addts((unsigned char)0);
+ addts((unsigned char)0); /* leave room to stick in a new length field */
+ wwidth = (width + 15) / 16;
+ i = 2 * height * (long)wwidth;
+ if (i <= 0)
+ i = 2;
+ if ((cp->flags & BIGCHAR) == 0)
+ smallchar = 5;
+ else
+ smallchar = 0;
+ i += smallchar;
+ if (mbytesleft < i) {
+ if (mbytesleft >= RASTERCHUNK)
+ (void) free((char *) mraster);
+ if (RASTERCHUNK > i) {
+ mraster = (quarterword *)mymalloc((integer)RASTERCHUNK);
+ mbytesleft = RASTERCHUNK;
+ } else {
+ i += i / 4;
+ mraster = (quarterword *)mymalloc((integer)(i + 3));
+ mbytesleft = i;
+ }
+ }
+ while (i > 0)
+ mraster[--i] = 0;
+ i = startbytes + unpack(p, (halfword *)mraster, (halfword)width,
+ (halfword)height, *(cp->packptr));
+ dochar(mraster, (short)((width + 7) >> 3), (short)height);
+ if (smallchar) {
+ addts((unsigned char)0);
+ addts((unsigned char)0);
+ addts((unsigned char)0);
+ addts((unsigned char)0);
+ addts((unsigned char)0);
+ }
+ j = tsp - tempstore;
+#ifdef DEBUG
+ if (dd(D_COMPRESS))
+ fprintf(stderr,"PK %ld bytes, unpacked %ld, compressed %ld\n",
+ i-(long)startbytes, (long)((width+7L)/8)*height, j-(long)startbytes-4);
+#endif /* DEBUG */
+ if ( i < j ) {
+ if (i > MINCHUNK)
+ free(cp->packptr);
+ cp->packptr =
+ (unsigned char *)makecopy(tempstore, j, (unsigned char *)0);
+ } else
+ makecopy(tempstore, j, (unsigned char *)cp->packptr);
+ putlong((char *)(cp->packptr+startbytes), j-startbytes-4-smallchar);
+ cp->flags |= REPACKED;
+}
diff --git a/Build/source/texk/dvipsk/resident.c b/Build/source/texk/dvipsk/resident.c
new file mode 100644
index 00000000000..8a9a04fc972
--- /dev/null
+++ b/Build/source/texk/dvipsk/resident.c
@@ -0,0 +1,1216 @@
+/* For use with emTeX set FONTPATH to "TEXTFM"
+ */
+#ifndef FONTPATH
+#define FONTPATH "TEXFONTS"
+#endif
+
+/*
+ * This code reads in and handles the defaults for the program from the
+ * file config.sw. This entire file is a bit kludgy, sorry.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#include "paths.h"
+#ifdef KPATHSEA
+#include <kpathsea/c-ctype.h>
+#include <kpathsea/c-pathch.h>
+#include <kpathsea/c-stat.h>
+#include <kpathsea/pathsearch.h>
+#include <kpathsea/tex-file.h>
+#include <kpathsea/variable.h>
+#endif
+/*
+ * This is the structure definition for resident fonts. We use
+ * a small and simple hash table to handle these. We don't need
+ * a big hash table.
+ */
+struct resfont *reshash[RESHASHPRIME];
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+/*
+ * To maintain a list of document fonts, we use the following
+ * pointer.
+ */
+struct header_list *ps_fonts_used;
+/*
+ * Our hash routine.
+ */
+unsigned int
+hash(char *s)
+{
+ unsigned int h = 12;
+
+ while (*s != 0)
+ h = (h + h + (unsigned char)(*s++)) % RESHASHPRIME;
+ return(h);
+}
+/*
+ * Reverse the hash chains.
+ */
+void
+revpslists(void) {
+ register int i;
+ for (i=0; i<RESHASHPRIME; i++)
+ reshash[i] = (struct resfont *)revlist(reshash[i]);
+}
+/*
+ * cleanres() marks all resident fonts as not being yet sent, except
+ * those marked with 2 meaning they were downloaded as part of the
+ * main prolog (not section prolog).
+ */
+void
+cleanres(void) {
+ register int i;
+ register struct resfont *p;
+ for (i=0; i<RESHASHPRIME; i++)
+ for (p=reshash[i]; p; p=p->next)
+ if (p->sent == 1)
+ p->sent = 0;
+}
+/*
+ * The routine that looks up a font name.
+ */
+struct resfont *
+lookup(char *name)
+{
+ struct resfont *p;
+
+ for (p=reshash[hash(name)]; p!=NULL; p=p->next)
+ if (strcmp(p->Keyname, name)==0)
+ return(p);
+ return(NULL);
+}
+
+struct resfont *
+findPSname(char *name)
+{
+ register int i;
+ register struct resfont *p;
+ for (i=0; i<RESHASHPRIME; i++)
+ for (p=reshash[i]; p; p=p->next) {
+ if (strcmp(p->PSname, name)==0)
+ return p;
+ }
+ return NULL;
+}
+
+/*
+ * This routine adds an entry.
+ */
+static void
+add_entry(char *TeXname, char *PSname, char *Fontfile,
+ char *Vectfile, char *specinfo, char *downloadinfo)
+{
+ struct resfont *p;
+ int h;
+ if (PSname == NULL)
+ PSname = TeXname;
+ p = (struct resfont *)mymalloc((integer)sizeof(struct resfont));
+ p->Keyname = TeXname;
+ p->PSname = PSname;
+ p->Fontfile = Fontfile;
+ p->Vectfile = Vectfile;
+ p->TeXname = TeXname;
+ p->specialinstructions = specinfo;
+ if (downloadinfo && *downloadinfo)
+ p->downloadheader = downloadinfo;
+ else
+ p->downloadheader = 0;
+ h = hash(TeXname);
+ p->next = reshash[h];
+ p->sent = 0;
+ reshash[h] = p;
+}
+/*
+ * Now our residentfont routine. Returns the number of characters in
+ * this font, based on the TFM file.
+ */
+int
+residentfont(register fontdesctype *curfnt)
+{
+ int i;
+ struct resfont *p;
+
+/*
+ * First we determine if we can find this font in the resident list.
+ */
+ if (*curfnt->area)
+ return 0; /* resident fonts never have a nonstandard font area */
+ if ((p=lookup(curfnt->name))==NULL)
+ return 0;
+/*
+ * This is not yet the correct way to do things, but it is useful as it
+ * is so we leave it in. The problem: if resident Times-Roman is
+ * re-encoded, then it will be downloaded as bitmaps; this is not
+ * right. The solution will be to introduce two types of `<'
+ * directives, one that downloads fonts and one that downloads
+ * short headers that are innocuous.
+ */
+ if (p->Fontfile && downloadpspk) {
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf_str(stderr,"Using PK font %s for <%s>.\n",
+ curfnt->name, p->PSname);
+#endif /* DEBUG */
+ return 0;
+ }
+/*
+ * We clear out some pointers:
+ */
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf_str(stderr,"Font %s <%s> is resident.\n",
+ curfnt->name, p->PSname);
+#endif /* DEBUG */
+ curfnt->resfont = p;
+ curfnt->name = p->TeXname;
+ for (i=0; i<256; i++) {
+ curfnt->chardesc[i].TFMwidth = 0;
+ curfnt->chardesc[i].packptr = NULL;
+ curfnt->chardesc[i].pixelwidth = 0;
+ curfnt->chardesc[i].flags = 0;
+ curfnt->chardesc[i].flags2 = 0;
+ }
+ add_name(p->PSname, &ps_fonts_used);
+/*
+ * We include the font here. But we only should need to include the
+ * font if we have a stupid spooler; smart spoolers should be able
+ * to supply it automatically.
+ */
+ if (p->downloadheader) {
+ char *cp = p->downloadheader;
+ char *q;
+
+ infont = p->PSname;
+ while (1) {
+ q = cp;
+ while (*cp && *cp != ' ')
+ cp++;
+ if (*cp) {
+ *cp = 0;
+ add_header(q);
+ *cp++ = ' ';
+ } else {
+/* if (strstr(q,".pfa")||strstr(q,".pfb")||
+ strstr(q,".PFA")||strstr(q,".PFB"))
+ break;
+ else */ {
+ add_header(q);
+ break;
+ }
+ }
+ infont = 0;
+ }
+ infont = 0;
+ }
+ i = tfmload(curfnt);
+ if (i < 0)
+ i = 1;
+ usesPSfonts = 1;
+ return(i);
+}
+#define INLINE_SIZE (2000)
+static char was_inline[INLINE_SIZE];
+static unsigned c_lineno;
+static void
+bad_config(const char *err)
+{
+ fprintf_str(stderr, "%s:%d:", realnameoffile, c_lineno);
+ error (err);
+ fprintf_str(stderr, " (%s)\n", was_inline);
+}
+
+#ifndef KPATHSEA
+/*
+ * Get environment variables! These override entries in ./config.h.
+ * We substitute everything of the form ::, ^: or :$ with default,
+ * so a user can easily build on to the existing paths.
+ */
+static char *
+getpath(char *who, char *what)
+{
+ if (who) {
+ register char *pp, *qq;
+ int lastsep = 1;
+
+ for (pp=nextstring, qq=who; *qq;) {
+ if (*qq == PATHSEP) {
+ if (lastsep) {
+ strcpy(pp, what);
+ pp = pp + strlen(pp);
+ }
+ lastsep = 1;
+ } else
+ lastsep = 0;
+ *pp++ = *qq++;
+ }
+ if (lastsep) {
+ strcpy(pp, what);
+ pp = pp + strlen(pp);
+ }
+ *pp = 0;
+ qq = nextstring;
+ nextstring = pp + 1;
+ return qq;
+ } else
+ return what;
+}
+#endif
+/*
+ * We use this function so we can support strings delimited by
+ * double quotes with spaces in them. We also accept strings
+ * with spaces in them, but kill off any spaces at the end.
+ */
+static char *
+configstring(char *s, int nullok)
+{
+ char tstr[INLINE_SIZE];
+ char *p = tstr;
+
+ while (*s && *s <= ' ')
+ s++;
+ if (*s == '"') {
+ s++;
+ while (*s != 10 && *s != 0 && *s != '"' && p < tstr+290)
+ *p++ = *s++;
+ } else {
+ while (*s && p < tstr+290)
+ *p++ = *s++;
+ while (*(p-1) <= ' ' && p > tstr)
+ p--;
+ }
+ *p = 0;
+ if (p == tstr && ! nullok)
+ bad_config("bad string");
+ return newstring(tstr);
+}
+#ifdef KPATHSEA
+/* We use this in `getdefaults' to modify the kpathsea structure for the
+ paths we read. See kpathsea/tex-file.[ch]. */
+#define SET_CLIENT_PATH(filefmt, val) \
+ kpse_format_info[filefmt].client_path = xstrdup (val)
+#endif
+/*
+ * Now we have the getdefaults routine.
+ */
+const char *psmapfile = PSMAPFILE;
+Boolean
+getdefaults(const char *s)
+{
+ FILE *deffile;
+ char PSname[INLINE_SIZE];
+ register char *p;
+ integer hsiz, vsiz;
+#ifndef KPATHSEA
+ char *d = configpath;
+ int i, j;
+#endif
+ int canaddtopaper = 0;
+
+ if (printer == NULL) {
+ if (s) {
+ strcpy(PSname, s);
+ } else {
+#ifdef KPATHSEA
+ char *dvipsrc = kpse_var_value ("DVIPSRC");
+#ifdef WIN32
+ if (dvipsrc && *dvipsrc) {
+ /* $DVIPSRC was set by user */
+ strcpy(PSname, dvipsrc);
+ }
+ else
+ /* No env var, looking into some kind of standard path. */
+ if (SearchPath(".;%HOME%;c:\\", ".dvipsrc", NULL,
+ INLINE_SIZE, PSname,
+ &dvipsrc) == 0) {
+ /* search failed, we must put something into PSname. */
+ dvipsrc = kpse_var_expand(DVIPSRC);
+ if (dvipsrc) {
+ strcpy(PSname, dvipsrc);
+ free(dvipsrc);
+ }
+ /* Else SearchPath has filled PSname with something */
+ }
+ /* remove any redundant path separators. Many configurations
+ can show up: c:\/.dvipsrc and so on ... */
+ {
+ char *p, *q;
+ for (p = q = PSname; *p && (p - PSname < INLINE_SIZE);
+ p++, q++) {
+ if (IS_DIR_SEP(*p)) {
+ *q = DIR_SEP; p++; q++;
+ while (*p && IS_DIR_SEP(*p)) p++;
+ }
+ else if (IS_KANJI(p)) {
+ *q++ = *p++;
+ }
+ *q = *p;
+ }
+ *q = '\0';
+ }
+#else
+ if(!dvipsrc) dvipsrc = kpse_var_expand(DVIPSRC);
+ strcpy(PSname, dvipsrc ? dvipsrc : "~/.dvipsrc");
+ if(dvipsrc) free(dvipsrc);
+#endif /* WIN32 */
+
+#else /* ! KPATHSEA */
+#ifndef VMCMS /* IBM: VM/CMS - don't have home directory on VMCMS */
+#ifndef MVSXA
+ d = "~";
+#endif
+#endif /* IBM: VM/CMS */
+ strcpy(PSname, DVIPSRC);
+#endif /* KPATHSEA */
+ }
+ } else {
+#if defined(MSDOS) || defined(OS2)
+ strcpy(PSname, printer);
+ strcat(PSname, ".cfg");
+#else
+ strcpy(PSname, "config.");
+ strcat(PSname, printer);
+#endif
+ }
+#ifdef KPATHSEA
+ if ((deffile=search(configpath,PSname,READ))!=NULL) {
+#else
+ if ((deffile=search(d,PSname,READ))!=NULL) {
+#endif
+ if (dvips_debug_flag && !quiet) {
+ if (strlen(realnameoffile) + prettycolumn > STDOUTSIZE) {
+ fprintf(stderr, "\n");
+ prettycolumn = 0;
+ }
+ fprintf_str(stderr, "{%s}", realnameoffile);
+ prettycolumn += strlen(realnameoffile) + 2;
+ }
+#ifdef DEBUG
+ if (dd (D_CONFIG)) {
+ fprintf_str(stderr, "Reading dvips config file `%s':\n", realnameoffile);
+ }
+#endif
+ c_lineno = 0;
+ while (fgets(was_inline, INLINE_SIZE, deffile)!=NULL) {
+ c_lineno++;
+#ifdef DEBUG
+ if (dd (D_CONFIG)) {
+ fprintf_str(stderr, "%s:%d:%s", realnameoffile, c_lineno, was_inline);
+ }
+#endif
+/*
+ * We need to get rid of the newline.
+ */
+ for (p=was_inline; *p; p++);
+ while (p > was_inline && (*(p-1) == '\n' || *(p-1) == '\r')) {
+ *--p = '\0';
+ }
+ if (was_inline[0] != '@')
+ canaddtopaper = 0;
+ switch (was_inline[0]) {
+/*
+ * Handling paper size information:
+ *
+ * If line is empty, then we clear out the paper size information
+ * we have so far.
+ *
+ * If it is `@+', then we add to the current paper size info.
+ *
+ * If it is `name hsize vsize', then we start a new definition.
+ */
+case '@' :
+ p = was_inline + 1;
+ while (*p && *p <= ' ') p++;
+ if (*p == 0) {
+ papsizes = 0; /* throw away memory */
+ } else if (*p == '+') {
+ if (canaddtopaper == 0)
+ error(
+ " @+ in config files must immediately following a @ lines");
+ else {
+ *(nextstring-1) = '\n';/* IBM: VM/CMS - changed 10 to "\n" */
+ p++;
+ while (*p && *p == ' ') p++;
+ strcpy(nextstring, p);
+ nextstring += strlen(p) + 1;
+ }
+ } else {
+ struct papsiz *ps;
+ char *q;
+
+ ps = (struct papsiz *)mymalloc((integer)sizeof(struct papsiz));
+ ps->next = papsizes;
+ papsizes = ps;
+ q = p;
+ while (*p && *p > ' ')
+ p++;
+ *p++ = 0;
+ ps->name = newstring(q);
+ while (*p && *p <= ' ') p++;
+ handlepapersize(p, &hsiz, &vsiz);
+ ps->xsize = hsiz;
+ ps->ysize = vsiz;
+ ps->specdat = newstring("");
+ canaddtopaper = 1;
+ }
+ break;
+case 'a' :
+ dopprescan = (was_inline[1] != '0');
+ break;
+case 'b':
+ if (strncmp(was_inline, "bitmapfontenc", 13) == 0) {
+ char *p = was_inline + 13 ;
+ while (*p && *p <= ' ')
+ p++ ;
+ if (strncmp(p, "off", 3) == 0) {
+ bitmapencopt(0) ; // disable bitmap font enc feature
+ } else if (strncmp(p, "on", 2) == 0) {
+ bitmapencopt(1) ; // try to include bitmap font encs
+ } else if (strncmp(p, "strict", 6) == 0) {
+ bitmapencopt(2) ; // issue warnings for missing encs
+ } else {
+ error(
+ "! bitmapfontenc config file option only supports on, off, and strict") ;
+ }
+ break ;
+ }
+#ifdef SHORTINT
+ if (sscanf(was_inline+1, "%ld", &pagecopies) != 1)
+ bad_config("missing pagecopies to b");
+#else
+ if (sscanf(was_inline+1, "%d", &pagecopies) != 1)
+ bad_config("missing pagecopies to b");
+#endif
+ if (pagecopies < 1 || pagecopies > 1000)
+ bad_config("pagecopies not between 1 and 1000");
+ break;
+case 'm' :
+#ifdef SHORTINT
+ if (sscanf(was_inline+1, "%ld", &swmem) != 1)
+ bad_config("missing swmem to m");
+#else /* ~SHORTINT */
+ if (sscanf(was_inline+1, "%d", &swmem) != 1)
+ bad_config("missing swmem to m");
+#endif /* ~SHORTINT */
+ if (swmem > 0) {
+ swmem += fontmem; /* grab headers we've seen already */
+ } else {
+ swmem = INT_MAX; /* if value <=0, max it out */
+ }
+ break;
+case 'M' :
+ /* If the user specified a -mode, don't replace it. */
+ if (!mfmode_option)
+ mfmode = configstring(was_inline+1, 0);
+ mflandmode = 0;
+ {
+ char *pp;
+ for (pp=mfmode; pp && *pp>' '; pp++);
+ if (pp && *pp == ' ') {
+ *pp++ = 0;
+ while (*pp && *pp <= ' ')
+ pp++;
+ if (*pp)
+ mflandmode = pp;
+ }
+ }
+ break;
+case 'o' :
+ if (!oname_option) {
+ struct stat st_buf;
+ char *tmp_oname;
+ tmp_oname = configstring(was_inline+1, 1);
+ if ((*tmp_oname && tmp_oname[strlen(tmp_oname)-1] == ':')
+ || (stat(tmp_oname, &st_buf) == 0 && S_ISCHR(st_buf.st_mode))) {
+ sendcontrolD = 1; /* if we send to a device, *we* are spooler */
+#if defined(MSDOS) || defined(OS2)
+ tmp_oname[strlen(tmp_oname)-1] = 0;
+#endif
+ }
+ oname = tmp_oname;
+ }
+ break;
+case 'F' :
+ sendcontrolD = (was_inline[1] != '0');
+ break;
+case 'O' :
+ p = was_inline + 1;
+ handlepapersize(p, &hoff, &voff);
+ break;
+#ifdef FONTLIB
+case 'L' :
+ {
+ char tempname[INLINE_SIZE];
+ if (sscanf(was_inline+1, "%s", PSname) != 1) bad_config("missing arg to L");
+ else {
+ flipath = getpath(fliparse(PSname,tempname), flipath);
+ fliname = newstring(tempname);
+ }
+ }
+ break;
+#endif
+case 'T' :
+ if (sscanf(was_inline+1, "%s", PSname) != 1)
+ bad_config("missing arg to T");
+ else
+#ifdef KPATHSEA
+ SET_CLIENT_PATH (kpse_tfm_format, PSname);
+#else
+ tfmpath = getpath(PSname, tfmpath);
+#endif
+ break;
+case 'P' :
+ if (sscanf(was_inline+1, "%s", PSname) != 1) bad_config("missing arg to P");
+ else
+#ifdef KPATHSEA
+ SET_CLIENT_PATH (kpse_pk_format, PSname);
+#else
+ pkpath = getpath(PSname, pkpath);
+#endif
+ break;
+case 'p' :
+ p = was_inline + 1;
+ while (*p && *p <= ' ')
+ p++;
+ if (*p == '+') {
+ if (sscanf(p+1, "%s", PSname) != 1)
+ bad_config("missing arg to p");
+ getpsinfo(PSname);
+ } else {
+ psmapfile = configstring(was_inline+1, 0);
+ }
+ break;
+case 'v' : case 'V' :
+ if (sscanf(was_inline+1, "%s", PSname) != 1)
+ bad_config("missing arg to V");
+ else
+#ifdef KPATHSEA
+ SET_CLIENT_PATH (kpse_vf_format, PSname);
+#else
+ vfpath = getpath(PSname, vfpath);
+#endif
+ break;
+case 'S' :
+ if (sscanf(was_inline+1, "%s", PSname) != 1)
+ bad_config("missing arg to S");
+ else
+#ifdef KPATHSEA
+ SET_CLIENT_PATH (kpse_pict_format, PSname);
+#else
+ figpath = getpath(PSname, figpath);
+#endif
+ break;
+case 's':
+ safetyenclose = 1;
+ break;
+case 'H' :
+ if (sscanf(was_inline+1, "%s", PSname) != 1)
+ bad_config("missing arg to H");
+ else
+#ifdef KPATHSEA
+ SET_CLIENT_PATH (headerpath, PSname);
+#else
+ headerpath = getpath(PSname, headerpath);
+#endif
+ break;
+case '%': case ' ' : case '*' : case '#' : case ';' :
+case '=' : case 0 : case '\n' :
+ break;
+case 'r' :
+ reverse = (was_inline[1] != '0');
+ break;
+/*
+ * This case is for last resort font scaling; I hate this, but enough
+ * people have in no uncertain terms demanded it that I'll go ahead and
+ * add it.
+ *
+ * This line must have numbers on it, resolutions, to search for the
+ * font as a last resort, and then the font will be scaled. These
+ * resolutions should be in increasing order.
+ *
+ * For most machines, just `300' is sufficient here; on the NeXT,
+ * `300 400' may be more appropriate.
+ */
+case 'R':
+#ifndef KPATHSEA
+ i = 0;
+ p = was_inline + 1;
+ while (*p) {
+ while (*p && *p <= ' ')
+ p++;
+ if ('0' <= *p && *p <= '9') {
+ j = 0;
+ while ('0' <= *p && *p <= '9')
+ j = 10 * j + (*p++ - '0');
+ if (i > 0)
+ if (lastresortsizes[i-1] > j) {
+ bad_config("last resort sizes (R) must be sorted");
+ }
+ lastresortsizes[i++] = j;
+ } else {
+ if (*p == 0)
+ break;
+ bad_config("only numbers expected on `R' line");
+ }
+ }
+ lastresortsizes[i] = 32000;
+#else /* KPATHSEA */
+ for (p = was_inline + 1; *p; p++) {
+ if (isblank ((unsigned char)*p)) {
+ *p = ':';
+ }
+ }
+ kpse_fallback_resolutions_string = xstrdup (was_inline + 1);
+#endif
+ break;
+case 'D' :
+ if (sscanf(was_inline+1, "%d", &actualdpi) != 1)
+ bad_config("missing arg to D");
+ if (actualdpi < 10 || actualdpi > 10000)
+ bad_config("dpi must be between 10 and 10000");
+ vactualdpi = actualdpi;
+ break;
+/*
+ * Execute a command. This can be dangerous, but can also be very useful.
+ */
+case 'E' :
+#ifdef SECURE
+ error("dvips was compiled with SECURE, which disables E in config");
+#else
+ if (secure) {
+ error("E in config is disabled. To enable E, set z0 before E");
+ break;
+ }
+ system(was_inline+1);
+#endif
+ break;
+case 'K':
+ removecomments = (was_inline[1] != '0');
+ break;
+case 'L':
+ lastpsizwins = (was_inline[1] != '0');
+ break;
+case 'U':
+ nosmallchars = (was_inline[1] != '0');
+ break;
+case 'W':
+ for (p=was_inline+1; *p && *p <= ' '; p++);
+ if (*p)
+ warningmsg = newstring(p);
+ else
+ warningmsg = 0;
+ break;
+case 'X' :
+ if (sscanf(was_inline+1, "%d", &actualdpi) != 1)
+ bad_config("missing numeric arg to X");
+ if (actualdpi < 10 || actualdpi > 10000)
+ bad_config("X arg must be between 10 and 10000");
+ break;
+case 'Y' :
+ if (sscanf(was_inline+1, "%d", &vactualdpi) != 1)
+ bad_config("missing numeric arg to Y");
+ if (vactualdpi < 10 || vactualdpi > 10000)
+ bad_config("Y arg must be between 10 and 10000");
+ break;
+case 'x': case 'y':
+ if (sscanf(was_inline+1, "%lg", &mag) != 1)
+ bad_config("missing arg to x or y");
+ overridemag = (was_inline[0] == 'x') ? 1 : -1;
+ break;
+case 'e' :
+ if (sscanf(was_inline+1, "%d", &maxdrift) != 1)
+ bad_config("missing arg to e");
+ if (maxdrift < 0) bad_config("bad argument to e");
+ vmaxdrift = maxdrift;
+ break;
+case 'z' :
+ if (secure_option && secure && was_inline[1] == '0') {
+ fprintf_str(stderr,
+ "warning: %s: z0 directive ignored since -R1 given\n",
+ realnameoffile); /* Never happen */
+ } else {
+ if (was_inline[1] == '0') {
+ secure = 0;
+ } else if (was_inline[1] == '2') {
+ secure = 2;
+ } else {
+ secure = 1;
+ }
+ }
+ break;
+case 'q' : case 'Q' :
+ quiet = (was_inline[1] != '0');
+ break;
+case 'f' :
+ filter = (was_inline[1] != '0');
+ if (filter)
+ oname = "";
+ /* noenv has already been tested, so no point in setting. */
+ sendcontrolD = 0;
+ break;
+#ifdef SHIFTLOWCHARS
+case 'G':
+ shiftlowchars = (was_inline[1] != '0');
+ break;
+#endif
+case 'h' :
+ if (sscanf(was_inline+1, "%s", PSname) != 1)
+ bad_config("missing arg to h");
+ else add_header(PSname);
+ break;
+case 'i' :
+ if (sscanf(was_inline+1, "%d", &maxsecsize) != 1)
+ maxsecsize = 0;
+ sepfiles = 1;
+ break;
+case 'I':
+ noenv = (was_inline[1] != '0');
+ break;
+case 'N' :
+ disablecomments = (was_inline[1] != '0');
+ break;
+case 'Z' :
+ compressed = (was_inline[1] != '0');
+ break;
+case 'j':
+ partialdownload = (was_inline[1] != '0');
+ break;
+case 't' :
+ if (sscanf(was_inline+1, "%s", PSname) != 1)
+ bad_config("missing arg to t");
+ else {
+ if (strcmp(PSname, "landscape") == 0) {
+ if (hpapersize || vpapersize)
+ error(
+ "both landscape and papersize specified; ignoring landscape");
+ else
+ landscape = 1;
+ } else
+ paperfmt = newstring(PSname);
+ }
+ break;
+case 'c' :
+ if (sscanf(was_inline+1, "%s", PSname) != 1)
+ bad_config("missing arg to c");
+ else
+ getdefaults(PSname);
+ break;
+default:
+ bad_config("strange line");
+ }
+ }
+ fclose(deffile);
+ } else {
+ if (printer)
+ {
+ char msg[1000];
+ snprintf (msg, sizeof(msg), "warning: no config file for `%s'",
+ printer);
+ error(msg);
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+/*
+* If a character pointer is passed in, use that name; else, use the
+* default (possibly set) name, psfonts.map.
+*/
+void
+getpsinfo(const char *name)
+{
+ FILE *deffile;
+ register char *p;
+ char *specinfo, *downloadinfo;
+ char downbuf[500];
+ char specbuf[500];
+ int slen;
+
+ if (name == 0)
+ name = psmapfile;
+ if ((deffile=search(mappath, name, READ))!=NULL) {
+ if (dvips_debug_flag && !quiet) {
+ if (strlen(realnameoffile) + prettycolumn > STDOUTSIZE) {
+ fprintf(stderr, "\n");
+ prettycolumn = 0;
+ }
+ fprintf_str(stderr, "{%s}", realnameoffile);
+ prettycolumn += strlen(realnameoffile) + 2;
+ }
+ while (fgets(was_inline, INLINE_SIZE, deffile)!=NULL) {
+ p = was_inline;
+ if (*p > ' ' && *p != '*' && *p != '#' && *p != ';' && *p != '%') {
+ char *TeXname = NULL;
+ char *PSname = NULL;
+ char *Fontfile = NULL;
+ char *Vectfile = NULL;
+ char *hdr_name = NULL;
+ boolean nopartial_p = false;
+ boolean encoding_p = false;
+ specinfo = NULL;
+ downloadinfo = NULL;
+ downbuf[0] = 0;
+ specbuf[0] = 0;
+ while (*p) {
+ encoding_p = false;
+ while (*p && *p <= ' ')
+ p++;
+ if (*p) {
+ if (*p == '"') { /* PostScript instructions? */
+ if (specinfo) {
+ strcat(specbuf, specinfo);
+ strcat(specbuf, " ");
+ }
+ specinfo = p + 1;
+
+ } else if (*p == '<') { /* Header to download? */
+ /* If had previous downloadinfo, save it. */
+ if (downloadinfo) {
+ strcat(downbuf, downloadinfo);
+ strcat(downbuf, " ");
+ downloadinfo = NULL;
+ }
+ if (p[1] == '<') { /* << means always full download */
+ p++;
+ nopartial_p = true;
+ } else if (p[1] == '[') { /* <[ means an encoding */
+ p++;
+ encoding_p = true;
+ }
+ p++;
+ /* skip whitespace after < */
+ while (*p && *p <= ' ')
+ p++;
+
+ /* save start of header name */
+ hdr_name = p;
+
+ } else if (TeXname) /* second regular word on line? */
+ PSname = p;
+
+ else /* first regular word? */
+ TeXname = p;
+
+ if (*p == '"') {
+ p++; /* find end of "..." word */
+ while (*p != '"' && *p)
+ p++;
+ } else
+ while (*p > ' ') /* find end of anything else */
+ p++;
+ if (*p)
+ *p++ = 0;
+
+ /* If we had a header we were downloading, figure
+ out what to do; couldn't do this above since we
+ want to check the suffix. */
+ if (hdr_name) {
+ const char *suffix = find_suffix (hdr_name);
+ if (encoding_p || STREQ (suffix, "enc")) {
+ /* (SPQR) if it is a reencoding, pass on to
+ FontPart, and download as usual */
+ Vectfile = downloadinfo = hdr_name;
+ } else if (nopartial_p) {
+ downloadinfo = hdr_name;
+ } else if (FILESTRCASEEQ (suffix, "pfa")
+ || FILESTRCASEEQ (suffix, "pfb")
+ || STREQ (suffix, "PFA")
+ || STREQ (suffix, "PFB")) {
+ Fontfile = hdr_name;
+ } else {
+ downloadinfo = hdr_name;
+ }
+ }
+ }
+ }
+ if (specinfo)
+ strcat(specbuf, specinfo);
+ if (downloadinfo)
+ strcat(downbuf, downloadinfo);
+ slen = strlen(downbuf) - 1;
+ if (slen > 0 && downbuf[slen] == ' ') {
+ downbuf[slen] = 0;
+ }
+ if (TeXname) {
+ TeXname = newstring(TeXname);
+ PSname = newstring(PSname);
+ Fontfile = newstring(Fontfile);
+ Vectfile = newstring(Vectfile);
+ specinfo = newstring(specbuf);
+ downloadinfo = newstring(downbuf);
+ add_entry(TeXname, PSname, Fontfile, Vectfile,
+ specinfo, downloadinfo);
+ }
+ }
+ }
+ fclose(deffile);
+ }
+ checkstrings();
+}
+#ifndef KPATHSEA
+/*
+ * Get environment variables! These override entries in ./config.h.
+ * We substitute everything of the form ::, ^: or :$ with default,
+ * so a user can easily build on to the existing paths.
+ */
+static char *
+getenvup(char *who, char *what)
+{
+ return getpath(getenv(who), what);
+}
+#endif
+#if !defined(KPATHSEA) && defined(SEARCH_SUBDIRECTORIES)
+static char *concat3();
+#endif
+void
+checkenv(int which)
+{
+#ifndef KPATHSEA
+ if (which) {
+ tfmpath = getenvup(FONTPATH, tfmpath);
+ vfpath = getenvup("VFFONTS", vfpath);
+ pictpath = getenvup("TEXPICTS", pictpath);
+ figpath = getenvup("TEXINPUTS", figpath);
+ headerpath = getenvup("DVIPSHEADERS", headerpath);
+ if (getenv("TEXPKS"))
+ pkpath = getenvup("TEXPKS", pkpath);
+ else if (getenv("TEXPACKED"))
+ pkpath = getenvup("TEXPACKED", pkpath);
+ else if (getenv("PKFONTS"))
+ pkpath = getenvup("PKFONTS", pkpath);
+#ifdef SEARCH_SUBDIRECTORIES
+ else if (getenv(FONTPATH))
+ pkpath = getenvup(FONTPATH, pkpath);
+ if (getenv ("TEXFONTS_SUBDIR"))
+ fontsubdirpath = getenvup ("TEXFONTS_SUBDIR", fontsubdirpath);
+ {
+ char pathsep[2];
+ char *do_subdir_path();
+ char *dirs = do_subdir_path (fontsubdirpath);
+ /* If the paths were in dynamic storage before, that memory is
+ wasted now. */
+ pathsep[0] = PATHSEP;
+ pathsep[1] = '\0';
+ tfmpath = concat3 (tfmpath, pathsep, dirs);
+ pkpath = concat3 (pkpath, pathsep, dirs);
+ }
+#endif
+ } else
+ configpath = getenvup("TEXCONFIG", configpath);
+#endif
+}
+
+#if !defined(KPATHSEA) && defined(SEARCH_SUBDIRECTORIES)
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <errno.h>
+
+#ifdef SYSV
+#include <dirent.h>
+typedef struct dirent *directory_entry_type;
+#else
+#include <sys/dir.h>
+typedef struct direct *directory_entry_type;
+#endif
+
+/* Declare the routine to get the current working directory. */
+
+#ifndef HAVE_GETCWD
+extern char *getwd ();
+#define getcwd(b, len) ((b) ? getwd (b) : getwd (xmalloc (len)))
+#else
+#ifdef ANSI
+extern char *getcwd (char *, int);
+#else
+extern char *getcwd ();
+#endif /* not ANSI */
+#endif /* not HAVE_GETWD */
+
+#if defined(SYSV) || defined(VMS) || defined(MSDOS) || defined(OS2) || defined(ATARIST)
+#define MAXPATHLEN (256)
+#else /* ~SYSV */
+#include <sys/param.h> /* for MAXPATHLEN */
+#endif
+
+extern void exit();
+extern int chdir();
+
+/* Memory operations: variants of malloc(3) and realloc(3) that just
+ give up the ghost when they fail. */
+
+char *
+xmalloc(unsigned size)
+{
+ char *mem = malloc (size);
+
+ if (mem == NULL)
+ {
+ fprintf (stderr, "! Cannot allocate %u bytes.\n", size);
+ exit (10);
+ }
+
+ return mem;
+}
+
+
+char *
+xrealloc(char *ptr, unsigned size)
+{
+ char *mem = realloc (ptr, size);
+
+ if (mem == NULL)
+ {
+ fprintf (stderr, "! Cannot reallocate %u bytes at %x.\n", size, (int)ptr);
+ exit (10);
+ }
+
+ return mem;
+}
+
+
+/* Return, in NAME, the next component of PATH, i.e., the characters up
+ to the next PATHSEP. */
+
+static void
+next_component(char *name, char **path)
+{
+ unsigned count = 0;
+
+ while (**path != 0 && **path != PATHSEP)
+ {
+ name[count++] = **path;
+ (*path)++; /* Move further along, even between calls. */
+ }
+
+ name[count] = 0;
+ if (**path == PATHSEP)
+ (*path)++; /* Move past the delimiter. */
+}
+
+
+#ifndef _POSIX_SOURCE
+#ifndef S_ISDIR
+#define S_ISDIR(m) ((m & S_IFMT) == S_IFDIR)
+#endif
+#endif
+
+/* Return true if FN is a directory or a symlink to a directory,
+ false if not. */
+
+int
+is_dir(char *fn)
+{
+ struct stat stats;
+
+ return stat (fn, &stats) == 0 && S_ISDIR (stats.st_mode);
+}
+
+
+static char *
+concat3(char *s1, char *s2, char *s3)
+{
+ char *r = xmalloc (strlen (s1) + strlen (s2) + strlen (s3) + 1);
+ strcpy (r, s1);
+ strcat (r, s2);
+ strcat (r, s3);
+ return r;
+}
+
+
+/* DIR_LIST is the default list of directories (colon-separated) to
+ search. We want to add all the subdirectories directly below each of
+ the directories in the path.
+
+ We return the list of directories found. */
+
+char *
+do_subdir_path(char *dir_list)
+{
+ char *cwd;
+ unsigned len;
+ char *result = xmalloc ((unsigned)1);
+ char *temp = dir_list;
+ char dirsep[2];
+
+ dirsep[0] = DIRSEP;
+ dirsep[1] = '\0';
+
+ /* Make a copy in writable memory. */
+ dir_list = xmalloc (strlen (temp) + 1);
+ strcpy (dir_list, temp);
+
+ *result = 0;
+
+ /* Unfortunately, we can't look in the environment for the current
+ directory, because if we are running under a program (let's say
+ Emacs), the PWD variable might have been set by Emacs' parent
+ to the current directory at the time Emacs was invoked. This
+ is not necessarily the same directory the user expects to be
+ in. So, we must always call getcwd(3) or getwd(3), even though
+ they are slow and prone to hang in networked installations. */
+ cwd = getcwd (NULL, MAXPATHLEN + 2);
+ if (cwd == NULL)
+ {
+ perror ("getcwd");
+ exit (errno);
+ }
+
+ do
+ {
+ DIR *dir;
+ directory_entry_type e;
+ char dirname[MAXPATHLEN];
+
+ next_component (dirname, &dir_list);
+
+ /* All the `::'s should be gone by now, but we may as well make
+ sure `chdir' doesn't crash. */
+ if (*dirname == 0) continue;
+
+ /* By changing directories, we save a bunch of string
+ concatenations (and make the pathnames the kernel looks up
+ shorter). */
+ if (chdir (dirname) != 0) continue;
+
+ dir = opendir (".");
+ if (dir == NULL) continue;
+
+ while ((e = readdir (dir)) != NULL)
+ {
+ if (is_dir (e->d_name) && strcmp (e->d_name, ".") != 0
+ && strcmp (e->d_name, "..") != 0)
+ {
+ char *found = concat3 (dirname, dirsep, e->d_name);
+
+ result = xrealloc (result, strlen (result) + strlen (found) + 2);
+
+ len = strlen (result);
+ if (len > 0)
+ {
+ result[len] = PATHSEP;
+ result[len + 1] = 0;
+ }
+ strcat (result, found);
+ free (found);
+ }
+ }
+ closedir (dir);
+
+ /* Change back to the current directory, in case the path
+ contains relative directory names. */
+ if (chdir (cwd) != 0)
+ {
+ perror (cwd);
+ exit (errno);
+ }
+ }
+ while (*dir_list != 0);
+
+ return result;
+}
+#endif /* SEARCH_SUBDIRECTORIES */
diff --git a/Build/source/texk/dvipsk/same-name.test b/Build/source/texk/dvipsk/same-name.test
new file mode 100755
index 00000000000..4459ab3e48e
--- /dev/null
+++ b/Build/source/texk/dvipsk/same-name.test
@@ -0,0 +1,14 @@
+#! /bin/sh -vx
+# $Id$
+# Public domain.
+# Test oname == iname.
+
+rm -f same-name.dvi same-name.out
+
+./dvips same-name.dvi -o same-name.dvi 2>same-name.out \
+ && exit 1
+
+grep 'Output name should be different from input name' \
+ same-name.out || exit 1
+
+exit 0
diff --git a/Build/source/texk/dvipsk/scalewidth.c b/Build/source/texk/dvipsk/scalewidth.c
new file mode 100644
index 00000000000..dab197a9290
--- /dev/null
+++ b/Build/source/texk/dvipsk/scalewidth.c
@@ -0,0 +1,36 @@
+/*
+ * Code to scale dimensions. Takes two thirty-two bit integers, multiplies
+ * them, divides them by 2^20, and returns the thirty-two bit result.
+ * The first integer, the width in FIXes, can lie between -2^24 and 2^24-1.
+ * The second integer, the scale factor, can lie between 0 and 2^27-1.
+ *
+ * Here, unlike in TeX, we do the arithmetic exactly. Since the error
+ * in the TeX arithmetic is parts per million, and since dvips makes no
+ * layout decisions, this has no effect. (TeX stipulates that any
+ * implementation of *TeX* needs to do the arithmetic exactly as
+ * specified in TeX, but drivers need not.)
+ *
+ * Since this math is special, we put it in its own file. It is the only
+ * place in the program where such accuracy is required.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+integer
+scalewidth(register integer a, register integer b)
+{
+ register integer al, bl;
+
+ if (a < 0)
+ return -scalewidth(-a, b);
+ if (b < 0)
+ return -scalewidth(a, -b);
+ al = a & 32767;
+ bl = b & 32767;
+ a >>= 15;
+ b >>= 15;
+ return ( ((al*bl/32768) + a*bl+al*b)/32 + a*b*1024);
+}
diff --git a/Build/source/texk/dvipsk/scanpage.c b/Build/source/texk/dvipsk/scanpage.c
new file mode 100644
index 00000000000..51ad3afb9c7
--- /dev/null
+++ b/Build/source/texk/dvipsk/scanpage.c
@@ -0,0 +1,310 @@
+/*
+ * This routine scans a page for font definitions and character usage.
+ * It keeps an estimate of the memory remaining in the printer, and
+ * returns false when that memory is exhausted, unless scanning the
+ * first page. Otherwise it returns 1 if no problems were found,
+ * or 2 if it thinks the first page of a section may overflow memory.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+/*
+ * Charge pagecost for the cost of showing the character that *cd refers to
+ * and charge fontmem for the cost of downloading the character if necessary.
+ * A zero result indicates that we have run out of memory.
+ * If the character is small (a small packet), we save 43 bytes (since we
+ * use a single string instead of an array with integers in the PostScript.)
+ */
+Boolean
+prescanchar(chardesctype *cd)
+{
+ register quarterword *cras;
+ register integer thischar;
+
+ if ((cd->flags & (PREVPAGE | THISPAGE)) == 0) {
+ /* the character hasn't been used before in the current section */
+ cras = cd->packptr;
+ if (curfnt->resfont) {
+ thischar = PSCHARCOST;
+ cd->flags |= THISPAGE;
+ } else if (cras != NULL) {
+ thischar = CHARCOST;
+ if (cd->flags & BIGCHAR)
+ thischar += 43;
+ if (compressed) {
+ if ((cd->flags & REPACKED) == 0) {
+ repack(cd);
+ cras = cd->packptr;
+ }
+ if ((*cras & 4))
+ if ((*cras & 7) == 7)
+ thischar += getlong(cras + 17);
+ else
+ thischar += getlong(cras + 9);
+ else
+ thischar += getlong(cras + 5);
+ } else {
+ if ((*cras & 4))
+ if ((*cras & 7) == 7)
+ thischar += getlong(cras + 1)
+ * ((getlong(cras + 5) + 7) >> 3);
+ else
+ thischar += (cras[3] * 256L + cras[4]) *
+ ((cras[1] * 256L + cras[2] + 7) >> 3);
+ else
+ thischar += ((long)(cras[2] * ((cras[1] + 7) >> 3)));
+ }
+ cd->flags |= THISPAGE;
+ } else
+ thischar = 0;
+ fontmem -= thischar;
+ if (fontmem <= pagecost) {
+ if (pagecount > 0)
+ return(0);
+ }
+ }
+ return(1);
+}
+/*
+ * When a font is selected during the prescan, this routine makes sure that
+ * the tfm or pk file is loaded and charges fontmem for the VM overhead in
+ * creating the font. The result is true unless the section must be aborted
+ * in order to keep this font from overflowing VM.
+ */
+Boolean
+preselectfont(fontdesctype *f)
+{
+ curfnt = f;
+ if (curfnt->loaded == 0 || curfnt->loaded == 3) {
+ if (!residentfont(curfnt))
+ if (!virtualfont(curfnt))
+ loadfont(curfnt);
+ }
+ if (curfnt->psname == 0) {
+ if (curfnt->loaded < 2) { /* virtual font costs nothing (yet) */
+ if (curfnt->resfont)
+ fontmem -= PSFONTCOST;
+ else {
+ fontmem -= FONTCOST + curfnt->maxchars;
+ if (curfnt->loadeddpi != curfnt->dpi)
+ fontmem -= 48; /* for the new font matrix */
+ }
+ }
+ curfnt->psname = 1;
+ if (fontmem <= pagecost) {
+ if (pagecount > 0)
+ return(0);
+ }
+ }
+ return(1);
+}
+/*
+ * Now our scanpage routine.
+ */
+short
+scanpage(void)
+{
+ register shalfword cmd;
+ register chardesctype *cd;
+ register fontmaptype *cfnt = 0;
+ integer fnt;
+ integer mychar;
+ register frametype *frp = frames;
+
+ if (firstboploc == 0)
+ firstboploc = ftell(dvifile);
+ pagecost = 0;
+#ifdef DEBUG
+ if (dd(D_PAGE))
+#ifdef SHORTINT
+ fprintf(stderr,"Scanning page %ld\n", pagenum);
+#else /* ~SHORTINT */
+ fprintf(stderr,"Scanning page %d\n", pagenum);
+#endif /* ~SHORTINT */
+#endif /* DEBUG */
+ curfnt = NULL;
+ curpos = NULL;
+
+ bopcolor(0); /* IBM: color - put current colorstack to bopstackdepth */
+
+ while (1) {
+ switch (cmd=dvibyte()) {
+case 255: /* pTeX's dir or undefined */
+ if (!noptex) {
+ dvibyte();
+ break;
+ }
+/* illegal commands */
+case 131: case 136: case 139: /* set4, put4, bop */
+case 247: case 248: case 249: /* pre, post, post_post */
+case 250: case 251: case 252: case 253: case 254: /* undefined */
+ sprintf(errbuf,
+ "! DVI file contains unexpected command (%d)",cmd);
+ error(errbuf);
+case 132: case 137: /* eight-byte commands setrule, putrule */
+ dvibyte();
+ dvibyte();
+ dvibyte();
+ dvibyte();
+case 146: case 151: case 156: case 160: case 165: case 170:
+ /* four-byte commands right4, w4, x4, down4, y4, z4 */
+ dvibyte();
+case 145: case 150: case 155: case 159: case 164: case 169:
+ /* three-byte commands right3, w3, x3, down3, y3, z3 */
+ dvibyte();
+case 144: case 149: case 154: case 158: case 163: case 168:
+ /* two-byte commands right2, w2, x2, down2, y2, z2 */
+ dvibyte();
+case 143: case 148: case 153: case 157: case 162: case 167:
+ /* one-byte commands right1, w1, x1, down1, y1, z1 */
+ dvibyte();
+case 147: case 152: case 161: case 166: /* w0, x0, y0, z0 */
+case 138: case 141: case 142: /* nop, push, pop */
+ break;
+case 130: case 135: /* set3, put3 */
+ if (noptex) {
+ sprintf(errbuf,
+ "! DVI file contains unexpected pTeX command (%d)",cmd);
+ error(errbuf);
+ }
+ mychar = dvibyte(); mychar = (mychar << 8) + dvibyte();
+ mychar = (mychar << 8) + dvibyte();
+ goto dochar;
+case 129: case 134: /* set2, put2 */
+ if (noomega && noptex) {
+ sprintf(errbuf,
+ "! DVI file contains unexpected command (%d)",cmd);
+ error(errbuf);
+ }
+ mychar = dvibyte(); mychar = (mychar << 8) + dvibyte();
+ goto dochar;
+case 128: case 133: cmd = dvibyte(); /* set1, put1 commands drops through */
+default: /* these are commands 0 (setchar0) thru 127 (setchar 127) */
+ mychar = cmd;
+dochar:
+/*
+ * We are going to approximate that each string of consecutive characters
+ * requires (length of string) bytes of PostScript VM.
+ */
+ if (curfnt==NULL)
+ error("! Bad DVI file: no font selected");
+ if (mychar>=curfnt->maxchars) {
+ if (!noptex && mychar<0x1000000 && curfnt->loaded == 2 && curfnt->kind == VF_PTEX) {
+ /* fallback */
+ } else {
+ sprintf(errbuf,"! [scanpage] invalid char %d from font %.500s",
+ mychar, curfnt->name);
+ error(errbuf);
+ }
+ }
+ if (curfnt->loaded == 2) { /* scanning a virtual font character */
+ struct tft *ffont0;
+ frp->curp = curpos;
+ frp->curl = curlim;
+ frp->ff = ffont;
+ frp->curf = curfnt;
+ if (++frp == &frames[MAXFRAME] )
+ error("! virtual recursion stack overflow");
+ cd = curfnt->chardesc + mychar;
+ if (mychar>=curfnt->maxchars || cd->packptr == NULL) {
+ if (!noptex && mychar<0x1000000 && curfnt->kind == VF_PTEX) { /* fallback */
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf_str(stderr,
+ "We will fallback pTeX vf:%s to %s\n",
+ curfnt->name, curfnt->localfonts->desc->name);
+#endif /* DEBUG */
+ } else {
+ fprintf(stderr, "Wrong char code: %04X\n", mychar);
+ error("! a non-existent virtual character is being used; check vf/tfm files");
+ }
+ ffont0 = curfnt->localfonts;
+ if (ffont0==NULL)
+ curfnt = NULL;
+ else if (!preselectfont(ffont0->desc))
+ goto outofmem;
+ } else {
+ curpos = cd->packptr + 2;
+ curlim = curpos + (256*(long)(*cd->packptr)+(*(cd->packptr+1)));
+ ffont = curfnt->localfonts;
+ if (ffont==NULL)
+ curfnt = NULL;
+ else if (!preselectfont(ffont->desc))
+ goto outofmem;
+ }
+ } else {
+ pagecost++;
+ if (!prescanchar(curfnt->chardesc + mychar))
+ goto outofmem;
+ }
+ break;
+case 171: case 172: case 173: case 174: case 175: case 176: case 177:
+case 178: case 179: case 180: case 181: case 182: case 183: case 184:
+case 185: case 186: case 187: case 188: case 189: case 190: case 191:
+case 192: case 193: case 194: case 195: case 196: case 197: case 198:
+case 199: case 200: case 201: case 202: case 203: case 204: case 205:
+case 206: case 207: case 208: case 209: case 210: case 211: case 212:
+case 213: case 214: case 215: case 216: case 217: case 218: case 219:
+case 220: case 221: case 222: case 223: case 224: case 225: case 226:
+case 227: case 228: case 229: case 230: case 231: case 232: case 233:
+case 234: case 235: case 236: case 237: case 238: /* font selection commands */
+ if (cmd < 235) fnt = cmd - 171; /* fntnum0 thru fntnum63 */
+ else {
+ fnt = dvibyte(); /* fnt1 */
+ while (cmd-- > 235)
+ fnt = (fnt << 8) + dvibyte();
+ }
+ for (cfnt=ffont; cfnt; cfnt = cfnt->next)
+ if (cfnt->fontnum == fnt) goto fontfound;
+ printf("Font number %d not found\n", fnt);
+ error("! no font selected");
+fontfound: curfnt = cfnt->desc;
+ if (!preselectfont(curfnt))
+ goto outofmem;
+ break;
+case 239: predospecial((integer)dvibyte(), 1); break; /* xxx1 */
+case 240: predospecial((integer)twobytes(), 1); break; /* xxx2 */
+case 241: predospecial(threebytes(), 1); break; /* xxx3 */
+case 242: predospecial(signedquad(), 1); break; /* xxx4 */
+case 243: case 244: case 245: case 246: fontdef(cmd-242); break; /* fntdef1 */
+case 140: /* eop or end of virtual char */
+ if (curpos) {
+ --frp;
+ curfnt = frp->curf;
+ ffont = frp->ff;
+ curlim = frp->curl;
+ curpos = frp->curp;
+ break;
+ }
+ goto endofpage; /* eop */
+ }
+ }
+endofpage:
+ if (fontmem > pagecost)
+ return(1);
+ if (pagecount > 0) {
+ return(0);
+ } /* IBM: color */
+#ifdef SHORTINT
+ fprintf(stderr, "Page %ld may be too complex to print\n", pagenum);
+#else /* ~SHORTINT */
+ fprintf(stderr, "Page %d may be too complex to print\n", pagenum);
+#endif /* ~SHORTINT */
+/*
+ * This case should be rare indeed. Even with only 200K of virtual memory,
+ * at 11 bytes per char, you can have 18K characters on a page.
+ */
+ return(2);
+outofmem:
+ if (frp != frames) {
+ curpos = frames->curp;
+ curlim = frames->curl;
+ ffont = frames->ff;
+ curfnt = frames->curf;
+ }
+ return 0;
+}
diff --git a/Build/source/texk/dvipsk/search.c b/Build/source/texk/dvipsk/search.c
new file mode 100644
index 00000000000..ca6b3cda6a6
--- /dev/null
+++ b/Build/source/texk/dvipsk/search.c
@@ -0,0 +1,358 @@
+/*
+ * The search routine takes a directory list, separated by PATHSEP, and
+ * tries to open a file. Null directory components indicate current
+ * directory. In an environment variable, null directory components
+ * indicate substitution of the default path list at that point.
+ * This source file assumes KPATHSEA is defined.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+
+#ifndef KPATHSEA
+"goodbye, search.c can only be compiled with -DKPATHSEA"
+#endif
+
+#include "protos_add.h" /* external declarations */
+
+#include <kpathsea/c-ctype.h>
+#include <kpathsea/tex-file.h>
+#include <kpathsea/tex-glyph.h>
+#include <kpathsea/absolute.h>
+#include <kpathsea/c-pathch.h>
+#include <kpathsea/variable.h>
+
+#ifdef WIN32
+#undef fopen
+#undef popen
+#undef pclose
+extern FILE *generic_fsyscp_fopen(const char *name, const char *mode);
+#define fopen(file, fmode) generic_fsyscp_fopen(file, fmode)
+#define popen(pcmd, pmode) fsyscp_popen(pcmd, pmode)
+#define pclose(pstream) _pclose(pstream)
+
+#undef FATAL_PERROR
+#if defined (KPSE_COMPAT_API)
+#define FATAL_PERROR(str) do { \
+ win32_fprintf (stderr, "%s: ", kpse_def->invocation_name); \
+ win32_perror (str); exit (EXIT_FAILURE); } while (0)
+#else
+/* If there is no global variable available, just output the error */
+#define FATAL_PERROR(str) do { \
+ win32_perror (str); exit (EXIT_FAILURE); } while (0)
+#endif
+
+#endif
+
+#ifndef GUNZIP
+#define GUNZIP "gzip -d"
+#endif
+
+int to_close; /* use fclose or pclose? */
+char *realnameoffile;
+
+/* Return safely quoted version of NAME. That means using "..." on
+ Windows and '...' on Unix, with any occurrences of the quote char
+ quoted with a \. Result is always in new memory; NAME is unchanged.
+ This is a generic function; if we end up needing it in other
+ programs, we should move it to kpathsea. */
+
+#ifdef WIN32
+#define QUOTE '"'
+#else
+#define QUOTE '\''
+#endif
+
+static char *
+quote_name (const char *name)
+{
+ char *quoted = xmalloc (strlen (name) * 2 + 3);
+ char *q = quoted;
+ const char *p = name;
+
+ *q++ = QUOTE;
+ while (*p) {
+ if (*p == QUOTE)
+ *q++ = QUOTE;
+ *q++ = *p++;
+ }
+ *q++ = QUOTE;
+ *q = 0;
+
+ return quoted;
+}
+
+
+/* On Windows, return PROG with SELFAUTOLOC prepended, and / separators
+ changed to \. On Unix, return a copy of PROG. Result is always in
+ new memory. No safeness or other quoting is done on PROG.
+
+ This is necessary because Windows likes to run programs out of the
+ current directory. So for security, we want to ensure that we are
+ invoking programs from our own binary directory, not via PATH.
+
+ This is a generic function; if we end up needing it in other
+ programs, we should move it to kpathsea. */
+
+#ifdef WIN32
+#include <kpathsea/concatn.h>
+#endif
+
+static char *
+selfautoloc_prog (const char *prog)
+{
+ char *ret;
+#ifdef WIN32
+ char *p, *q, *r;
+ /* Get value of SELFAUTOLOC, but \ works better for path separator. */
+ char *selfautoloc = kpse_var_value ("SELFAUTOLOC");
+ for (p = selfautoloc; *p; p++) {
+ if (*p == '/')
+ *p = '\\';
+ }
+ q = xstrdup (prog);
+ r = q;
+ while (*r && *r != ' ' && *r != '\t')
+ r++;
+ if (*r == '\0')
+ ret = concatn ("\"", selfautoloc, "\\", q, "\"", NULL);
+ else {
+ *r = '\0';
+ r++;
+ if (*r)
+ ret = concatn ("\"", selfautoloc, "\\", q, "\" ", r, NULL);
+ else
+ ret = concatn ("\"", selfautoloc, "\\", q, "\"", NULL);
+ }
+ free (q);
+ free (selfautoloc);
+
+#else /* not WIN32 */
+ ret = xstrdup (prog);
+#endif
+
+ return ret;
+}
+
+
+
+FILE *
+search(kpse_file_format_type format, const char *file, const char *mode)
+{
+ FILE *ret;
+ string found_name;
+
+ /* This change suggested by maj@cl.cam.ac.uk to disallow reading of
+ arbitrary files. Further modified by Y. Oiwa. */
+#ifndef SECURE
+ if (secure == 2) {
+#endif
+ /* an absolute path is denied */
+ if (kpse_absolute_p (file, false))
+ return NULL;
+
+ if (file[0] == '.' && file[1] == '.' && IS_DIR_SEP(file[2])) {
+ /* a relative path starting with ../ is denied */
+ return NULL;
+ } else {
+ /* a relative path containing /../ is denied */
+ const char *p;
+
+ if (file[0] != '\0') {
+ for(p = file + 1; *p && ((p = strstr(p, "..")) != NULL); p += 2) {
+ /* p[2] is valid, because p points to string starting with ".." */
+ /* p[-1] is valid, because p does not point the top of file */
+ if ((p[2] == '\0' || IS_DIR_SEP(p[2])) && IS_DIR_SEP(p[-1])) {
+ return NULL;
+ }
+ }
+ }
+ }
+#ifndef SECURE
+ }
+#endif
+ /* Most file looked for through here must exist -- the exception is
+ VF's. Bitmap fonts go through pksearch. */
+ found_name = kpse_find_file (file, format,
+ format != vfpath && format != ofmpath);
+ if (found_name) {
+ unsigned len = strlen (found_name);
+ if ((format == figpath || format == headerpath)
+ && ((len > 2 && FILESTRCASEEQ (found_name + len - 2, ".Z"))
+ || (len > 3 && FILESTRCASEEQ (found_name + len - 3, ".gz")))) {
+ /* automatically but safely decompress. */
+ char *quoted_name = quote_name (found_name);
+ char *cmd;
+ char *prog = selfautoloc_prog (GUNZIP);
+ cmd = concat3 (prog, " -c ", quoted_name);
+ ret = popen (cmd, "r");
+ if (dd(D_FILES)) {
+ fprintf_str(stderr, "popen(%s) %s\n", cmd,
+ ret == NULL ? "failed" : "succeeded");
+ }
+ SET_BINARY(fileno(ret));
+ to_close = USE_PCLOSE;
+ free (cmd);
+ free (quoted_name);
+ free (prog);
+ } else {
+ ret = fopen (found_name, mode);
+ to_close = USE_FCLOSE;
+ }
+ if (!ret)
+ FATAL_PERROR (found_name);
+
+ /* Free result of previous search. */
+ if (realnameoffile)
+ free (realnameoffile);
+
+ /* Save in `name' and `realnameoffile' because other routines
+ access those globals. */
+ realnameoffile = found_name;
+ strcpy(name, realnameoffile);
+ } else
+ ret = NULL;
+
+ return ret;
+} /* end search */
+
+
+FILE *
+pksearch(const char *file, const char *mode, halfword dpi,
+ const char **name_ret, int *dpi_ret)
+{
+ FILE *ret;
+ kpse_glyph_file_type font_file;
+ string found_name = kpse_find_pk (file, dpi, &font_file);
+
+ if (found_name) {
+ ret = fopen (found_name, mode);
+ if (!ret)
+ FATAL_PERROR (name);
+
+ /* Free result of previous search. */
+ if (realnameoffile)
+ free (realnameoffile);
+ /* Save in `name' and `realnameoffile' because other routines
+ access those globals. Sigh. */
+ realnameoffile = found_name;
+ strcpy(name, realnameoffile);
+ *name_ret = font_file.name;
+ *dpi_ret = font_file.dpi;
+ } else
+ ret = NULL;
+
+ return ret;
+} /* end search */
+
+
+/* do we report file openings? */
+
+#ifdef DEBUG
+# ifdef fopen
+# undef fopen
+# endif
+# ifdef VMCMS /* IBM: VM/CMS */
+# define fopen cmsfopen
+# endif /* IBM: VM/CMS */
+FILE *
+my_real_fopen(register const char *n, register const char *t)
+{
+ FILE *tf;
+ if (dd(D_FILES)) {
+ fprintf_str(stderr, "<%s(%s)> ", n, t);
+ tf = fopen(n, t);
+ if (tf == 0)
+ fprintf(stderr, "failed\n");
+ else
+ fprintf(stderr, "succeeded\n");
+ } else
+ tf = fopen(n, t);
+#ifdef OS2
+ if (tf == (FILE *)NULL)
+ tf = fat_fopen(n, t); /* try again with filename truncated to 8.3 */
+#endif
+ return tf;
+}
+#endif
+
+#ifdef OS2
+/* truncate filename at end of fname to FAT filesystem 8.3 limit */
+/* if truncated, return fopen() with new name */
+FILE *
+fat_fopen(char *fname, char *t)
+{
+ char *np; /* pointer to name within path */
+ char nbuf[13], *ns, *nd;
+ char n[MAXPATHLEN];
+ int ni, ne;
+ FILE *tf;
+ strcpy(n, fname);
+ for (ns=n; *ns; ns++) {
+ if (*ns=='/')
+ *ns=DIRSEP;
+ }
+ np = strrchr(n,DIRSEP);
+ if (np==(char *)NULL)
+ np = n;
+ else
+ np++;
+ /* fail if it contains more than one '.' */
+ ni = 0;
+ for (ns=np; *ns; ns++) {
+ if (*ns=='.')
+ ni++;
+ }
+ if (ni>1)
+ return (FILE *)NULL;
+ /* copy it to nbuf, truncating to 8.3 */
+ ns = np;
+ nd = nbuf;
+ ni = 0;
+ while ((*ns!='.') && (*ns) && (ni<8)) {
+ *nd++ = *ns++;
+ ni++;
+ }
+ while ((*ns!='.') && (*ns)) {
+ ns++;
+ ni++;
+ }
+ ne = 0;
+ if (*ns=='.') {
+ *nd++ = *ns++;
+ while ((*ns!='.') && (*ns) && (ne<3)) {
+ *nd++ = *ns++;
+ ne++;
+ }
+ while (*ns) {
+ ns++;
+ ne++;
+ }
+ }
+ *nd++='\0';
+ if ((ni>8) || (ne>3)) {
+ strcpy(np,nbuf);
+ /* now code copied from my_real_fopen() */
+ if (dd(D_FILES)) {
+ fprintf_str(stderr, "<%s(%s)> ", n, t);
+ tf = fopen(n, t);
+ if (tf == 0)
+ fprintf(stderr, "failed\n");
+ else
+ fprintf(stderr, "succeeded\n");
+ }
+ else
+ tf = fopen(n, t);
+ return tf;
+ }
+ return (FILE *)NULL;
+}
+#endif
+
+int
+close_file(FILE *f)
+{
+ switch(to_close) {
+case USE_PCLOSE: return pclose(f);
+case USE_FCLOSE: return fclose(f);
+default: return -1;
+ }
+}
diff --git a/Build/source/texk/dvipsk/skippage.c b/Build/source/texk/dvipsk/skippage.c
new file mode 100644
index 00000000000..70fca7645b4
--- /dev/null
+++ b/Build/source/texk/dvipsk/skippage.c
@@ -0,0 +1,80 @@
+/*
+ * Skips over a page, collecting possible font definitions. A very simple
+ * case statement insures we maintain sync with the dvi file by collecting
+ * the necessary parameters; but font definitions must be processed normally.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+/*
+ * And now the big routine.
+ */
+void
+skippage(void)
+{
+ register shalfword cmd;
+ register integer i;
+
+#ifdef DEBUG
+ if (dd(D_PAGE))
+#ifdef SHORTINT
+ fprintf(stderr,"Skipping page %ld\n", pagenum);
+#else /* ~SHORTINT */
+ fprintf(stderr,"Skipping page %d\n", pagenum);
+#endif /* ~SHORTINT */
+#endif /* DEBUG */
+/* skipover(40); skip rest of bop command? how did this get in here? */
+ bopcolor(0);
+ while ((cmd=dvibyte())!=140) {
+ switch (cmd) {
+case 255: /* pTeX's dir or undefined */
+ if (!noptex) {
+ cmd = dvibyte();
+ break;
+ }
+/* illegal commands */
+case 139: case 247: case 248: case 249: /* bop, pre, post, post_post */
+case 250: case 251: case 252: case 253: case 254: /* undefined */
+ sprintf(errbuf,
+ "! DVI file contains unexpected command (%d)",cmd);
+ error(errbuf);
+/* eight byte commands */
+case 132: case 137:
+ cmd = dvibyte();
+ cmd = dvibyte();
+ cmd = dvibyte();
+ cmd = dvibyte();
+/* four byte commands */
+case 131: case 136:
+case 146: case 151: case 156: case 160: case 165: case 170: case 238:
+ cmd = dvibyte();
+/* three byte commands */
+case 130: case 135:
+case 145: case 150: case 155: case 159: case 164: case 169: case 237:
+ cmd = dvibyte();
+/* two byte commands */
+case 129: case 134:
+case 144: case 149: case 154: case 158: case 163: case 168: case 236:
+ cmd = dvibyte();
+/* one byte commands */
+case 128: case 133:
+case 143: case 148: case 153: case 157: case 162: case 167: case 235:
+ cmd = dvibyte();
+ break;
+/* specials */
+case 239: i = dvibyte(); predospecial(i, 0); break;
+case 240: i = twobytes(); predospecial(i, 0); break;
+case 241: i = threebytes(); predospecial(i, 0); break;
+case 242: i = signedquad(); predospecial(i, 0); break;
+/* font definition */
+case 243: case 244: case 245: case 246:
+ fontdef(cmd - 242);
+ break;
+default:;
+ }
+ }
+}
diff --git a/Build/source/texk/dvipsk/special.lpro b/Build/source/texk/dvipsk/special.lpro
new file mode 100644
index 00000000000..b4d3e5fe0ae
--- /dev/null
+++ b/Build/source/texk/dvipsk/special.lpro
@@ -0,0 +1,265 @@
+% special.lpro - public domain.
+% header for the \special command
+% The structure of the PostScript produced by dvips for \special is:
+% @beginspecial
+% - any number of @hsize, @hoffset, @hscale, etc., commands
+% @setspecial
+% - the user's file of PostScript commands
+% @endspecial
+
+TeXDict begin
+/SDict 200 dict N
+SDict begin
+
+/@SpecialDefaults
+ { /hs 612 N
+ /vs 792 N
+ /ho 0 N
+ /vo 0 N
+ /hsc 1 N
+ /vsc 1 N
+ /ang 0 N
+ /CLIP 0 N
+ /rwiSeen false N
+ /rhiSeen false N
+ /letter {} N /note {} N /a4 {} N /legal {} N
+ } B
+
+%
+% The following definition sets up the units that hscale/vscale are in.
+% For certain sites this might require change, but it is
+% recommended instead that any macro packages that require
+% hscale/vscale set the units appropriately via
+%
+% \special{! /@scaleunit 1 def }
+%
+% if global, or
+%
+% \special{" /@scaleunit 1 def }
+%
+% before each instance if multiple macro packages with
+% different requirements are being used.
+%
+/@scaleunit 100 N
+% s @hscale - set scale factor
+/@hscale {@scaleunit div /hsc X} B
+/@vscale {@scaleunit div /vsc X} B
+
+% d @hsize - specify a horizontal clipping dimension
+/@hsize {/hs X /CLIP 1 N} B
+/@vsize {/vs X /CLIP 1 N} B
+
+/@clip {/CLIP 2 N} B
+
+% d @hoffset - specify a shift for the figure
+/@hoffset {/ho X} B
+/@voffset {/vo X} B
+
+% a @angle - set rotation angle
+/@angle {/ang X} B
+
+%
+% Here we handle bounding box calculations, if necessary.
+%
+/@rwi { 10 div /rwi X /rwiSeen true N } B % rwi will be real width after scaling
+/@rhi { 10 div /rhi X /rhiSeen true N } B % rhi will be real height after scaling
+/@llx { /llx X } B
+/@lly { /lly X } B
+/@urx { /urx X } B
+/@ury { /ury X } B
+
+/magscale true def
+
+end % of SDict
+
+/@MacSetUp
+ { userdict /md known % if md is defined
+ { userdict /md get type /dicttype eq % and if it is a dictionary
+ {
+ userdict begin % expand it if necessary
+ md length 10 add md maxlength ge
+ {/md md dup length 20 add dict copy def}if
+ end
+ md begin % then redefine some stuff
+ /letter {} N
+ /note {} N
+ /legal {} N
+ /od{txpose
+ 1 0 mtx defaultmatrix dtransform S atan/pa X
+ newpath clippath mark
+ {transform{itransform moveto}}
+ {transform{itransform lineto}}
+ { 6 -2 roll transform
+ 6 -2 roll transform
+ 6 -2 roll transform
+ { itransform 6 2 roll
+ itransform 6 2 roll
+ itransform 6 2 roll
+ curveto
+ }
+ }
+ {{closepath}}
+ pathforall newpath counttomark array astore /gc xdf
+ pop ct 39 0 put
+ 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if
+ }N
+ /txpose{
+ pxs pys scale ppr aload pop
+ por {
+ noflips {
+ pop S neg S TR pop 1 -1 scale
+ }if
+ xflip yflip and {
+ pop S neg S TR 180 rotate 1 -1 scale
+ ppr 3 get ppr 1 get neg sub neg ppr 2 get
+ ppr 0 get neg sub neg TR
+ }if
+ xflip yflip not and {
+ pop S neg S TR pop 180 rotate
+ ppr 3 get ppr 1 get neg sub neg 0 TR
+ }if
+ yflip xflip not and {
+ ppr 1 get neg ppr 0 get neg TR
+ }if
+ }
+ {
+ noflips {
+ TR pop pop 270 rotate 1 -1 scale
+ }if
+ xflip yflip and {
+ TR pop pop 90 rotate 1 -1 scale
+ ppr 3 get ppr 1 get neg sub neg ppr 2 get
+ ppr 0 get neg sub neg TR
+ }if
+ xflip yflip not and {
+ TR pop pop 90 rotate ppr 3 get
+ ppr 1 get neg sub neg 0 TR
+ }if
+ yflip xflip not and {
+ TR pop pop 270 rotate ppr 2 get
+ ppr 0 get neg sub neg 0 S TR
+ }if
+ }ifelse
+ scaleby96 {
+ ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy
+ TR .96 dup scale neg S neg S TR
+ }if
+ }N
+ /cp {pop pop showpage pm restore}N
+ end
+ }if
+ } if
+ } N
+
+%
+% The following procedure brings us back to PostScript size. It takes
+% into account the current global dvi magnification, so graphics
+% scale with the document.
+%
+/normalscale {
+ Resolution 72 div VResolution 72 div neg scale
+ magscale { DVImag dup scale } if
+ 0 setgray
+} N
+%
+% this will be invoked as the result of a \special command (for the
+% inclusion of PostScript graphics). The basic idea is to change all
+% scaling and graphics back to defaults, but to shift the origin
+% to the current position on the page.
+
+/@beginspecial % - @beginspecial - -- enter special mode
+ { SDict begin
+ /SpecialSave save N
+ gsave
+ normalscale
+ currentpoint TR %set the current point as the user's origin
+ @SpecialDefaults % setup default offsets, scales, sizes, and angle
+ count /ocount X /dcount countdictstack N
+ } N
+
+/@setspecial % to setup user specified offsets, scales, sizes (for clipping)
+ {
+ CLIP 1 eq
+ { newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
+ closepath clip }
+ if
+ ho vo TR
+ hsc vsc scale
+ ang rotate
+ rwiSeen {
+ rwi urx llx sub div
+ rhiSeen { rhi ury lly sub div } { dup } ifelse
+ scale llx neg lly neg TR
+ } {
+ rhiSeen { rhi ury lly sub div dup scale llx neg lly neg TR } if
+ } ifelse
+ CLIP 2 eq
+ { newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto
+ closepath clip }
+ if
+ /showpage {} N
+ /erasepage {} N
+ /setpagedevice { pop } N
+ /copypage {} N
+ newpath
+ } N
+
+/@endspecial % - @endspecial - -- leave special mode
+ { count ocount sub {pop} repeat
+ countdictstack dcount sub {end} repeat
+ grestore SpecialSave restore
+ end
+ } N
+/@defspecial
+ {
+ SDict begin
+ } N
+/@fedspecial
+ {
+ end
+ } B
+
+%%% macros for tpic
+/li % x y li - -- draw line to
+ { lineto
+ } B
+
+/rl % dx dy rl - -- draw relative line
+ { rlineto
+ } B
+
+/rc % x0 y0 x1 y1 y2 y2 rc -- draw bezier curve
+ { rcurveto
+ } B
+
+/np % np - -- start a new path and save currentpoint
+ { /SaveX currentpoint /SaveY X N % remember current point
+ 1 setlinecap
+ newpath
+ } N
+
+/st % st - -- draw the last path and restore currentpoint
+ { stroke
+ SaveX SaveY moveto % restore the current point
+ } N
+
+/fil % fil -- fill the last path and restore currentpoint
+ { fill
+ SaveX SaveY moveto % restore the current point
+ } N
+
+/ellipse % xc yc xrad yrad startAngle endAngle ellipse
+ {
+ /endangle X
+ /startangle X
+ /yrad X
+ /xrad X
+
+ /savematrix matrix currentmatrix N
+
+ TR xrad yrad scale
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ } N
+%%% end of macros for tpic
+end % revert to previous dictionary
diff --git a/Build/source/texk/dvipsk/squeeze/Makefile.am b/Build/source/texk/dvipsk/squeeze/Makefile.am
new file mode 100644
index 00000000000..b75b324f128
--- /dev/null
+++ b/Build/source/texk/dvipsk/squeeze/Makefile.am
@@ -0,0 +1,16 @@
+## Makefile.am for the TeX Live subdirectory texk/dvipsk/squeeze/
+##
+## Copyright (C) 2009-2014 Peter Breitenlohner <tex-live@tug.org>
+## You may freely use, modify and/or distribute this file.
+##
+AM_CFLAGS = $(WARNING_CFLAGS)
+
+noinst_PROGRAMS = squeeze
+
+nodist_noinst_DATA = stamp-squeeze
+
+stamp-squeeze: squeeze$(EXEEXT)
+ $(AM_V_at)echo timestamp >$@
+
+CLEANFILES = stamp-squeeze
+
diff --git a/Build/source/texk/dvipsk/squeeze/Makefile.in b/Build/source/texk/dvipsk/squeeze/Makefile.in
new file mode 100644
index 00000000000..00bbca36960
--- /dev/null
+++ b/Build/source/texk/dvipsk/squeeze/Makefile.in
@@ -0,0 +1,724 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 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.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@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
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+noinst_PROGRAMS = squeeze$(EXEEXT)
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../../m4/kpse-common.m4 \
+ $(top_srcdir)/../../../m4/kpse-warnings.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+ $(am__configure_deps) $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+PROGRAMS = $(noinst_PROGRAMS)
+squeeze_SOURCES = squeeze.c
+squeeze_OBJECTS = squeeze.$(OBJEXT)
+squeeze_LDADD = $(LDADD)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/../../../build-aux/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/squeeze.Po
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = squeeze.c
+DIST_SOURCES = squeeze.c
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+DATA = $(nodist_noinst_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+AM_RECURSIVE_TARGETS = cscope
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/../../../build-aux/compile \
+ $(top_srcdir)/../../../build-aux/depcomp \
+ $(top_srcdir)/../../../build-aux/install-sh \
+ $(top_srcdir)/../../../build-aux/missing \
+ ../../../build-aux/ar-lib ../../../build-aux/compile \
+ ../../../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
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
+# Exists only to be overridden by the user if desired.
+AM_DISTCHECK_DVI_TARGET = dvi
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EXEEXT = @EXEEXT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CFLAGS = $(WARNING_CFLAGS)
+nodist_noinst_DATA = stamp-squeeze
+CLEANFILES = stamp-squeeze
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+am--refresh: Makefile
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+clean-noinstPROGRAMS:
+ -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+
+squeeze$(EXEEXT): $(squeeze_OBJECTS) $(squeeze_DEPENDENCIES) $(EXTRA_squeeze_DEPENDENCIES)
+ @rm -f squeeze$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(squeeze_OBJECTS) $(squeeze_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/squeeze.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+ test ! -s cscope.files \
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+ -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ 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 -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -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)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
+ $(am__post_remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__post_remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+ $(am__post_remove_distdir)
+
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__post_remove_distdir)
+
+dist-zstd: distdir
+ tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+ $(am__post_remove_distdir)
+
+dist-tarZ: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__post_remove_distdir)
+
+dist-shar: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
+ $(am__post_remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__post_remove_distdir)
+
+dist dist-all:
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+ $(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ *.tar.zst*) \
+ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
+ esac
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_build/sub $(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-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build/sub \
+ && ../../configure \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=../.. --prefix="$$dc_install_base" \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__post_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:
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(DATA)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+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"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f ./$(DEPDIR)/squeeze.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+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
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f ./$(DEPDIR)/squeeze.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles am--refresh check \
+ check-am clean clean-cscope clean-generic clean-noinstPROGRAMS \
+ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
+ dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
+ dist-zstd distcheck distclean distclean-compile \
+ distclean-generic 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 \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+stamp-squeeze: squeeze$(EXEEXT)
+ $(AM_V_at)echo timestamp >$@
+
+# 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/dvipsk/squeeze/aclocal.m4 b/Build/source/texk/dvipsk/squeeze/aclocal.m4
new file mode 100644
index 00000000000..d9f7204a3b4
--- /dev/null
+++ b/Build/source/texk/dvipsk/squeeze/aclocal.m4
@@ -0,0 +1,1170 @@
+# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
+
+# Copyright (C) 1996-2020 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.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+# Copyright (C) 2002-2020 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.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# 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.16'
+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.16.3], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_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.16.3])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001-2020 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.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997-2020 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.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+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='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999-2020 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.
+
+
+# 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,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
+ [$1], [CXX], [depcc="$CXX" am_compiler_list=],
+ [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+ [$1], [UPC], [depcc="$UPC" am_compiler_list=],
+ [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ 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
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ 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.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | 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
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $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 $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
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+ [--enable-dependency-tracking],
+ [do not reject slow dependency extractors])
+AS_HELP_STRING(
+ [--disable-dependency-tracking],
+ [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999-2020 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.
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # Older Autoconf 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.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ AS_CASE([$CONFIG_FILES],
+ [*\'*], [eval set x "$CONFIG_FILES"],
+ [*], [set x $CONFIG_FILES])
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`AS_DIRNAME(["$am_mf"])`
+ am_filepart=`AS_BASENAME(["$am_mf"])`
+ AM_RUN_LOG([cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles]) || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE="gmake" (or whatever is
+ necessary). You can also try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).])
+ fi
+ AS_UNSET([am_dirpart])
+ AS_UNSET([am_filepart])
+ AS_UNSET([am_mf])
+ AS_UNSET([am_rc])
+ rm -f conftest-deps.mk
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking is enabled.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
+# order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996-2020 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.
+
+# 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.
+
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# 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.65])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
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+ [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+ m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ [ok:ok],,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+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([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
+dnl macro 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
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+
+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
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2020 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.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh+set}" != 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-2020 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.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2020 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.
+
+# 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],
+[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 enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+ [AS_HELP_STRING([--]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=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+]
+)
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001-2020 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.
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+ AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+ ['0:this is the am__doit target'],
+ [AS_CASE([$s],
+ [BSD], [am__include='.include' am__quote='"'],
+ [am__include='include' am__quote=''])])
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997-2020 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.
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001-2020 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.
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1999-2020 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.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+ [whether $CC understands -c and -o together],
+ [am_cv_prog_cc_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2020 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.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996-2020 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.
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# 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 (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ 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`
+ fi
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+ alias in your environment])
+ fi
+ if test "$[2]" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+ [AC_MSG_CHECKING([that generated files are newer than configure])
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+
+# Copyright (C) 2009-2020 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.
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+ [--enable-silent-rules],
+ [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+ [--disable-silent-rules],
+ [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+ [am_cv_make_support_nested_variables],
+ [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+ dnl Using '$V' instead of '$(V)' breaks IRIX make.
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2020 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.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor 'install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in "make install-strip", and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# 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.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006-2020 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.
+
+# _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-2020 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.
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+#
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+ [m4_case([$1],
+ [ustar],
+ [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+ # There is notably a 21 bits limit for the UID and the GID. In fact,
+ # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+ # and bug#13588).
+ am_max_uid=2097151 # 2^21 - 1
+ am_max_gid=$am_max_uid
+ # The $UID and $GID variables are not portable, so we need to resort
+ # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
+ # below are definitely unexpected, so allow the users to see them
+ # (that is, avoid stderr redirection).
+ am_uid=`id -u || echo unknown`
+ am_gid=`id -g || echo unknown`
+ AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+ if test $am_uid -le $am_max_uid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi
+ AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+ if test $am_gid -le $am_max_gid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi],
+
+ [pax],
+ [],
+
+ [m4_fatal([Unknown tar format])])
+
+ AC_MSG_CHECKING([how to create a $1 tar archive])
+
+ # Go ahead even if we have the value already cached. We do so because we
+ # need to set the values for the 'am__tar' and 'am__untar' variables.
+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+ for _am_tool in $_am_tools; do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar; do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+ done
+ rm -rf conftest.dir
+
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([../../../m4/kpse-common.m4])
+m4_include([../../../m4/kpse-warnings.m4])
diff --git a/Build/source/texk/dvipsk/squeeze/configure b/Build/source/texk/dvipsk/squeeze/configure
new file mode 100755
index 00000000000..d85df99e711
--- /dev/null
+++ b/Build/source/texk/dvipsk/squeeze/configure
@@ -0,0 +1,5660 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for dvipsk squeeze 5.97.
+#
+# Report bugs to <tex-k@tug.org>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org and tex-k@tug.org
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='dvipsk squeeze'
+PACKAGE_TARNAME='dvipsk-squeeze'
+PACKAGE_VERSION='5.97'
+PACKAGE_STRING='dvipsk squeeze 5.97'
+PACKAGE_BUGREPORT='tex-k@tug.org'
+PACKAGE_URL=''
+
+ac_unique_file="squeeze.c"
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+WARNING_CFLAGS
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL
+am__quote'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_silent_rules
+enable_maintainer_mode
+enable_dependency_tracking
+enable_compiler_warnings
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures dvipsk squeeze 5.97 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/dvipsk-squeeze]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of dvipsk squeeze 5.97:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
+ --enable-maintainer-mode
+ enable make rules and dependencies not useful (and
+ sometimes confusing) to the casual installer
+ --enable-dependency-tracking
+ do not reject slow dependency extractors
+ --disable-dependency-tracking
+ speeds up one-time build
+ --enable-compiler-warnings=[no|min|yes|max|all]
+ Turn on compiler warnings [default: yes if
+ maintainer-mode, min otherwise]
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <tex-k@tug.org>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+dvipsk squeeze configure 5.97
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+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 dvipsk squeeze $as_me 5.97, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+ac_aux_dir=
+for ac_dir in ../../../build-aux "$srcdir"/../../../build-aux; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../../build-aux \"$srcdir\"/../../../build-aux" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+
+
+am__api_version='1.16'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# 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_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+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 (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ 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`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+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`
+
+if test x"${MISSING+set}" != xset; then
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != 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:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$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:${as_lineno-$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
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
+ (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ case $?:`cat confinc.out 2>/dev/null` in #(
+ '0:this is the am__doit target') :
+ case $s in #(
+ BSD) :
+ am__include='.include' am__quote='"' ;; #(
+ *) :
+ am__include='include' am__quote='' ;;
+esac ;; #(
+ *) :
+ ;;
+esac
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+$as_echo "${_am_result}" >&6; }
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ 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
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ 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.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | 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
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $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 $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
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+# Check whether --enable-compiler-warnings was given.
+if test "${enable_compiler_warnings+set}" = set; then :
+ enableval=$enable_compiler_warnings;
+fi
+case $enable_compiler_warnings in #(
+ no | min | yes | max | all) :
+ ;; #(
+ *) :
+ if test "x$enable_maintainer_mode" = xyes; then :
+ enable_compiler_warnings=yes
+else
+ enable_compiler_warnings=min
+fi ;;
+esac
+
+##tldbg KPSE_BASIC: Remember dvipsk squeeze () as Kpse_Package (for future messages).
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='dvipsk-squeeze'
+ VERSION='5.97'
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$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.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts prototypes" >&5
+$as_echo_n "checking whether the compiler accepts prototypes... " >&6; }
+if ${kb_cv_c_prototypes+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+int
+main ()
+{
+extern void foo(int i,...);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ kb_cv_c_prototypes=yes
+else
+ kb_cv_c_prototypes=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kb_cv_c_prototypes" >&5
+$as_echo "$kb_cv_c_prototypes" >&6; }
+if test "x$kb_cv_c_prototypes" = xno; then
+ as_fn_error $? "Sorry, your compiler does not understand prototypes." "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5
+$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; }
+if ${kpse_cv_warning_cflags+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$GCC" = xyes; then
+ kpse_cv_warning_cflags=
+if test "x$enable_compiler_warnings" != xno; then
+ kpse_cv_warning_cflags="-Wimplicit -Wreturn-type"
+ case `$CC -dumpversion` in #(
+ 3.4.* | 4.* | 5.*) :
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wdeclaration-after-statement" ;; #(
+ *) :
+ ;;
+esac
+ case `$CC -dumpversion` in #(
+ 3.[234].* | 4.* | 5.*) :
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wno-unknown-pragmas" ;; #(
+ *) :
+ ;;
+esac
+ if test "x$enable_compiler_warnings" != xmin; then
+ kpse_cv_warning_cflags="-Wall -Wunused $kpse_cv_warning_cflags"
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wmissing-prototypes -Wmissing-declarations"
+ if test "x$enable_compiler_warnings" != xyes; then
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wparentheses -Wswitch -Wtrigraphs -Wpointer-arith"
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wcast-qual -Wcast-align -Wwrite-strings"
+ case `$CC -dumpversion` in #(
+ 3.4.* | 4.* | 5.*) :
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wold-style-definition" ;; #(
+ *) :
+ ;;
+esac
+ if test "x$enable_compiler_warnings" != xmax; then
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wshadow"
+ fi
+ fi
+ fi
+fi
+elif test "x$enable_compiler_warnings" = xno; then
+ kpse_cv_warning_cflags=
+else
+ kpse_cv_warning_cflags= # FIXME: warning flags for non-GNU C compilers
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_warning_cflags" >&5
+$as_echo "$kpse_cv_warning_cflags" >&6; }
+WARNING_CFLAGS=$kpse_cv_warning_cflags
+
+
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ 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
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ 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.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | 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
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $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 $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
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+ac_config_files="$ac_config_files Makefile"
+
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+ g
+ s/^\n//
+ s/\n/ /g
+ p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ 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_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by dvipsk squeeze $as_me 5.97, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Configuration commands:
+$config_commands
+
+Report bugs to <tex-k@tug.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+dvipsk squeeze config.status 5.97
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h | --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Older Autoconf 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.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ case $CONFIG_FILES in #(
+ *\'*) :
+ eval set x "$CONFIG_FILES" ;; #(
+ *) :
+ set x $CONFIG_FILES ;; #(
+ *) :
+ ;;
+esac
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`$as_dirname -- "$am_mf" ||
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$am_mf" : 'X\(//\)[^/]' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$am_mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ am_filepart=`$as_basename -- "$am_mf" ||
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$am_mf" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { echo "$as_me:$LINENO: cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles" >&5
+ (cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE=\"gmake\" (or whatever is
+ necessary). You can also try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ { am_dirpart=; unset am_dirpart;}
+ { am_filepart=; unset am_filepart;}
+ { am_mf=; unset am_mf;}
+ { am_rc=; unset am_rc;}
+ rm -f conftest-deps.mk
+}
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/Build/source/texk/dvipsk/squeeze/configure.ac b/Build/source/texk/dvipsk/squeeze/configure.ac
new file mode 100644
index 00000000000..7cef2bd0983
--- /dev/null
+++ b/Build/source/texk/dvipsk/squeeze/configure.ac
@@ -0,0 +1,21 @@
+dnl Process this file with autoconf to produce a configure script.
+dnl
+dnl Copyright (C) 2009, 2012 Peter Breitenlohner <tex-live@tug.org>
+dnl
+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([dvipsk squeeze], [5.97], [tex-k@tug.org])
+AC_PREREQ([2.63])
+AC_CONFIG_SRCDIR([squeeze.c])
+AC_CONFIG_AUX_DIR([../../../build-aux])
+AC_CONFIG_MACRO_DIR([../../../m4])
+
+KPSE_BASIC([dvipsk squeeze])
+
+AC_PROG_CC
+
+AC_CONFIG_FILES([Makefile])
+
+AC_OUTPUT
diff --git a/Build/source/texk/dvipsk/squeeze/squeeze.c b/Build/source/texk/dvipsk/squeeze/squeeze.c
new file mode 100644
index 00000000000..e3ce0d6fae4
--- /dev/null
+++ b/Build/source/texk/dvipsk/squeeze/squeeze.c
@@ -0,0 +1,174 @@
+/* $Id$
+ * Copyright 1986-2008 Tomas Rokicki.
+ * You may freely use, modify and/or distribute this program or any
+ * portion thereof.
+ * This routine squeezes a PostScript file down to its
+ * minimum. We parse and then output it.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+
+#ifndef O_BINARY
+# ifdef _O_BINARY
+# define O_BINARY _O_BINARY
+# else
+# define O_BINARY 0
+# endif
+#endif /* !O_BINARY */
+
+#if O_BINARY
+# ifdef __CYGWIN__
+# include <unistd.h>
+# include <io.h>
+# define SET_BINARY(fd) setmode((fd), O_BINARY)
+# else
+# define SET_BINARY(fd) _setmode((fd), O_BINARY)
+# endif
+#endif
+
+#define LINELENGTH (72)
+#define BUFLENGTH (1000)
+
+static char buf[BUFLENGTH] ;
+static FILE *in, *out ;
+static int linepos = 0 ;
+static int lastspecial = 1 ;
+/*
+ * This next routine writes out a `special' character. In this case,
+ * we simply put it out, since any special character terminates the
+ * preceding token.
+ */
+static void
+specialout (char c)
+{
+ if (linepos + 1 > LINELENGTH) {
+ putchar('\n') ;
+ linepos = 0 ;
+ }
+ putchar(c) ;
+ linepos++ ;
+ lastspecial = 1 ;
+}
+
+static void
+strout (char *s)
+{
+ if (linepos + strlen(s) > LINELENGTH) {
+ putchar('\n') ;
+ linepos = 0 ;
+ }
+ linepos += strlen(s) ;
+ while (*s != 0)
+ putchar(*s++) ;
+ lastspecial = 1 ;
+}
+
+static void
+cmdout (char *s)
+{
+ int l ;
+
+ l = strlen(s) ;
+ if (linepos + l + 1 > LINELENGTH) {
+ putchar('\n') ;
+ linepos = 0 ;
+ lastspecial = 1 ;
+ }
+ if (! lastspecial && *s != '/') {
+ putchar(' ') ;
+ linepos++ ;
+ }
+ while (*s != 0) {
+ putchar(*s++) ;
+ }
+ linepos += l ;
+ lastspecial = 0 ;
+}
+
+
+int
+main (int argc, char *argv[])
+{
+ int c ;
+ char *b ;
+ char seeking ;
+
+ if (argc > 3 || (in=(argc < 2 ? stdin : fopen(argv[1], "r")))==NULL ||
+ (out=(argc < 3 ? stdout : fopen(argv[2], "w")))==NULL) {
+ (void)fprintf(stderr, "Usage: squeeze [infile [outfile]]\n") ;
+ exit(1) ;
+ }
+ /* Binary output is safer (for those systems which care to know the
+ difference) since PostScript can include non-printable characters. */
+#if O_BINARY
+ if (!isatty(fileno(in)))
+ SET_BINARY(fileno(in)) ;
+ if (!isatty(fileno(out)))
+ SET_BINARY(fileno(out)) ;
+#endif
+ (void)fprintf(out, "%%!\n") ;
+ while (1) {
+ c = getc(in) ;
+ if (c==EOF)
+ break ;
+ if (c=='%') {
+ while ((c=getc(in))!='\n') ;
+ }
+ if (c <= ' ')
+ continue ;
+ switch (c) {
+case '{' :
+case '}' :
+case '[' :
+case ']' :
+ specialout((char) c) ;
+ break ;
+case '<' :
+case '(' :
+ if (c=='(')
+ seeking = ')' ;
+ else
+ seeking = '>' ;
+ b = buf ;
+ *b++ = c ;
+ do {
+ c = getc(in) ;
+ if (b > buf + BUFLENGTH-2) {
+ (void)fprintf(stderr, "Overran buffer seeking %c", seeking) ;
+ exit(1) ;
+ }
+ *b++ = c ;
+ if (c=='\\')
+ *b++ = getc(in) ;
+ } while (c != seeking) ;
+ *b++ = 0 ;
+ strout(buf) ;
+ break ;
+default:
+ b = buf ;
+ while ((c>='A'&&c<='Z')||(c>='a'&&c<='z')||
+ (c>='0'&&c<='9')||(c=='/')||(c=='@')||
+ (c=='!')||(c=='"')||(c=='&')||(c=='*')||(c==':')||
+ (c==',')||(c==';')||(c=='?')||(c=='^')||(c=='~')||
+ (c=='-')||(c=='.')||(c=='#')||(c=='|')||(c=='_')||
+ (c=='=')||(c=='$')||(c=='+')) {
+ *b++ = c ;
+ c = getc(in) ;
+ }
+ if (b == buf) {
+ (void)fprintf(stderr, "Oops! Missed a case: %c.\n", c) ;
+ exit(1) ;
+ }
+ *b++ = 0 ;
+ (void)ungetc(c, in) ;
+ cmdout(buf) ;
+ }
+ }
+ if (linepos != 0)
+ putchar('\n') ;
+ exit(0) ;
+ /*NOTREACHED*/
+}
diff --git a/Build/source/texk/dvipsk/t1part.c b/Build/source/texk/dvipsk/t1part.c
new file mode 100644
index 00000000000..6b867940c36
--- /dev/null
+++ b/Build/source/texk/dvipsk/t1part.c
@@ -0,0 +1,2756 @@
+/*
+ * T1part.c version 1.59 beta Copyright (C)1994, 1996
+ * by Sergey Lesenko
+ * lesenko@mx.ihep.su
+ *
+ * It is distributed with no warranty of any kind.
+ * You may modify and use this program. It can be included
+ * in any distribution, commercial or otherwise, so long as
+ * copyright notice be preserved on all copies.
+ */
+#include "dvips.h"
+#include "t1part.h"
+#ifndef SEEK_SET
+#define SEEK_SET (0)
+#endif
+
+#ifdef BORLANDC
+void huge *UniGetMem(size)
+ub4 size;
+{
+ void huge *tmp;
+ if ((tmp =(void huge*) farcalloc(1L, size)) == NULL)
+ {
+ fprintf(stderr,"Error allocating far memory\n");
+ exit(1);
+ }
+ return tmp;
+}
+#else
+#define UniGetMem getmem
+#endif
+
+#ifdef WIN32
+/* CHAR is typedef'd by <windows.h> -- popineau@esemetz.ese-metz.fr. */
+#define CHAR CHARACTER
+#endif
+
+typedef struct Char
+{
+ unsigned char *name;
+ int length;
+ int num;
+ int choose;
+ struct Char *NextChar;
+}
+CHAR;
+
+typedef struct String
+{
+ unsigned char *name;
+ int num;
+ struct String *NextStr;
+}
+STRING;
+
+static STRING *FirstStr;
+static STRING *RevStr;
+
+static CHAR *FirstChar;
+static CHAR *FirstCharA;
+CHAR *FirstCharB;
+static CHAR *FirstCharW;
+
+int CharCount;
+int GridCount;
+int ind_ref;
+
+static unsigned char CDeCrypt(unsigned char, unsigned int *);
+static void CorrectGrid(void);
+static void OutHEX(FILE *);
+static int Afm(void);
+static int LoadVector(int, CHAR *);
+static int ChooseVect(CHAR *);
+static void ErrorOfScan(int err);
+static void NameOfProgram(void);
+
+typedef struct
+{
+ int num[4];
+ int select;
+}
+def_ref;
+
+def_ref refer[10];
+
+#ifndef min
+#define min(a, b) ((a) < (b) ? (a) : (b))
+#endif
+
+#ifndef max
+#define max(a, b) ((a) > (b) ? (a) : (b))
+#endif
+
+
+#define PFA 1
+#define PFB 2
+
+
+#define NOTHING 0
+#define FLG_ASCII 1
+#define FLG_BINARY 2
+#define FLG_EOF 3
+#define FLG_ZERO_LINE 4
+
+#define FLG_OUT_STR (-1)
+#define CHAR_NOT_DEF (-1)
+#define SEAC_NOT_END (-2)
+
+#define FLG_LOAD_BASE (1)
+
+#define STANDARD_ENC (1)
+#define SPECIAL_ENC (2)
+#define AFM_ENC (4)
+
+
+#define FLG_REENCODE (4)
+
+
+#define BYTES_PER_LINE 32
+
+#ifndef KPATHSEA_TYPES_H
+#define TRUE 1
+#define FALSE 0
+#endif /* not KPATHSEA_TYPES_H */
+
+#define LENIV 0
+#define SUBRS 1
+#define CHARSTRINGS 2
+
+#define ERR_FIRST_NUM (-1)
+#define ERR_SECOND_NUM (-2)
+#define ERR_FIRST_TOK (-3)
+#define ERR_SECOND_TOK (-4)
+#define ERR_STACK (-5)
+#define ERR_NUM_CHAR (-6)
+#define ERR_NAME_CHAR (-7)
+
+#define SUBR_STR 1
+#define CHAR_STR -1
+#define CHAR_SEAC -2
+#define SKIP_ON_DUP 3
+
+#define C1 52845
+#define C2 22719
+#define EDR 55665
+#define EER 55665
+#define CDR 4330
+
+#define MAX_ESCAPE 33
+
+#define HSTEM 1
+#define VSTEM 3
+#define VMOVETO 4
+#define CHARS_RLINETO 5
+#define HLINETO 6
+#define VLINETO 7
+#define RRCURVETO 8
+#define CHARS_CLOSEPATH 9
+#define CALLSUBR 10
+#define RETURN 11
+#define ESCAPE 12
+#define HSBW 13
+#define ENDCHAR 14
+#define CHARS_RMOVETO 21
+#define HMOVETO 22
+#define VHCURVETO 30
+#define HVCURVETO 31
+
+#define DOTSECTION 0
+#define VSTEM3 1
+#define HSTEM3 2
+#define SEAC 6
+#define SBW 7
+#define CHARS_DIV 12
+#define CALLOTHERSUBR 16
+#define POP 17
+#define SETCURRENTPOINT 33
+
+typetemp BORLAND_HUGE *temp;
+typetemp BORLAND_HUGE *begin_of_scan;
+typetemp BORLAND_HUGE *end_of_scan;
+unsigned char *line;
+unsigned char *tmpline;
+unsigned char token[64];
+unsigned char notdef[]="/.notdef";
+unsigned char grid[256];
+unsigned char tmpgrid[256];
+unsigned char psfontfile[500]; /* really should dynamically allocate */
+unsigned char psvectfile[500];
+unsigned char basevect[]="ad.enc";
+unsigned char version[] = "v1.59 beta (c)1994, 1996";
+unsigned char tmp_token[64];
+/* static int j = 0; */
+static int stack[128];
+
+ub1 buf[BUFSIZ];
+
+int loadbase = 0;
+static int encode;
+static int reencode;
+
+int find_encod;
+int lastpart=0;
+int keep_flg=0;
+int keep_num=0;
+
+int number;
+int offset;
+long value;
+int lenIV = 4;
+
+static int grow=0;
+static int level;
+static int flg_seac=0;
+
+typedef struct
+{
+ const char *command;
+ int code;
+}
+tablecommand;
+
+tablecommand TableCommand[] =
+{
+ {"callsubr", CALLSUBR}, {"callothersubr", CALLOTHERSUBR},
+ {"pop", POP }, {"seac", SEAC}, {""}
+};
+
+typedef struct
+{
+ const char *extension;
+ int num;
+}
+typefonts;
+
+
+typefonts TypeFonts[] =
+{
+ {".pfa", PFA}, {".pfb", PFB},
+ {".PFA", PFA}, {".PFB", PFB}, {""}
+};
+
+static char Dup[]="dup";
+
+typedef struct
+{
+ typetemp BORLAND_HUGE *begin;
+ int length;
+ int type;
+ int offset;
+ int oldnum;
+ int newnum;
+}
+def_key;
+
+def_key keyword[6];
+
+int FirstKey, current;
+
+int subrs, char_str;
+
+
+typedef struct
+{
+ const char *name;
+ int num;
+}
+type_key;
+
+
+type_key Key[] =
+{
+ {"/LenIV", LENIV}, {"/Subrs", SUBRS}, {"/CharStrings", CHARSTRINGS}, {""}
+};
+
+
+struct def_label
+{
+ typetemp BORLAND_HUGE *begin;
+ unsigned char skip;
+ int length;
+ short select;
+ int num;
+};
+
+struct def_label label[NUM_LABEL];
+
+
+
+static int
+DefTypeFont(unsigned char *name)
+{
+ int i;
+
+ for(i=0;*TypeFonts[i].extension;i++)
+ {
+ if(strstr((char *)name,TypeFonts[i].extension)!=0)
+ return(TypeFonts[i].num);
+ }
+ return -1;
+}
+
+static int
+GetZeroLine(unsigned char *str)
+{
+ int token_type=0;
+ if(*str!='0')
+ {
+ return (token_type=0);
+ }
+ while(*str=='0')
+ {
+ str++;
+ }
+
+ if(*str=='\n' || *str=='\r')
+ token_type= -1;
+ else
+ token_type=0;
+ return(token_type);
+}
+
+/* We get token type and its content for ASCII code */
+
+static int
+GetWord(unsigned char *mem)
+{
+ int token_type=0;
+ register unsigned char *tmp;
+ tmp=mem;
+ *tmp= *line;
+ while((*line!='\0')&&(*line!='%'))
+ {
+ if(*line=='-')
+ {
+ *tmp++= *line++;
+ }
+
+ if(isdigit(*line))
+ {
+ while(isdigit(*line))
+ {
+ *tmp++= *line++;
+ }
+ *tmp = '\0';
+ return 5;
+ }
+
+ if(*line=='/')
+ {
+ *tmp++= *line++; token_type=1;
+ }
+ if(*line=='.')
+ {
+ *tmp++= *line++;
+
+ if(token_type==1)
+ {
+ if(*line==' ')
+ {
+ *tmp = '\0';
+ return(token_type=token_type+2);
+ }
+ }
+ }
+ if(isalpha(*line))
+ {
+ *tmp++ = *line++;
+ while(!isspace(*line) && *line != '/')
+ *tmp++= *line++;
+ *tmp = '\0';
+ return(token_type=token_type+2);
+ }
+
+ token_type=0;
+ tmp=mem;
+ line++;
+ }
+ return(token_type= -1);
+}
+
+/* We get token type and its content for BINARY code */
+
+static int
+GetToken(void)
+{
+ register unsigned char *tmp;
+ int token_type=0;
+
+ tmp=token;
+
+ *tmp= *temp;
+ while(temp<end_of_scan)
+ {
+ if(*temp=='/')
+ {
+ *tmp++= *temp++; token_type=1;
+ }
+
+ if(*temp=='.')
+ {
+ *tmp++= *temp++;
+ token_type++;
+ }
+
+ if(isalpha(*temp))
+ {
+ while(isalnum(*temp) || *temp == '.')
+ *tmp++= *temp++;
+
+ *tmp = '\0';
+
+ return(token_type=token_type+2);
+ }
+ token_type=0;
+ tmp=token;
+ temp++;
+ }
+ return(token_type= -1);
+}
+
+static int
+GetNum(void)
+{
+ unsigned char *tmp;
+ tmp=token;
+ *tmp= *temp;
+
+ while(temp<end_of_scan)
+ {
+ if(isdigit(*temp))
+ {
+ while(isdigit(*temp))
+ *tmp++= *temp++;
+ *tmp = '\0';
+ return(atoi((char *)token));
+ }
+ temp++;
+ }
+
+ return -1;
+}
+
+/* We pass token without definition its type, it's for speed */
+
+static int
+PassToken(void)
+{
+ while(temp < end_of_scan)
+ {
+ if(!isspace(*temp))
+ {
+ while(!isspace(*temp))
+ temp++;
+ return 1;
+ }
+ temp++;
+ }
+ return -1;
+}
+
+/* */
+/* Simple pass off without charstring decrypting */
+/* */
+
+static int
+PassString(unsigned char flg)
+{
+ int len_str;
+
+ len_str=GetNum();
+ if(len_str<0)
+ {
+ return ERR_SECOND_NUM;
+ }
+
+ if(PassToken()<0)
+ return ERR_FIRST_TOK;
+
+
+ if(flg==1)
+ {
+ label[number].length = len_str;
+ label[number].skip = temp - label[number].begin;
+ }
+
+ temp= temp+1+len_str;
+
+ if(PassToken()<0)
+ return ERR_SECOND_TOK;
+ return 1;
+}
+
+void *
+getmem(unsigned size)
+{
+ void *tmp;
+ if ((tmp = calloc(1, size)) == NULL)
+ {
+ fprintf(stderr,"Error allocating memory\n");
+ exit(1);
+ }
+ return tmp;
+}
+
+static CHAR *
+AddChar(CHAR *TmpChar, unsigned char *CharName, int num)
+{
+ int length;
+
+ CHAR *ThisChar = (CHAR*) getmem(sizeof(CHAR));
+ length = strlen((char *) CharName);
+ ThisChar->name = (unsigned char *) getmem(length+1);
+ strcpy((char *) ThisChar->name, (char *) CharName);
+ ThisChar->length= length;
+ ThisChar->num=num;
+ ThisChar->NextChar = TmpChar;
+ TmpChar = ThisChar;
+ return TmpChar;
+}
+
+
+static void
+AddStr(unsigned char *name, int num)
+{
+ int length;
+
+ STRING *ThisStr = (STRING *) getmem(sizeof(STRING));
+ length = strlen((char *) name);
+ ThisStr->name = (unsigned char *) getmem(length+1);
+ strcpy((char *) ThisStr->name, (char *) name);
+ ThisStr->num=num;
+
+ ThisStr->NextStr = FirstStr;
+ FirstStr = ThisStr;
+}
+
+
+/* We prepare own encoding vector for output */
+
+static void
+RevChar(CHAR *TmpChar)
+{
+ int i;
+ CHAR *ThisChar = TmpChar;
+
+ while (ThisChar != NULL)
+ {
+ for(i=keyword[char_str].offset-1; i < number; i++)
+ {
+ if(ThisChar->num == label[i].num)
+ {
+ if (label[i].select==FLG_BINARY)
+ {
+ CHAR *Rev_Char = (CHAR *) getmem(sizeof(CHAR));
+ Rev_Char->name = ThisChar->name;
+ Rev_Char->num = ThisChar->num;
+
+ Rev_Char->NextChar = FirstCharW;
+ FirstCharW = Rev_Char;
+ break;
+ }
+ }
+ }
+ ThisChar = ThisChar->NextChar;
+ }
+}
+
+/* And here we produce own resulting encoding vector for partial font */
+
+static void
+OutChar(CHAR *TmpChar, FILE *fout)
+{
+
+ CHAR *ThisChar = TmpChar;
+
+ while (ThisChar != NULL)
+ {
+ CHAR *tm = ThisChar;
+ if (ThisChar->num >= 0)
+#ifdef SHIFTLOWCHARS
+ fprintf(fout, "dup %d %s put\n",T1Char(ThisChar->num),ThisChar->name);
+#else
+ fprintf(fout, "dup %d %s put\n",ThisChar->num,ThisChar->name);
+#endif
+ ThisChar = ThisChar->NextChar;
+ free(tm);
+ }
+
+ FirstCharW = NULL;
+}
+
+
+
+
+/* We prepare strings list for output */
+
+static void
+Reeverse(STRING *TmpStr)
+{
+
+ int tmp;
+
+ if(encode==AFM_ENC)
+ tmp = -2;
+ else
+ tmp=0;
+
+
+ while (TmpStr != NULL)
+ {
+
+ if(TmpStr->num < tmp)
+ {
+ STRING *ThisStr = (STRING *) getmem(sizeof(STRING));
+ ThisStr->name = TmpStr->name;
+
+ ThisStr->NextStr = RevStr;
+ RevStr = ThisStr;
+ }
+ TmpStr = TmpStr->NextStr;
+ }
+}
+
+
+/* And here we post strings to out */
+
+static void
+OutStr(STRING *TmpStr, FILE *fout)
+{
+ STRING *ThisStr = TmpStr;
+ if(encode==AFM_ENC)
+ fprintf(fout, "readonly def\n");
+ while (ThisStr != NULL)
+ {
+ STRING *tm = ThisStr;
+ fprintf(fout, "%s",ThisStr->name);
+ ThisStr = ThisStr->NextStr;
+ free(tm);
+ }
+ RevStr = NULL;
+}
+
+
+
+
+
+
+static void
+PrintChar(CHAR *TmpChar)
+{
+ CHAR *ThisChar = TmpChar;
+ while (ThisChar != NULL)
+ {
+ if(ThisChar->choose==1)
+ {
+ fprintf_str(stderr, " Debug: Char %d '%s'\n",
+ ThisChar->num,ThisChar->name);
+ }
+ ThisChar = ThisChar->NextChar;
+ }
+
+}
+
+
+static int
+ClearB(void)
+{
+ CHAR *ThisChar = FirstCharB;
+ while (ThisChar != NULL)
+ {
+ ThisChar->choose=0;
+ ThisChar = ThisChar->NextChar;
+ }
+ return 1;
+}
+
+/* We mark chars in encoding vector thanks same names from
+reencoding vector */
+
+static int
+ChooseChar(unsigned char *name, CHAR *TmpChar)
+{
+ int length;
+ CHAR *ThisChar = TmpChar;
+ length=strlen((char *) name);
+ while (ThisChar != NULL)
+ {
+ CHAR *NextChar = ThisChar->NextChar;
+ if(ThisChar->length==length)
+ {
+ if (strcmp((char *) name, (char *) ThisChar->name) == 0)
+ {
+ ThisChar->choose=1;
+ return 1;
+ }
+ }
+/*
+ * If we couldn't find it, NextChar is NULL here. We fake up an entry
+ * (assuming it really does exist in the font). Fix is from Melissa
+ * O'Neill; bugs in application of fix due to me.
+ */
+ if (NextChar == 0) {
+ NextChar = (CHAR *) getmem(sizeof(CHAR));
+ NextChar->name = (unsigned char *) getmem(length + 1);
+ strcpy((char *) NextChar->name, (char *) name);
+ NextChar->length = length;
+ NextChar->num = -1;
+ NextChar->NextChar = 0;
+ NextChar->choose = 1;
+ ThisChar->NextChar = NextChar;
+ }
+ ThisChar = NextChar;
+ }
+/*
+ * Can't ever get here.
+ */
+ return -1;
+}
+
+/* We find index in label array for char, wich is required
+for compose char, if it uses SEAC command */
+
+static int
+FindSeac(int num)
+{
+ int i;
+
+ for(i=keyword[char_str].offset-1; i < number; i++)
+ {
+ if(label[i].num==num)
+ {
+ return i;
+ }
+ }
+ return -1;
+}
+
+
+static void ClearCW(CHAR *);
+
+static int
+FindCharW(unsigned char *name, int length)
+{
+ CHAR *ThisChar = FirstCharW;
+
+ int find = 0;
+ int keep_char = 0;
+ int tmp = 0;
+ int tmp_num = 0;
+
+ int ddd = 0;
+
+#ifdef DEBUG
+ if(dd(D_VIEW_VECTOR))
+ {
+ ddd = 1;
+ }
+#endif
+
+ while (ThisChar != NULL)
+ {
+ /* since ClearCW may free ThisChar, follow the pointer now. */
+ CHAR *NextChar = ThisChar->NextChar;
+
+ if(ThisChar->length==length)
+ {
+ if (strcmp((char *) name, (char *) ThisChar->name) == 0)
+ {
+ if(ThisChar->choose==1)
+ {
+ if(find !=2)
+ {
+ find = 2;
+ tmp=FLG_BINARY;
+ label[number].num=ThisChar->num;
+ }
+ }
+ else
+ {
+ keep_char = 0;
+ if(find != 2)
+ {
+ find = 1;
+ tmp_num = ThisChar->num;
+ }
+ }
+
+
+ if(keep_char == 0)
+ {
+ ClearCW(ThisChar);
+ }
+
+ if((find == 2)&&(ddd == 1))
+ keep_char = 1;
+ }
+ }
+ ThisChar = NextChar;
+ }
+
+ if(find == 1)
+ {
+ tmp=NOTHING;
+ label[number].num=tmp_num;
+ }
+ return tmp;
+}
+
+
+static void
+ClearCW(CHAR *ThisChar)
+{
+
+ if (ThisChar == FirstCharW)
+ FirstCharW = ThisChar->NextChar;
+ else
+ {
+ CHAR *tm = FirstCharW;
+ while (tm != NULL)
+ {
+ if (ThisChar == tm->NextChar)
+ {
+ tm->NextChar = ThisChar->NextChar;
+ break;
+ }
+ tm = tm->NextChar;
+ }
+ }
+ free(ThisChar);
+}
+
+
+/* We build temporary 'work' encoding vector only for searching
+needed chars */
+
+static int
+WorkVect(CHAR *TmpChar)
+{
+ while (TmpChar != NULL) {
+ {
+ CHAR *ThisChar = (CHAR *) getmem(sizeof(CHAR));
+ ThisChar->name = TmpChar->name;
+ ThisChar->length = TmpChar->length;
+ ThisChar->num = TmpChar->num;
+ ThisChar->choose = TmpChar->choose;
+
+ ThisChar->NextChar = FirstCharW;
+ FirstCharW = ThisChar;
+ }
+ TmpChar = TmpChar->NextChar;
+ }
+ return 0;
+}
+
+
+static void
+UnDefineCharsW(void)
+{
+ CHAR *ThisChar = FirstCharW;
+ while (ThisChar != NULL)
+ {
+ CHAR *tm = ThisChar;
+ ThisChar = ThisChar->NextChar;
+ free(tm);
+ }
+ FirstCharW = NULL;
+ CharCount = 0;
+}
+
+CHAR *
+UnDefineChars(CHAR *TmpChar)
+{
+ CHAR *ThisChar = TmpChar;
+ while (ThisChar != NULL)
+ {
+ CHAR *tm = ThisChar;
+ free(ThisChar->name);
+ ThisChar = ThisChar->NextChar;
+ free(tm);
+ }
+ TmpChar = NULL;
+ CharCount = 0;
+ return TmpChar;
+}
+
+
+
+static void
+UnDefineStr(void)
+{
+ STRING *ThisStr = FirstStr;
+ while (ThisStr != NULL)
+ {
+ STRING *tm = ThisStr;
+ free(ThisStr->name);
+ ThisStr = ThisStr->NextStr;
+ free(tm);
+ }
+ FirstStr = NULL;
+}
+
+
+
+/* */
+/* We mark subroutines without charstring decrypting */
+/* */
+
+static void
+ScanSubrs(int i)
+{
+ int err_num;
+ int word_type = 0;
+ int len_dup;
+ int num_err=0;
+ int test=0;
+
+ len_dup = strlen(Dup);
+
+ for(; number < keyword[i].oldnum + keyword[i].offset;)
+ {
+ if((word_type=GetToken())>0)
+ {
+ if(word_type==2)
+ {
+ if(!strcmp((char *) token,Dup))
+ {
+ if(test==0)
+ test=1;
+ label[number].begin = temp-len_dup;
+
+ err_num=GetNum();
+ if(err_num<0)
+ ;
+ else
+ {
+ if(err_num<4)
+ {
+ label[number].select=FLG_BINARY;
+ keyword[i].newnum++;
+
+ }
+ }
+
+ label[number].num=err_num;
+
+ num_err=PassString(1);
+
+ if(num_err<0)
+ {
+ ErrorOfScan(num_err);
+ fprintf(stderr,"in %d Subr string", number - 1);
+ exit(1);
+ }
+ if(test>1)
+ PassToken();
+
+ number++;
+ }
+ else
+ {
+ if(test>=1)
+ test++;
+ }
+ }
+ }
+ else
+ {
+ ErrorOfScan(0);
+ fprintf(stderr,
+ "Token 'def' not found in %d Subr string ", number - 1);
+ exit(1);
+ }
+ }
+}
+
+static void
+ViewReturnCall(int num_err, int top, int *pstack,
+ int j, int depth)
+{
+ int k,m;
+
+#ifdef DEBUG
+ if((dd(D_CALL_SUBR))&&(num_err>0))
+ {
+ if(grow==1)
+ {
+ grow=0;
+ fprintf(stderr, "\n Top: ");
+ }
+ else
+ fprintf(stderr, " Back: ");
+ }
+
+#endif
+
+ if(num_err<0)
+ {
+ if(grow==1)
+ {
+ grow=0;
+ fprintf(stderr, "\n ERROR: ");
+ ErrorOfScan(num_err);
+ }
+ else
+ fprintf(stderr, " Back: ");
+ }
+
+ fprintf(stderr, " %d Subr \n", top);
+
+ fprintf(stderr," %dth level> STACK: ", level);
+
+ for(m=0; m < j; m++, pstack++)
+ {
+ if(depth>(j-(m+1)))
+ {
+ for(k=0;
+ TableCommand[k].command;
+ k++)
+ {
+ if(TableCommand[k].code==*pstack)
+ {
+ fprintf_str(stderr," %s",
+ TableCommand[k].command);
+ k=0;
+ break;
+ }
+ }
+ if(k!=0)
+ fprintf(stderr," (%d)", *pstack);
+ }
+ else
+ fprintf(stderr, " %d", *pstack);
+ }
+ fprintf(stderr, " \n");
+}
+
+/* */
+/* We decrypt charstring with recursive descent */
+/* */
+
+static int
+DeCodeStr(int num, int numseac)
+{
+ unsigned int loccr;
+ unsigned char byte;
+ static int j;
+ int i;
+ unsigned char jj,k;
+ int tmpnum;
+ int depth = 0;
+ int num_err = 0;
+ int len_str;
+ typetemp BORLAND_HUGE *loc;
+ typetemp BORLAND_HUGE *end_str;
+ int pstack[64];
+ int last_subr;
+
+ if(num > CHAR_STR)
+ {
+ last_subr=keyword[subrs].offset+keyword[subrs].oldnum;
+
+ for(tmpnum=keyword[subrs].offset; tmpnum<last_subr; tmpnum++)
+ {
+ if(label[tmpnum].num==num)
+ break;
+ }
+
+ if(tmpnum==last_subr)
+ {
+ fprintf(stderr, " Error: %d Subr not found \n", num);
+ exit(1);
+ }
+ if(label[tmpnum].select==FLG_BINARY)
+ {
+ if(j==0)
+ return 1;
+ }
+ else
+ {
+ label[tmpnum].select=FLG_BINARY;
+ if(num+1 > keyword[subrs].newnum ) /* max num of subr */
+ keyword[subrs].newnum = num+1;
+ }
+ loc = label[tmpnum].begin + label[tmpnum].skip;
+ len_str=label[tmpnum].length;
+ }
+ else
+ {
+ j=0;
+
+ if(num == CHAR_SEAC)
+ {
+ if(label[numseac].select!=FLG_BINARY)
+ {
+ label[numseac].select=FLG_BINARY;
+ keyword[char_str].newnum++;
+ temp = label[numseac].begin;
+ }
+ else return 1;
+ }
+ len_str=GetNum();
+
+ if(len_str < 0)
+ {
+ return ERR_SECOND_NUM;
+ }
+ num_err = PassToken();
+ if(num_err < 0)
+ {
+ return ERR_FIRST_TOK;
+ }
+ loc=temp;
+ }
+ loc++;
+
+ end_str=loc+len_str;
+
+ loccr = CDR;
+
+ for (i = 0; i < lenIV; i++,loc++)
+ {
+ byte = CDeCrypt(*loc, &loccr);
+ }
+ for (; loc < end_str;)
+ {
+ byte = CDeCrypt(*loc++, &loccr);
+ if (byte == RETURN)
+ {
+ j=0;
+ break;
+ }
+ else if (byte == ESCAPE)
+ {
+ byte = CDeCrypt(*loc++, &loccr);
+ if (byte > MAX_ESCAPE)
+ fprintf_str(stderr,
+ "Error: not_defined_e%d in %s", byte, psfontfile);
+ else
+ {
+ switch(byte)
+ {
+ case DOTSECTION : j=0; break;
+ case VSTEM3 : j=0; break;
+ case HSTEM3 : j=0; break;
+ case SEAC :
+ stack[j++]=byte;
+ grow=1;
+ level++;
+ jj=j;
+ for(k=0;k<jj;k++)
+ pstack[k]=stack[k];
+ num_err=FindSeac(pstack[jj-3]);
+ if(num_err<0)
+ {
+ flg_seac=1;
+ CharCount++;
+ keyword[char_str].newnum--;
+ if(flg_seac > -3)
+ label[number].select=SEAC_NOT_END;
+ grow=0;
+ level=0;
+ j=0;
+ break;
+ }
+
+ num_err=DeCodeStr(CHAR_SEAC, num_err);
+ level--;
+
+#ifdef DEBUG
+ if((num_err<0)||(dd(D_CALL_SUBR)))
+#else
+ if(num_err<0)
+#endif
+ ViewReturnCall
+ (num_err, pstack[jj-3],pstack,jj,1);
+ grow=1;
+ level++;
+ num_err=FindSeac(pstack[jj-2]);
+ if(num_err<0)
+ {
+ flg_seac=1;
+ CharCount++;
+ keyword[char_str].newnum--;
+ keyword[char_str].newnum--;
+ if(flg_seac > -3)
+ label[number].select=SEAC_NOT_END;
+ grow=0;
+ level=0;
+ j=0;
+ break;
+ }
+ num_err=DeCodeStr(CHAR_SEAC, num_err);
+ level--;
+#ifdef DEBUG
+ if((num_err<0)||(dd(D_CALL_SUBR)))
+#else
+ if(num_err<0)
+#endif
+
+ ViewReturnCall
+ (num_err, pstack[jj-2],pstack,jj,1);
+
+ if(num_err<0)
+ return ERR_STACK;
+ j=0; break;
+ case SBW : j=0; break;
+ case CHARS_DIV : j=0; break;
+ case CALLOTHERSUBR : stack[j++]=byte;
+ depth=depth+2;
+ break;
+ case POP : stack[j++]=byte;
+ depth=depth+2;
+ break;
+ case SETCURRENTPOINT : j=0; break;
+ }
+ }
+ continue;
+ }
+ else if (byte < 32)
+ {
+ switch(byte)
+ {
+ case HSTEM : j=0; break;
+ case VSTEM : j=0; break;
+ case VMOVETO : j=0; break;
+ case CHARS_RLINETO : j=0; break;
+ case HLINETO : j=0; break;
+ case VLINETO : j=0; break;
+ case RRCURVETO : j=0; break;
+ case CHARS_CLOSEPATH : j=0; break;
+ case CALLSUBR : stack[j++]=byte;
+ depth=depth+2;
+ level++;
+ grow=1;
+ jj=j;
+ j=j-depth;
+ for(k=0;k<jj;k++)
+ pstack[k]=stack[k];
+
+ num_err = DeCodeStr(stack[j],0);
+
+ level--;
+#ifdef DEBUG
+ if((num_err<0)||(dd(D_CALL_SUBR)))
+#else
+ if(num_err<0)
+#endif
+ ViewReturnCall
+ (num_err, pstack[jj-depth], pstack,jj,depth/2);
+
+ if(num_err<0)
+ return ERR_STACK;
+ else
+ {
+ depth=0;
+ break;
+ }
+ case RETURN : j=0; break;
+ case ESCAPE : break;
+ case HSBW : j=0; break;
+ case ENDCHAR : j=0; break;
+ case CHARS_RMOVETO : j=0; break;
+ case HMOVETO : j=0; break;
+ case VHCURVETO : j=0; break;
+ case HVCURVETO : j=0; break;
+ }
+ }
+ if (byte >= 32)
+ {
+ if (byte <= 246)
+ {
+ value= byte - 139;
+ stack[j++]=value;
+ }
+ else if ((byte >= 247) && (byte <= 250))
+ {
+ value= (byte - 247) * 256 + CDeCrypt(*loc++, &loccr) + 108;
+ stack[j++]=value;
+ }
+ else if ((byte >= 251) && (byte <= 254))
+ {
+ value= -(byte - 251) * 256 - CDeCrypt(*loc++, &loccr) - 108;
+ stack[j++]=value;
+ }
+ else if (byte == 255)
+ {
+ value = CDeCrypt(*loc++, &loccr);
+ value <<= 8;
+ value += CDeCrypt(*loc++, &loccr);
+ value <<= 8;
+ value += CDeCrypt(*loc++, &loccr);
+ value <<= 8;
+ value += CDeCrypt(*loc++, &loccr);
+ stack[j++]=value;
+ }
+ }
+ }
+ if(num == CHAR_STR)
+ {
+ temp=loc;
+ num_err = PassToken();
+ if(num_err<0)
+ {
+ return ERR_SECOND_TOK;
+ }
+ }
+ return 1;
+}
+
+/* */
+/* We mark only necessary charstring */
+/* */
+
+
+static void
+ScanChars(int i)
+{
+
+ int word_type=0;
+ int found;
+ int str_len;
+ int max_num;
+ int counter;
+ int num_err = 0;
+ typetemp BORLAND_HUGE *tmptemp;
+
+
+ CharCount++;
+ counter=number;
+ max_num = keyword[i].offset+keyword[i].oldnum;
+
+ while( number < max_num )
+ {
+ if((word_type=GetToken())>0)
+ {
+ if(word_type>=3)
+ {
+ strcpy((char *) tmp_token, (char *) token);
+ str_len = strlen((char *) token);
+
+
+ if(CharCount!=0)
+ {
+
+ num_err=FindCharW(token, str_len);
+
+ if(num_err==FLG_BINARY)
+ {
+ CharCount--;
+ found=num_err;
+ keyword[i].newnum++;
+ }
+ else
+ {
+#ifdef DEBUG
+
+ if(dd(D_VIEW_VECTOR)&&(num_err==-1))
+ {
+ fprintf_str(stderr,
+ " Debug: Char '%s' not used in WorkVector\n", token);
+
+ }
+#endif
+ if(word_type>3)
+ {
+ if(strstr((char *) token, (char *) notdef)!=NULL)
+ {
+ CharCount--;
+ label[number].num = -2;
+ found=FLG_BINARY;
+ keyword[i].newnum++;
+ }
+ else
+ found=NOTHING;
+ }
+ else
+ found=NOTHING;
+ }
+ }
+ else
+ {
+ found=NOTHING;
+ }
+
+ label[number].begin = temp-str_len;
+ label[number].select = found;
+
+ switch(found)
+ {
+ case FLG_BINARY:
+ tmptemp=temp;
+ for(subrs=FirstKey; subrs<char_str; subrs++)
+ {
+ level=0;
+ if(subrs!=FirstKey)
+ {
+ temp=tmptemp;
+ }
+
+ num_err=DeCodeStr(CHAR_STR,0);
+
+ }
+#ifdef DEBUG
+ if(dd(D_CALL_SUBR))
+ {
+ if(num_err>0)
+ fprintf_str(stderr,
+ " Debug for Char '%s'\n", tmp_token);
+ }
+#endif
+ break;
+ case NOTHING:
+
+ num_err=PassString(0);
+ break;
+ }
+
+ if(num_err<0)
+ {
+ ErrorOfScan(num_err);
+ fprintf_str(stderr,"in Char string of '%s'", tmp_token);
+ exit(1);
+ }
+ number++;
+ }
+ }
+ else
+ {
+ fprintf_str(stderr,
+ "\n File <%s> ended before all chars have been found.", psfontfile);
+
+ fprintf(stderr,
+ "\n We scan %d Chars from %d",
+ counter - (2 + keyword[subrs].oldnum),
+ keyword[i].oldnum);
+
+ if(tmp_token!=NULL)
+ {
+ fprintf_str(stderr, "\n Last seen token was '%s'\n", tmp_token);
+ }
+ exit(1);
+ }
+ }
+
+ if(flg_seac!=0)
+ {
+ tmptemp=temp;
+ flg_seac--;
+ for(; counter<max_num; counter++)
+ {
+ if((int) label[counter].select==SEAC_NOT_END)
+ {
+ for(subrs=FirstKey; subrs<char_str; subrs++)
+ {
+ level=0;
+ temp=label[counter].begin;
+ num_err=DeCodeStr(CHAR_STR,0);
+ }
+ if(num_err<0)
+ {
+ fprintf(stderr," Warning: %d char not choose during SEAC\n",
+ label[counter].num);
+ }
+ else
+ {
+ CharCount--;
+ label[counter].select=FLG_BINARY;
+ if(CharCount==0)
+ break;
+ }
+ }
+ }
+
+ temp=tmptemp;
+ }
+
+ if(CharCount!=0)
+ {
+ fprintf(stderr," WARNING: Not all chars found.");
+ PrintChar(FirstCharW);
+
+ }
+}
+
+static void
+LastLook(void)
+{
+ label[number].begin = temp;
+ label[number].select = FLG_BINARY;
+ number++;
+}
+
+static int
+FindKeyWord(int First_Key, int lastkey)
+{
+ int word_type=0;
+ int i;
+ int tmp_num=0;
+
+ for(;;)
+ {
+ if((word_type=GetToken())>0)
+ {
+ if(word_type==3)
+ {
+ for(i=First_Key; i<=lastkey; i++)
+ {
+ if(!strcmp((char *) token, Key[i].name))
+ {
+ tmp_num = GetNum();
+ if(tmp_num<0)
+ {
+ fprintf_str(stderr,
+ "\n ERROR: Number not found for '%s' in <%s>",
+ Key[i].name, psfontfile);
+ exit(1);
+ }
+ keyword[current].oldnum = tmp_num;
+ keyword[current].length=strlen((char *) token);
+ keyword[current].begin=temp - keyword[current].length;
+ return i;
+ }
+ }
+ }
+ }
+ else
+ {
+ fprintf_str(stderr,
+ "\n ERROR: In <%s> keyword not found:", psfontfile);
+
+ for(i=First_Key; i<=lastkey; i++)
+ fprintf_str(stderr,"\n %dth > '%s' ",i,Key[i].name);
+ exit(1);
+ }
+ }
+}
+
+/* To increase scan speed we use dynamic range of keywords */
+
+static int
+ScanBinary(void)
+{
+ int i;
+ int firstnum, lastnum;
+ firstnum= LENIV;
+ lastnum=SUBRS;
+
+ number=0;
+ label[number].begin = begin_of_scan;
+ temp = label[number].begin;
+ label[number].select = FLG_BINARY;
+ offset= ++number;
+
+ for (current=0, FirstKey=current;; current++)
+ {
+ i=FindKeyWord(firstnum,lastnum);
+ switch(i)
+ {
+ case LENIV:
+ FirstKey++;
+ firstnum=SUBRS;
+ lastnum=SUBRS;
+ lenIV=keyword[current].oldnum;
+ keyword[current].type=Key[0].num;
+ break;
+ case SUBRS:
+ firstnum=SUBRS;
+ lastnum= CHARSTRINGS;
+ keyword[current].offset=number;
+ keyword[current].newnum=0;
+ keyword[current].type=Key[1].num;
+ ScanSubrs(current);
+ LastLook();
+ break;
+ case CHARSTRINGS:
+ char_str=current;
+ keyword[current].offset=number;
+ keyword[current].newnum=0;
+ keyword[current].type=Key[2].num;
+ ScanChars(current);
+ LastLook();
+#ifdef DEBUG
+ if(dd(D_CALL_SUBR))
+ {
+ for(i=0;i<=2;i++)
+ {
+ if(keyword[i].oldnum!=0)
+ fprintf_str(stderr, " Result for <%s>: %s %d (instead %d) \n",
+ psfontfile, Key[keyword[i].type].name,keyword[i].newnum, keyword[i].oldnum);
+ }
+
+ }
+#endif
+ return 1;
+ }
+ }
+}
+
+static unsigned char *
+itoasp(int n, unsigned char *s, int len)
+{
+ static int i, j;
+
+ j++;
+ if(n/10)
+ itoasp(n/10,s,len);
+ else
+ i=0;
+ s[i++]=abs(n)%10+'0';
+ j--;
+ if(j==0)
+ {
+ for(; i<len;)
+ s[i++]=' ';
+ s[i]='\0';
+ return s;
+ }
+ return NULL;
+}
+
+static void
+SubstNum(void)
+{
+ int i, j;
+
+ for(i=FirstKey;i<=char_str;i++)
+ {
+ itoasp(keyword[i].newnum,token,keyword[i].length);
+ temp=keyword[i].begin;
+ for(j=0;token[j];++j,++temp)
+ {
+ *temp=token[j];
+ }
+ temp=keyword[i].begin;
+ }
+}
+
+static ub4
+little4(ub1 *buff)
+{
+ return (ub4) buff[0] +
+ ((ub4) buff[1] << 8) +
+ ((ub4) buff[2] << 16) +
+ ((ub4) buff[3] << 24);
+}
+
+unsigned short int c1 = C1, c2 = C2;
+unsigned short int edr;
+
+
+static unsigned char
+CDeCrypt(unsigned char cipher, unsigned int *lcdr)
+{
+ register unsigned char plain;
+
+ plain = (cipher ^ (*lcdr >> 8));
+ *lcdr = (cipher + *lcdr) * c1 + c2;
+ return plain;
+}
+
+unsigned short int eer;
+
+/* We find end of own vector with non StandardEncoding,
+
+
+*/
+
+
+static int
+EndOfEncoding(int err_num)
+{
+
+ int j;
+ int i = 0;
+ int flg_get_word=0;
+
+
+ static const char *RefKey[] =
+ {
+ "readonly",
+ "getinterval",
+ "exch",
+ "def",
+ ""
+ };
+
+ for(;;)
+ {
+ if(flg_get_word==0)
+ flg_get_word = 1;
+ else
+ {
+ err_num=GetWord(token);
+
+ }
+
+ if(err_num <= 0)
+ return -1;
+
+ if(err_num==5)
+ refer[ind_ref].num[i++]=atoi((char *) token);
+ else
+ {
+ for(j=0; *RefKey[j]; j++)
+ {
+ if(strcmp((char *) token, RefKey[j]) ==0)
+ break;
+ }
+ switch(j)
+ {
+ case 0:
+ case 3:
+ find_encod=1;
+ keep_num = -2;
+ if(ind_ref!=0)
+ {
+ CorrectGrid();
+ }
+ return 1;
+
+ case 1:
+ break;
+
+ case 2:
+ if(i==1)
+ {
+ refer[ind_ref].num[1] = 1;
+ refer[ind_ref].num[2] = refer[ind_ref].num[0];
+ GetWord(token);
+ refer[ind_ref].num[0]= atoi((char *) token);
+ }
+ i=0;
+ refer[ind_ref].select=1;
+ ind_ref++;
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+}
+
+/* We rebuild grid for case
+ "dup dup 161 10 getinterval 0 exch putinterval
+ dup dup 173 23 getinterval 10 exch putinterval
+ dup dup 127 exch 196 get put readonly def"
+in non StandardEncoding */
+
+
+static void
+CorrectGrid(void)
+{
+ int i, j, k, imax;
+
+
+ for(j=0; j<=ind_ref; j++){
+ if(refer[j].select==1){
+ imax= refer[j].num[1] + refer[j].num[2];
+
+ for(k=0, i=refer[j].num[2]; i< imax; k++,i++){
+ if(grid[i]==1){
+ grid[i]=0;
+ grid[k+refer[j].num[0]]=1;
+ }
+ }
+ }
+ }
+}
+ /* We build vector for non StandardEncoding */
+
+static int
+CharEncoding(void)
+{
+ int err_token=0;
+ int num=0;
+ int seen = 0;
+
+ while (1) {
+ err_token=GetWord(token);
+
+ if(err_token==2)
+ {
+ if(strcmp((char *) token, Dup) ==0)
+ {
+ err_token=GetWord(token);
+ if(err_token<0)
+ return ERR_NUM_CHAR;
+
+ if(err_token!=2) /* define "dup word" */
+ {
+ num=atoi((char *) token);
+
+ err_token=GetWord(token);
+ if(err_token<0)
+ {
+ return ERR_NAME_CHAR;
+ }
+ FirstChar=AddChar(FirstChar,token, num);
+ keep_num=num;
+ keep_flg=1;
+ seen++;
+ err_token = GetWord(token);
+ }
+ } else {
+
+ if(keep_flg==1)
+ {
+ keep_num=FLG_OUT_STR;
+
+ if(EndOfEncoding(err_token)<0)
+ {
+ return -1;
+ }
+ }
+ }
+ } else
+ return seen;
+ }
+}
+
+
+
+static void
+FindEncoding(void)
+{
+ int num_err=0;
+ int tmpnum;
+
+ line=tmpline;
+
+ if(encode==0)
+ {
+
+ while((num_err=GetWord(token))>=0)
+ {
+ if(num_err==3)
+ {
+ if (strcmp((char *) token,"/Encoding") == 0)
+ {
+
+ tmpnum=GetWord(token);
+
+ if(tmpnum==5)
+ {
+ encode=SPECIAL_ENC;
+ }
+
+ else
+ {
+ find_encod=1;
+ encode=STANDARD_ENC;
+ }
+ return;
+ }
+ }
+ }
+ }
+
+ else
+ {
+ num_err= CharEncoding();
+ if(num_err<0)
+ {
+ ErrorOfScan(num_err);
+ fprintf_str(stderr,
+ "\n ERROR in encoding vector in <%s>", psfontfile);
+ exit(1);
+ }
+ }
+}
+
+/* Before parse in BINARY portion of font we should mark needed chars,
+reencode them if there is reencoding vector for this case and
+build work vector */
+
+static void
+CheckChoosing(void)
+{
+
+ CHAR *TmpChar;
+ int err_num, i;
+
+ if(encode==STANDARD_ENC)
+ {
+ TmpChar = FirstCharB;
+ }
+ else
+ {
+ if(encode==SPECIAL_ENC)
+ {
+ TmpChar = FirstChar;
+ }
+ else
+ {
+ fprintf_str(stderr,
+ "WARNING: '/Encoding' not found in <%s>\n", psfontfile);
+ exit(1);
+ }
+ }
+
+ if(reencode==FLG_REENCODE)
+ err_num=LoadVector(reencode, TmpChar);
+ else
+ err_num=ChooseVect(TmpChar);
+
+ if(err_num<0)
+ {
+ Afm();
+ encode=AFM_ENC;
+
+ TmpChar = FirstCharA;
+
+ for(i=0;i<=255;i++)
+ grid[i]=tmpgrid[i];
+
+
+ if(reencode==FLG_REENCODE)
+ err_num=LoadVector(reencode, TmpChar);
+ else
+ err_num=ChooseVect(TmpChar);
+
+ if(err_num<0)
+ {
+ fprintf(stderr,
+ "\n Warning: after loading AFM file \n");
+
+ fprintf_str(stderr,
+ " only %d chars found instead %d for <%s>\n",
+ CharCount, GridCount, psfontfile);
+ }
+
+ }
+ WorkVect(TmpChar);
+
+#ifdef DEBUG
+
+ if(dd(D_VIEW_VECTOR))
+ {
+ fprintf(stderr, "\n");
+ if(encode==1)
+ fprintf(stderr, " Encoding: standard \n");
+ else
+ fprintf(stderr, " Encoding: not standard \n");
+
+ if(reencode==FLG_REENCODE)
+ fprintf_str(stderr, " with reencode vector <%s>\n", psvectfile);
+
+ PrintChar(FirstCharW);
+ }
+#endif
+
+}
+
+/*
+ * As we write the output file, we search for /UniqueID, and if we find
+ * such, we munge it. We need to do this because the font is only partial,
+ * and if we send out a valid UniqueID, this well may mess up future jobs
+ * that use this font, but characters that we do not include. We munge
+ * the string from /UniqueID to /UniqueXX just to make it more clear
+ * what we've done.
+ */
+
+static char *
+KillUnique(char *s)
+{
+ char *r = strstr(s, "/UniqueID");
+ if (r) {
+ r[7] = 'X';
+ r[8] = 'X';
+ }
+ return s;
+}
+
+static void
+OutASCII(FILE *fout, ub1 *buff, ub4 len)
+{
+ ub4 i;
+
+ for (i = 0; i < len; i++)
+ {
+ if ((*buff == 10)||(*buff == 13))
+ {
+ buff++;
+ *line++='\n';
+ *line='\0';
+
+ if((find_encod==0)&&(lastpart==0))
+ {
+ FindEncoding();
+ }
+
+ line=(unsigned char *) KillUnique((char *) tmpline);
+
+ if(keep_flg==0)
+ fprintf(fout,"%s", line);
+ else
+ {
+ if(keep_num<0)
+ {
+ AddStr(line,keep_num);
+ if(keep_num==-2)
+ keep_num = -3;
+ }
+
+ }
+ }
+ else
+ {
+ *line++ = *buff++;
+ }
+ }
+}
+
+/* It's eexec decription for PFB format */
+
+static void
+BinEDeCrypt(ub1 *buff, ub4 len)
+{
+ ub4 i;
+
+ for (i = 0; i < len; i++, temp++, buff++)
+ {
+ *temp = (*buff ^ (edr >> 8));
+ edr = (*buff + edr) * c1 + c2;
+ }
+}
+
+/* And it's eexec decription for PFA format */
+
+
+static void
+HexEDeCrypt(unsigned char *mem)
+{
+ int ch1, ch2, cipher;
+
+
+ for(;*mem!='\n' && *mem!='\r'; temp++)
+ {
+ ch1= *mem++;
+ ch2= *mem++;
+
+ if ('A' <= ch1 && ch1 <= 'F')
+ ch1 -= 'A' - 10;
+ else if ('a' <= ch1 && ch1 <= 'f')
+ ch1 -= 'a' - 10;
+ else
+ ch1 -= '0';
+ ch1<<=4;
+
+ if ('A' <= ch2 && ch2 <= 'F')
+ ch2 -= 'A' - 10;
+ else if ('a' <= ch2 && ch2 <= 'f')
+ ch2 -= 'a' - 10;
+ else
+ ch2 -= '0';
+
+ cipher = ch1 + ch2;
+
+ *temp = (cipher ^ (edr >> 8));
+ edr = (cipher + edr) * c1 + c2;
+
+ }
+}
+
+static int
+PartialPFA(FILE *fin, FILE *fout)
+{
+ ub1 type;
+ ub4 memory, addmemory, length, add_of_len;
+ unsigned char *mem = tmpline;
+ int check_vect=0;
+
+ tmpline=buf;
+ edr = EDR;
+ type = FLG_ASCII;
+ memory = BASE_MEM;
+ addmemory= ADD_MEM;
+ length=0;
+ temp=(typetemp *) UniGetMem(memory);
+ begin_of_scan=temp;
+
+ for(;;)
+ {
+ if(fgets((char *)buf,BUFSIZ,fin)==NULL)
+ break;
+ switch (type)
+ {
+ case FLG_ASCII:
+ if(strstr((char *)buf,"currentfile eexec") != NULL)
+ {
+ type=FLG_BINARY;
+ }
+
+ if((find_encod==0)&&(lastpart==0))
+ {
+ FindEncoding();
+ }
+
+ if(keep_flg==0)
+ fprintf(fout,"%s", KillUnique((char *)buf));
+ else
+ {
+ AddStr(buf,keep_num);
+ }
+ break;
+
+ case FLG_BINARY:
+ if(check_vect==0)
+ {
+ tmpline=mem;
+ CheckChoosing();
+ check_vect=1;
+ }
+
+ if(GetZeroLine(buf)<0)
+ {
+ type = FLG_ZERO_LINE;
+ end_of_scan=temp;
+ ScanBinary();
+ SubstNum();
+ if(keep_flg==1)
+ {
+ keep_flg=0;
+ lastpart=1;
+ if(encode!=1)
+ {
+ UnDefineCharsW();
+ if(encode==4)
+ RevChar(FirstCharA);
+ else
+ RevChar(FirstChar);
+
+ OutChar(FirstCharW, fout);
+ }
+ Reeverse(FirstStr);
+ OutStr(RevStr, fout);
+ }
+
+ OutHEX(fout);
+ UniFree(begin_of_scan);
+ fprintf(fout, "%s", KillUnique((char*) buf));
+ break;
+ }
+
+ add_of_len=strlen((char *) buf)/2;
+ length=length + add_of_len;
+
+ if(length>memory)
+ {
+ memory = memory + addmemory;
+/* Using "memory = length;" retains minimum */
+/* of memory but it will be more slowly */
+ begin_of_scan = (typetemp*) UniRealloc(begin_of_scan, memory);
+ temp = begin_of_scan + length - add_of_len;
+ }
+ HexEDeCrypt(buf);
+ break;
+ case FLG_ZERO_LINE:
+ fprintf(fout, "%s", buf);
+ break;
+ }
+ }
+ if(type == FLG_ZERO_LINE)
+ return TRUE;
+ else return FALSE;
+}
+
+#define FIRST_ASCII 1
+#define FIRST_BINARY 2
+#define NEXT_BINARY 3
+#define NEXT_ASCII 4
+
+static int
+PartialPFB(FILE *fin, FILE *fout)
+{
+ ub1 type;
+ ub4 t_length, length, nread;
+ int nbytes, rc;
+ int check_vect = 0;
+ int sub_type = FIRST_ASCII;
+
+ line=tmpline;
+ edr = EDR;
+
+/* To find summary length of multiple binary parts we prescan font file */
+
+ t_length = 0L;
+
+ for (;;)
+ {
+ if ((rc = fread((char *) buf, 1, 6, fin)) < 2)
+ {
+ return FALSE;
+ }
+
+ if (buf[0] != 128)
+ return FALSE;
+
+ type = buf[1];
+
+ if (type == FLG_EOF)
+ {
+ break;
+ }
+
+ if (rc != 6)
+ return FALSE;
+
+ length = little4(&buf[2]);
+
+ if(type==FLG_BINARY)
+ {
+ t_length = (ub4)(length + t_length);
+ }
+ fseek(fin, ftell(fin) + length, SEEK_SET);
+ }
+
+/* Here we start real parsing */
+
+ sub_type = FIRST_BINARY;
+
+ fseek(fin, 0L, SEEK_SET);
+
+ for (;;)
+ {
+ if ((rc = fread((char *) buf, 1, 6, fin)) < 2)
+ {
+ return FALSE;
+ }
+ if (buf[0] != 128)
+ return FALSE;
+
+ type = buf[1];
+
+ if (type == FLG_EOF)
+ {
+ return TRUE;
+ }
+
+ if (rc != 6)
+ return FALSE;
+
+ length = little4(&buf[2]);
+
+ if(type==FLG_BINARY)
+ {
+ if(sub_type == FIRST_BINARY)
+ {
+ sub_type = NEXT_BINARY;
+ temp=(typetemp*) UniGetMem(t_length);
+ begin_of_scan=temp;
+ }
+ }
+ else
+ {
+ if( sub_type == NEXT_BINARY)
+ {
+ sub_type = NEXT_ASCII;
+ end_of_scan=temp;
+ ScanBinary();
+ SubstNum();
+ if(keep_flg==1)
+ {
+ keep_flg=0;
+ lastpart=1;
+ if(encode!=1)
+ {
+ UnDefineCharsW();
+ if(encode==4)
+ RevChar(FirstCharA);
+ else
+ RevChar(FirstChar);
+
+ OutChar(FirstCharW, fout);
+ }
+
+ Reeverse(FirstStr);
+ OutStr(RevStr, fout);
+ }
+ OutHEX(fout);
+ UniFree(begin_of_scan);
+ }
+ }
+
+ for (nread = 0; nread < length; nread += rc)
+ {
+ nbytes = min(BUFSIZ, length - nread);
+
+ if ((rc = fread((char *) buf, 1, nbytes, fin)) == 0)
+ {
+ return FALSE;
+ }
+ switch (type)
+ {
+ case FLG_ASCII:
+ OutASCII(fout, buf, (ub4) rc);
+ break;
+ case FLG_BINARY:
+ if(check_vect==0)
+ {
+ CheckChoosing();
+ check_vect=1;
+ }
+ BinEDeCrypt(buf, (ub4) rc);
+ break;
+ default:
+ return FALSE;
+ }
+ }
+ }
+}
+
+static void
+OutHEX(FILE *fout)
+{
+ int i=0;
+ int num;
+ static const char *hexstr = "0123456789abcdef";
+ int bin;
+
+ line=tmpline;
+ eer = EER;
+ label[number].begin = end_of_scan;
+ label[number].select = NOTHING;
+ number++;
+
+ for(num=0; num < number; num++)
+ {
+ switch(label[num].select)
+ {
+ case NOTHING:
+ break;
+ case FLG_BINARY:
+ label[num].select=NOTHING;
+ for(temp=label[num].begin; temp<label[num+1].begin; temp++,i++)
+ {
+ bin = (*temp ^ (eer >> 8)); /* Eexec encryption */
+ eer = ((bin + eer) * c1 + c2);
+
+ *line++= hexstr[(bin&0xf0)>>4];
+ *line++= hexstr[bin&0xf];
+
+ if (!((i + 1) % BYTES_PER_LINE))
+ {
+ *line++='\0';
+ line =tmpline;
+ fprintf(fout, "%s\n",line);
+ }
+ }
+ break;
+ }
+ }
+ if (i % BYTES_PER_LINE)
+ {
+ *line++='\0';
+ line =tmpline;
+ fprintf(fout, "%s\n",line);
+ }
+}
+
+/* We parse AFM file only if we've received errors after
+parsing of own vector */
+
+static int
+Afm(void)
+{
+ unsigned char afmfile[100];
+ FILE *fafm;
+ int err_num=0;
+ int i,j,k,num=0;
+ unsigned char name[40];
+
+ static const char *AfmKey[] =
+ {
+ "StartCharMetrics",
+ "EndCharMetrics",
+ ""
+ };
+
+ static const char *InfoKey[] =
+ {
+ "C",
+ "N",
+ ""
+ };
+
+ for(i=0; psfontfile[i]; i++)
+ {
+ if(psfontfile[i] == '.')
+ break;
+ else
+ afmfile[i]=psfontfile[i];
+ }
+
+ afmfile[i]='\0';
+ strcat((char *) afmfile,".afm");
+ fprintf_str(stderr, "<%s>", afmfile);
+
+ if ((fafm = psfopen((char *) afmfile, "r")) == NULL)
+ {
+ NameOfProgram();
+ perror((char *) afmfile);
+ return -1;
+ }
+
+ for(j=0;;)
+ {
+ line = tmpline;
+
+ if(fgets((char *) line,BUFSIZ,fafm)==NULL)
+ break;
+
+ if(strstr((char *) line, AfmKey[j])!=NULL)
+ {
+ if(j==0)
+ {
+ j++;
+ continue;
+ }
+ else
+ {
+ fclose(fafm);
+ return 1;
+ }
+ }
+
+ if(j==1)
+ {
+ for(k=0; err_num>=0; )
+ {
+ err_num=GetWord(token);
+ if(err_num==2)
+ {
+ if(strcmp((char *) token,InfoKey[k])==0)
+ {
+ if(k==0)
+ {
+ err_num=GetWord(token);
+ num=atoi((char *) token);
+ k=1;
+ continue;
+ }
+ else
+ {
+ err_num=GetWord(token);
+ name[0]='/';
+ name[1]='\0';
+ strcat((char *) name, (char *) token);
+ if(num>=0)
+ FirstCharA=AddChar(FirstCharA, name, num);
+ break;
+ }
+ }
+ }
+
+ }
+ }
+ }
+ return -2;
+}
+
+int
+FontPart(FILE *fout, unsigned char *fontfile,
+ unsigned char *vectfile)
+{
+ FILE *fin=0;
+ int num;
+ int rc;
+ int i;
+
+ ind_ref=0;
+ reencode=0;
+ encode=0;
+ lastpart=0;
+ keep_flg=0;
+ flg_seac=0;
+ strcpy((char *) psfontfile, (char *) fontfile);
+ find_encod=0;
+ CharCount=0;
+
+ if(loadbase != 1)
+ {
+ for(i=offset; i < NUM_LABEL; i++)
+ label[i].num=CHAR_NOT_DEF;
+
+
+ strcpy((char *) psvectfile, (char *) basevect);
+
+#ifdef DEBUG
+ if(dd(D_VIEW_VECTOR))
+ fprintf_str(stderr, " Base vector <%s>.", basevect);
+#endif
+
+ if(LoadVector(1, FirstCharB)==1)
+ {
+ loadbase = FLG_LOAD_BASE;
+
+ }
+ else
+ exit(1);
+ }
+
+ if(vectfile)
+ {
+ reencode=FLG_REENCODE;
+ strcpy((char *) psvectfile, (char *) vectfile);
+ }
+
+ for(num=0;num<NUM_LABEL;num++)
+ label[num].select = NOTHING;
+
+ switch(DefTypeFont(fontfile))
+ {
+ case PFA:
+ if ((fin = psfopen((char *) fontfile, "r"))==NULL)
+ {
+ NameOfProgram();
+ perror((char *) fontfile);
+ return -1;
+ }
+ rc = PartialPFA(fin,fout);
+ if (rc == FALSE)
+ {
+ NameOfProgram();
+ (void) fprintf_str(stderr,
+ "Error: %s is not a valid PFA file\n", fontfile);
+ return -1;
+ }
+
+ break;
+ case PFB:
+ if ((fin = psfopen((char *) fontfile, OPEN_READ_BINARY))==NULL)
+ {
+ NameOfProgram();
+ perror((char *) fontfile);
+ return -1;
+ }
+ rc = PartialPFB(fin,fout);
+ if (rc==FALSE)
+ {
+ NameOfProgram();
+ (void) fprintf_str(stderr,
+ "Error: %s is not a valid PFB file\n", fontfile);
+ return -1;
+ }
+ break;
+ case -1:
+ NameOfProgram();
+ fprintf_str(stderr,
+ "Error: %s has neither PFA nor PFB extension", fontfile);
+ return -1;
+ }
+
+ UnDefineCharsW();
+
+ if(encode==AFM_ENC)
+ FirstCharA=UnDefineChars(FirstCharA);
+
+ if(encode!=1)
+ {
+ UnDefineStr();
+ }
+
+ FirstChar=UnDefineChars(FirstChar);
+
+ fclose(fin);
+
+ for(i=0; i < number; i++)
+ label[i].num=CHAR_NOT_DEF;
+
+ ClearB();
+ return 1;
+}
+
+
+
+static int
+LoadVector(int num, CHAR *TmpChar)
+{
+
+ FILE *fvect;
+ int i = 0;
+ int j = 0;
+ int end_vect=0;
+ int index_grid = 0;
+
+ CharCount = 0;
+
+ if ((fvect = psfopen((char *) psvectfile, "r")) == NULL)
+ {
+ NameOfProgram();
+ perror((char *) psvectfile);
+ return -1;
+ }
+
+ for(;;)
+ {
+ line = tmpline;
+
+ if((fgets((char*)line,BUFSIZ,fvect)==NULL)||(end_vect!=0))
+ break;
+
+ for(;;)
+ {
+ j=GetWord(token);
+ if(j==3)
+ {
+ if(i==0)
+ {
+ i++;
+ continue;
+ }
+
+ if(num==4)
+ {
+ if(grid[index_grid]==1)
+ {
+ if(ChooseChar(token, TmpChar)> 0)
+ CharCount++;
+ else
+ {
+ fprintf_str(stderr,
+ "Error: '%s' not found in reencoding vector <%s> for <%s>\n",
+ token,psvectfile, psfontfile);
+ }
+ }
+ index_grid++;
+ }
+ else
+ {
+ if(num==1) /* Build base vector */
+ {
+ FirstCharB=AddChar(FirstCharB,token, CharCount);
+ CharCount++;
+ }
+ }
+ continue;
+ }
+ if(j== -1)
+ break;
+ if(j==2)
+ {
+ i=0;
+ end_vect = 1;
+ break;
+ }
+ }
+ }
+
+ if(j==2)
+ {
+ if((index_grid!=256)&&(CharCount!=256))
+ {
+ fclose(fvect);
+ fprintf_str(stderr,"Error during Load Vector in <%s> \n",
+ psvectfile);
+ fprintf(stderr,
+ "Found %d chars instead 256\n", max(index_grid,CharCount));
+ return -3;
+ }
+
+ if(CharCount>0)
+ {
+ fclose(fvect);
+ return 1;
+ }
+ else
+ {
+ fclose(fvect);
+ fprintf_str(stderr,
+ "\n Warning: Vector from <%s> for <%s> doesn't load\n",
+ psvectfile, psfontfile);
+ return -1;
+ }
+ }
+ else
+ {
+ fprintf_str(stderr,"\n Error: ending token 'def' not found in <%s> \n",
+ psvectfile);
+ return -2;
+ }
+}
+
+static int
+ChooseVect(CHAR *tmpChar)
+{
+ CHAR *ThisChar = tmpChar;
+
+ CharCount=0;
+ while (ThisChar != NULL)
+ {
+ ThisChar->choose= grid[ThisChar->num];
+ if(grid[ThisChar->num]==1)
+ {
+ CharCount++;
+ }
+ ThisChar = ThisChar->NextChar;
+ }
+
+ if(CharCount<GridCount)
+ return -1;
+ else
+ return 1;
+
+}
+
+static void
+ErrorOfScan(int err)
+{
+ switch(err)
+ {
+
+ case 0: break;
+
+ case ERR_FIRST_NUM:
+ fprintf(stderr, " First number not found ");
+ break;
+ case ERR_SECOND_NUM:
+ fprintf(stderr, " Second number not found ");
+ break;
+
+ case ERR_FIRST_TOK:
+ fprintf(stderr, " First token not found ");
+ break;
+
+ case ERR_SECOND_TOK:
+ fprintf(stderr, " Second token not found ");
+ break;
+
+ case ERR_STACK:
+ fprintf(stderr, " End of stack ");
+ break;
+
+ case ERR_NUM_CHAR:
+ fprintf(stderr, " Number of char not found ");
+ break;
+
+ case ERR_NAME_CHAR:
+ fprintf(stderr, " Name of char not found ");
+ break;
+ }
+}
+
+static void
+NameOfProgram(void)
+{
+#ifdef DVIPS
+ fprintf(stderr,"This is DVIPS, t1part module \n");
+#else
+ fprintf(stderr,"This is t1part, %s by Sergey Lesenko\n", version);
+#endif
+}
+
+
diff --git a/Build/source/texk/dvipsk/t1part.h b/Build/source/texk/dvipsk/t1part.h
new file mode 100644
index 00000000000..57b8be01c0f
--- /dev/null
+++ b/Build/source/texk/dvipsk/t1part.h
@@ -0,0 +1,98 @@
+/*t1part.h from t1part.c version 1.59 beta (c)1994, 1996
+by Sergey Lesenko
+lesenko@desert.ihep.su
+ *
+ * It is distributed with no warranty of any kind.
+ * You may modify and use this program. It can be included
+ * in any distribution, commercial or otherwise, so long as
+ * copyright notice be preserved on all copies.
+ */
+#ifdef KPATHSEA
+#include <kpathsea/c-ctype.h>
+#else /* not KPATHSEA */
+#include <assert.h>
+
+#include <stdio.h>
+#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
+#endif /* not KPATHSEA */
+
+#define DVIPS
+
+/*
+#define DOS
+#define BORLANDC
+*/
+
+#ifdef DEBUG
+
+extern int debug_flag;
+
+#define D_VIEW_VECTOR (1<<8)
+#define D_CALL_SUBR (1<<9)
+
+#endif
+
+#ifdef DVIPS
+extern FILE *search();
+#ifndef KPATHSEA
+extern char *headerpath;
+#endif /* not KPATHSEA */
+#define psfopen(A,B) search(headerpath,A,B)
+#else
+#define psfopen(A,B) fopen(A,B)
+#endif
+
+#ifdef KPATHSEA
+#define OPEN_READ_BINARY FOPEN_RBIN_MODE
+#else
+#if defined(DOS) || defined(WIN32)
+#define OPEN_READ_BINARY "rb"
+#else
+#define OPEN_READ_BINARY "r"
+#endif
+#endif /* not KPATHSEA */
+
+#ifdef DOS
+typedef unsigned char ub1;
+typedef unsigned long ub4;
+#else
+typedef unsigned char ub1;
+typedef unsigned long int ub4;
+#endif
+
+#ifdef BORLANDC
+typedef unsigned char typetemp;
+#define BORLAND_HUGE huge
+#else
+typedef unsigned char typetemp;
+#define BORLAND_HUGE
+#endif
+
+#ifdef BORLANDC
+#include <alloc.h>
+#define UniRealloc farrealloc
+#define UniFree farfree
+#else
+#ifdef KPATHSEA
+#define UniRealloc xrealloc
+#define UniFree free
+#else
+#define UniRealloc realloc
+#define UniFree free
+#endif /* not KPATHSEA */
+#endif
+
+#include "protos.h"
+
+#define NUM_LABEL 1024
+#define BASE_MEM 16384
+#define ADD_MEM 16384
+
+#define FLG_LOAD_BASE (1)
+
+extern unsigned char grid[];
+extern unsigned char *line, *tmpline;
+extern int loadbase;
+extern struct Char *FirstCharB;
diff --git a/Build/source/texk/dvipsk/test-afm2tfm.test b/Build/source/texk/dvipsk/test-afm2tfm.test
new file mode 100755
index 00000000000..769aaa25910
--- /dev/null
+++ b/Build/source/texk/dvipsk/test-afm2tfm.test
@@ -0,0 +1,40 @@
+#! /bin/sh -vx
+# $Id: test-dvips.test 45809 2017-11-15 00:36:56Z karl $
+# Public domain. Originally written 2010, Karl Berry.
+# Check that afm2tfm functions.
+#
+# BTW, to run just this test on its own:
+# make -C $wp TESTS=test-afm2tfm.test check
+# where wp=.../Work/texk/dvipsk
+
+test_file=afmtest.afm
+test_dir=$srcdir/../tests/texmf
+test_input=$test_dir/$test_file
+if test ! -r "$test_input"; then # probably srcdir messed up
+ echo "$0: goodbye, cannot find test input: $test_input" >&2
+ exit 1
+fi
+
+AFMFONTS=$test_dir; export AFMFONTS
+
+# run afm2tfm, assumed on $test_file so we can check the output.
+do_check () {
+ if "$@"; then :; else
+ echo "$0: "$@" "$test_file" failed, goodbye." >&2
+ exit 1
+ fi
+
+ tfm=`basename "$test_file" .afm`.tfm
+ if test ! -s "$tfm"; then
+ echo "$0: tfm empty or not created, goodbye." >&2
+ ls -l "$tfm" >&2
+ exit 1
+ fi
+
+ # could run tftopl, but let's not assume it.
+}
+
+do_check ./afm2tfm "$test_file"
+do_check ./afm2tfm "$test_file" -p $srcdir/testdata/8r.enc # options after
+
+exit 0
diff --git a/Build/source/texk/dvipsk/test-dvips.test b/Build/source/texk/dvipsk/test-dvips.test
new file mode 100755
index 00000000000..2ce1dff2b71
--- /dev/null
+++ b/Build/source/texk/dvipsk/test-dvips.test
@@ -0,0 +1,13 @@
+#! /bin/sh -vx
+# $Id$
+# Public domain.
+
+rm -f mtest.ps
+
+./dvips -D 300 $srcdir/testdata/dvipstst.xdv -o dvipstst.ps
+mv dvipstst.ps mtest.ps || exit 1
+./dvips -D 300 $srcdir/testdata/dvipstst.xdv -o || exit 1
+diff $srcdir/testdata/dvipstst.xps dvipstst.ps
+
+exit 0
+
diff --git a/Build/source/texk/dvipsk/test-missing-image.test b/Build/source/texk/dvipsk/test-missing-image.test
new file mode 100755
index 00000000000..a7aaa32b6d3
--- /dev/null
+++ b/Build/source/texk/dvipsk/test-missing-image.test
@@ -0,0 +1,15 @@
+#! /bin/sh -vx
+# $Id$
+# Public domain. Test that dvips exits with bad status when there is a
+# missing image file.
+#
+# BTW, to run just this test on its own:
+# make -C $wp TESTS=test-missing-image.test check
+# where wp=.../Work/texk/dvipsk
+
+if ./dvips $srcdir/testdata/missing-image.dvi -o missing-image.ps; then
+ echo "$0: found image file, but shouldn't have." >&2
+ exit 1
+fi
+
+exit 0
diff --git a/Build/source/texk/dvipsk/test-overflow-buffers.test b/Build/source/texk/dvipsk/test-overflow-buffers.test
new file mode 100755
index 00000000000..28e314ef0ad
--- /dev/null
+++ b/Build/source/texk/dvipsk/test-overflow-buffers.test
@@ -0,0 +1,21 @@
+#! /bin/sh -vx
+# $Id$
+# Public domain. Various buffer overflows, reported by
+# Andy Nguyen of ETH Zurich. The program should detect and abort.
+
+for tst in overflow-color-push overflow-epsfile \
+ overflow-ifffile overflow-psbox; do
+ :
+ if ./dvips $srcdir/testdata/$tst.dvi -o; then
+ echo "$0: test $tst should have failed." >&2
+ exit 1
+ fi
+done
+
+# overflow-keyword succeeds, because the special is ignored,
+# because the file (named with 999 a's) does not exist.
+tst=overflow-keyword
+./dvips $srcdir/testdata/$tst.dvi -o || exit 1
+grep ' @setspecial' $tst.ps || exit 1
+
+exit 0
diff --git a/Build/source/texk/dvipsk/testdata/8r.enc b/Build/source/texk/dvipsk/testdata/8r.enc
new file mode 100644
index 00000000000..6743b6d0465
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/8r.enc
@@ -0,0 +1,118 @@
+% @@psencodingfile@{
+% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
+% version = "0.6",
+% date = "1 July 1998",
+% filename = "8r.enc",
+% email = "tex-fonts@@tug.org",
+% docstring = "Encoding for TrueType or Type 1 fonts
+% to be used with TeX."
+% @}
+%
+% Idea is to have all the characters normally included in Type 1 fonts
+% available for typesetting. This is effectively the characters in Adobe
+% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
+%
+% Character code assignments were made as follows:
+%
+% (1) the Windows ANSI characters are almost all in their Windows ANSI
+% positions, because some Windows users cannot easily reencode the
+% fonts, and it makes no difference on other systems. The only Windows
+% ANSI characters not available are those that make no sense for
+% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
+% (173). quotesingle and grave are moved just because it's such an
+% irritation not having them in TeX positions.
+%
+% (2) Remaining characters are assigned arbitrarily to the lower part
+% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
+%
+% (3) Y&Y Lucida Bright includes some extra text characters; in the
+% hopes that other PostScript fonts, perhaps created for public
+% consumption, will include them, they are included starting at 0x12.
+%
+% (4) Remaining positions left undefined are for use in (hopefully)
+% upward-compatible revisions, if someday more characters are generally
+% available.
+%
+% (5) hyphen appears twice for compatibility with both
+% ASCII and Windows.
+%
+/TeXBase1Encoding [
+% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
+ /.notdef /dotaccent /fi /fl
+ /fraction /hungarumlaut /Lslash /lslash
+ /ogonek /ring /.notdef
+ /breve /minus /.notdef
+% These are the only two remaining unencoded characters, so may as
+% well include them.
+ /Zcaron /zcaron
+% 0x10
+ /caron /dotlessi
+% (unusual TeX characters available in, e.g., Lucida Bright)
+ /dotlessj /ff /ffi /ffl
+ /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef
+ % very contentious; it's so painful not having quoteleft and quoteright
+ % at 96 and 145 that we move the things normally found there to here.
+ /grave /quotesingle
+% 0x20 (ASCII begins)
+ /space /exclam /quotedbl /numbersign
+ /dollar /percent /ampersand /quoteright
+ /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+% 0x30
+ /zero /one /two /three /four /five /six /seven
+ /eight /nine /colon /semicolon /less /equal /greater /question
+% 0x40
+ /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
+% 0x50
+ /P /Q /R /S /T /U /V /W
+ /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+% 0x60
+ /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
+% 0x70
+ /p /q /r /s /t /u /v /w
+ /x /y /z /braceleft /bar /braceright /asciitilde
+ /.notdef % rubout; ASCII ends
+% 0x80
+ /.notdef /.notdef /quotesinglbase /florin
+ /quotedblbase /ellipsis /dagger /daggerdbl
+ /circumflex /perthousand /Scaron /guilsinglleft
+ /OE /.notdef /.notdef /.notdef
+% 0x90
+ /.notdef /.notdef /.notdef /quotedblleft
+ /quotedblright /bullet /endash /emdash
+ /tilde /trademark /scaron /guilsinglright
+ /oe /.notdef /.notdef /Ydieresis
+% 0xA0
+ /.notdef % nobreakspace
+ /exclamdown /cent /sterling
+ /currency /yen /brokenbar /section
+ /dieresis /copyright /ordfeminine /guillemotleft
+ /logicalnot
+ /hyphen % Y&Y (also at 45); Windows' softhyphen
+ /registered
+ /macron
+% 0xD0
+ /degree /plusminus /twosuperior /threesuperior
+ /acute /mu /paragraph /periodcentered
+ /cedilla /onesuperior /ordmasculine /guillemotright
+ /onequarter /onehalf /threequarters /questiondown
+% 0xC0
+ /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis
+ /Igrave /Iacute /Icircumflex /Idieresis
+% 0xD0
+ /Eth /Ntilde /Ograve /Oacute
+ /Ocircumflex /Otilde /Odieresis /multiply
+ /Oslash /Ugrave /Uacute /Ucircumflex
+ /Udieresis /Yacute /Thorn /germandbls
+% 0xE0
+ /agrave /aacute /acircumflex /atilde
+ /adieresis /aring /ae /ccedilla
+ /egrave /eacute /ecircumflex /edieresis
+ /igrave /iacute /icircumflex /idieresis
+% 0xF0
+ /eth /ntilde /ograve /oacute
+ /ocircumflex /otilde /odieresis /divide
+ /oslash /ugrave /uacute /ucircumflex
+ /udieresis /yacute /thorn /ydieresis
+] def
diff --git a/Build/source/texk/dvipsk/testdata/Makefile_upjf b/Build/source/texk/dvipsk/testdata/Makefile_upjf
new file mode 100644
index 00000000000..d22dda7005c
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/Makefile_upjf
@@ -0,0 +1,20 @@
+# Public domain.
+# You may freely use, modify and/or distribute this file.
+
+# test data for uptex virtual fonts
+uptex-vf: upjf_full.vf upjf_omit.vf upjf.dvi
+
+upjf.tfm:
+ cp -p `kpsewhich upjisr-h.tfm` upjf.tfm
+
+upjf_full.vf: upjf.tfm upjf_full.cnf
+ makejvf -i -u custom -e -t upjf_full.cnf -H upjf.tfm -K upjf-g upjf-r
+ mv upjf.vf upjf_full.vf
+
+upjf_omit.vf: upjf.tfm upjf_omit.cnf
+ makejvf -i -u custom -e -t upjf_omit.cnf -H upjf.tfm -K upjf-g upjf-r
+ mv upjf.vf upjf_omit.vf
+
+upjf.dvi: upjf.tex
+ uplatex upjf.tex
+
diff --git a/Build/source/texk/dvipsk/testdata/ad.enc b/Build/source/texk/dvipsk/testdata/ad.enc
new file mode 100644
index 00000000000..6e1958da9d0
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/ad.enc
@@ -0,0 +1,87 @@
+% Name is ad.enc.
+% v. 1.1.
+% lesenko@mx.ihep.su (Sergey Lesenko)
+%
+% This is compatible with the Adobe StandardEncoding, but has the
+% additional characters sometimes present. It's used as the base vector
+% for partial font downloading if no other encoding vector is found.
+
+/AdobeEncoding [
+ /Zcaron /zcaron /dotlessj /ff /ffi /ffl /trademark /Ydieresis
+ /Scaron /scaron /brokenbar /copyright /logicalnot /registered
+ /degree /plusminus /twosuperior /threesuperior /mu /onesuperior
+ /onequarter /onehalf /threequarters
+ /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+
+%% 040
+ /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+ /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
+ /period /slash
+
+%% 060
+ /zero /one /two /three /four /five /six /seven /eight /nine /colon
+ /semicolon /less /equal /greater /question
+
+%% 0100
+ /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
+
+%% 0120
+ /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
+ /bracketright /asciicircum /underscore
+
+%% 0140
+ /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
+
+%% 0160
+ /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde
+%%
+ /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /.notdef /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis
+ /Igrave /Iacute /Icircumflex /Idieresis
+%%
+ /agrave /aacute /acircumflex /atilde
+ /adieresis /aring /.notdef /ccedilla
+ /egrave /eacute /ecircumflex /edieresis
+ /igrave /iacute /icircumflex /idieresis
+
+%%
+ /.notdef
+
+%% 0240
+ /.notdef /exclamdown /cent /sterling /fraction /yen /florin /section
+ /currency /quotesingle /quotedblleft /guillemotleft /guilsinglleft
+ /guilsinglright /fi /fl
+
+%% 0260
+ /.notdef /endash /dagger /daggerdbl /periodcentered /.notdef
+ /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright
+ /guillemotright /ellipsis /perthousand /.notdef /questiondown
+ /.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent
+ /dieresis /.notdef /ring /cedilla /.notdef
+ /hungarumlaut /ogonek /caron
+
+%% 0320
+ /emdash
+ /Eth /Ntilde /Ograve /Oacute
+ /Ocircumflex /Otilde /Odieresis /multiply
+ /Oslash /Ugrave /Uacute /Ucircumflex
+ /Udieresis /Yacute /Thorn
+
+%% 0340
+ /.notdef /AE /.notdef /ordfeminine
+ /eth /ntilde /ograve /oacute
+
+%% 0350
+ /Lslash /.notdef /OE /ordmasculine
+ /ocircumflex /otilde /odieresis /divide
+
+
+%% 0360
+ /.notdef /ae /ugrave /uacute /ucircumflex
+ /dotlessi /.notdef /.notdef
+
+%% 0370
+ /lslash /oslash /oe /germandbls
+ /udieresis /yacute /thorn /ydieresis
+] def
diff --git a/Build/source/texk/dvipsk/testdata/alt-rule.pro b/Build/source/texk/dvipsk/testdata/alt-rule.pro
new file mode 100644
index 00000000000..c7fb9443923
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/alt-rule.pro
@@ -0,0 +1,17 @@
+%!
+% Patch by TVZ
+% Makes dvips files draw rules with stroke rather than fill.
+% Makes narrow rules more predictable at low resolutions
+% after distilling to PDF.
+% May have unknown consequences for very thick rules.
+% Tested only with dvips 5.85(k).
+TeXDict begin
+/QV {
+ gsave newpath /ruleY X /ruleX X
+ Rx Ry gt
+ { ruleX ruleY Ry 2 div sub moveto Rx 0 rlineto Ry }
+ { ruleX Rx 2 div add ruleY moveto 0 Ry neg rlineto Rx }
+ ifelse
+ setlinewidth 0 setlinecap stroke grestore
+} bind def
+end
diff --git a/Build/source/texk/dvipsk/testdata/beginfontk1.dvi b/Build/source/texk/dvipsk/testdata/beginfontk1.dvi
new file mode 100644
index 00000000000..b06d8f4242f
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/beginfontk1.dvi
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/beginfontk1.eps b/Build/source/texk/dvipsk/testdata/beginfontk1.eps
new file mode 100644
index 00000000000..ca5d5fe6fca
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/beginfontk1.eps
@@ -0,0 +1,1492 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 819 573
+%%LanguageLevel: 2
+%%Creator: OriginLab Corporation
+%%Title: (C:\Documents and Settings\Ïîëüçîâàòåëü\Ðàáî÷èé ñòîë\Graph4.eps)
+%%CreationDate: Tue Dec 01 00:57:40 2009
+%%EndComments
+
+/OriginLab::PSL1 128 dict dup begin def
+/Save0 save def
+%%BeginResource: procset OriginLab::PSL1
+/wd{1 index where{pop pop pop}{bind def}ifelse}bind def
+/setcmykcolor{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll}repeat setrgbcolor pop}wd
+/selectfont{dup type/arraytype eq{exch findfont exch makefont setfont}{exch findfont exch scalefont setfont}ifelse}wd
+/xshow{1 index length 0 le{}{currentpoint exch 3 index length 1 sub 0 exch 1 exch{dup 5 index exch 1 getinterval show 3 index exch get add 2 copy exch moveto}for pop pop}ifelse pop pop}wd
+/glyphshow{matrix currentmatrix exch currentfont dup/FontMatrix get concat currentpoint translate
+ dup/Metrics get 2 index get 0 4 2 roll gsave/CharProcs get exch 2 copy known not{pop/.notdef}if
+ get exec fill grestore moveto setmatrix}wd
+/grayimage/image load def/rgbtogray{cvx exec dup length 3 idiv 1 sub 0 exch 1 exch{dup 3 mul dup 3 index exch get 255 div .3 mul exch
+ 1 add dup 4 index exch get 255 div .59 mul exch 1 add 4 index exch get 255 div .11 mul add add
+ 255 mul dup 255 gt{255}if round cvi 2 index 3 1 roll put}for dup length 3 idiv 0 exch getinterval}bind def
+/colorimage{0 setgray pop pop cvlit/rgbtogray cvx 2 packedarray cvx grayimage}wd
+/bd{bind def}bind def/ld{load def}bd/ed{exch def}bd/xd{cvx def}bd
+/np/newpath ld/a/arc ld/m/moveto ld/l/lineto ld/c/curveto ld/rm/rmoveto ld/rl/rlineto ld/rc/rcurveto ld/cp/closepath ld/cpt/currentpoint ld
+/tr/translate ld/sc/scale ld/ro/rotate ld/t/transform ld/it/itransform ld/dt/dtransform ld/idt/idtransform ld
+/mtx/matrix ld/cmtx/currentmatrix ld/dmtx/defaultmatrix ld/smtx/setmatrix ld/catmtx/concatmatrix ld
+/sw/setlinewidth ld/scap/setlinecap ld/sj/setlinejoin ld/sm/setmiterlimit ld/sd/setdash ld/rgb/setrgbcolor ld/crgb/currentrgbcolor ld/cmyk/setcmykcolor ld/gs/gsave ld/gr/grestore ld
+/st/stroke ld/fi/fill ld/eofi/eofill ld/cl/clip ld/eocl/eoclip ld
+/df/definefont ld/ff/findfont ld/sf/setfont ld/scf/scalefont ld/self/selectfont ld/cf/currentfont ld
+/s/show ld/xs/xshow ld/gls/glyphshow ld/xgls{cpt 3 1 roll add exch 3 -1 roll gls m}bd
+/cd/currentdict ld/i/index ld
+/DrawBox{4 2 roll m 1 index 0 rl 0 exch rl neg 0 rl cp}bd
+/DrawBcc{4 2 roll m 2 copy 0 lt exch 0 lt xor{dup 0 exch rl exch 0 rl neg 0 exch rl}{exch dup 0 rl exch 0 exch rl neg 0 rl}ifelse cp}bd
+/rectline{dup type/arraytype eq{dup length 0 exch 4 exch 4 sub{0 1 3{3 copy add get 4 1 roll pop}for pop 5 1 roll DrawBox}for pop}{DrawBox}ifelse}bd
+/rectpath{dup type/arraytype eq{dup length 0 exch 4 exch 4 sub{0 1 3{3 copy add get 4 1 roll pop}for pop 5 1 roll DrawBcc}for pop}{DrawBcc}ifelse}bd
+/pathproc{[{/m cvx}{/l cvx}{/c cvx}{/cp cvx}pathforall]cvx}bd
+/L1img/image ld/L1idx[{0}
+ {dup 7 and 3 1 roll -3 bitshift get exch 7 sub 1 mul bitshift 1 and}bind 1 index dup
+ {dup 1 and 3 1 roll -1 bitshift get exch 1 sub 4 mul bitshift 15 and}bind 1 index dup dup
+ {get}bind]def
+/image{dup type/dicttype eq {dup/ImgCS get 0 get/Indexed eq}{false}ifelse
+ {begin Width Height 8 ImageMatrix {rgb_string rgb_lookup
+ cd/DataSource get dup type/filetype eq
+ {mystring readstring pop}{exec}ifelse
+ dup length 0 ne
+ {L1idx BitsPerComponent get 0 1 Width 1 sub
+ {3 copy exch exec exch 3 mul exch
+ 3 mul dup 5 index exch get exch 1 add dup 6 index exch get exch 1 add 6 index exch get
+ 7 index exch 4 index 2 add exch put 6 index exch 3 index 1 add exch put 5 index exch 2 index exch put pop
+ }for pop pop pop }{pop pop pop ()}ifelse }false 3 colorimage end} {dup type/dicttype eq
+ {{dup mark exch L1img pop pop}stopped{cleartomark begin Width Height BitsPerComponent ImageMatrix
+ {cd/DataSource get dup type/filetype eq {mystring readstring pop}{exec}ifelse
+ }false 3 colorimage end} if}{L1img}ifelse}ifelse
+ }bd
+/L1imgmask/imagemask ld/imagemask{dup type/dicttype eq
+ {{dup mark exch L1imgmask pop pop}stopped {cleartomark begin Width Height polarityflag ImageMatrix
+ {cd/DataSource get dup type/filetype eq {mystring readstring pop}{exec}ifelse
+ }L1imgmask end}if}{L1imgmask}ifelse
+ }bd
+%%EndResource
+/rectclip{np rectpath clip np}wd
+/rectfill{gs np rectpath fi gr}wd
+/rectstroke{gs np dup type/arraytype eq{dup length 6 eq}{false}ifelse{1 index type/arraytype eq{exch}{5 1 roll}ifelse rectline concat st}{rectline st}ifelse gr}wd
+%%BeginFont: /MC1_ArialBold
+12 dict begin
+/FontInfo 8 dict dup begin
+/ItalicAngle 0 def
+/UnderlinePosition -217.00 def
+/UnderlineThickness 215.00 def
+/StrikeoutPosition 530.00 def
+/StrikeoutThickness 102.00 def
+/isFixedPitch false def
+end readonly def
+/FontName /MC1_ArialBold def
+/FontType 3 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0] def
+/FontBBox [-1286 -771 4096 2069] def
+/Encoding 256 array def 0 1 255{Encoding exch/.notdef put}for
+Encoding 32/s32 put
+Encoding 45/s45 put
+Encoding 46/s46 put
+Encoding 48/s48 put
+Encoding 49/s49 put
+Encoding 50/s50 put
+Encoding 51/s51 put
+Encoding 52/s52 put
+Encoding 53/s53 put
+/BoundingBoxes 10 dict def
+BoundingBoxes begin
+/s32 [0 -434 569 1854] def
+/s45 [0 -434 682 1854] def
+/s46 [0 -434 569 1854] def
+/s48 [0 -434 1139 1854] def
+/s49 [0 -434 1139 1854] def
+/s50 [0 -434 1139 1854] def
+/s51 [0 -434 1139 1854] def
+/s52 [0 -434 1139 1854] def
+/s53 [0 -434 1139 1854] def
+end
+/Metrics 10 dict def
+ Metrics begin
+/s32 569 def
+/s45 682 def
+/s46 569 def
+/s48 1139 def
+/s49 1139 def
+/s50 1139 def
+/s51 1139 def
+/s52 1139 def
+/s53 1139 def
+end
+/CharProcs 10 dict def
+CharProcs begin
+/.notdef {} def
+/s45 {
+115 391 m
+115 672 115 391 115 672 c
+667 672 115 672 667 672 c
+667 391 667 672 667 391 c
+115 391 667 391 115 391 c
+closepath } bind def
+/s46 {
+147 0 m
+147 281 147 0 147 281 c
+428 281 147 281 428 281 c
+428 0 428 281 428 0 c
+147 0 428 0 147 0 c
+closepath } bind def
+/s48 {
+562 1472 m
+704 1472 815 1421.33 895 1320 c
+990.33 1200 1038 1001 1038 723 c
+1038 445.67 990 246.33 894 125 c
+814.67 25 704 -25 562 -25 c
+419.33 -25 304.33 29.83 217 139.5 c
+129.67 249.17 86 444.67 86 726 c
+86 1002 134 1200.67 230 1322 c
+309.33 1422 420 1472 562 1472 c
+closepath 562 1239 m
+528 1239 497.67 1228.17 471 1206.5 c
+444.33 1184.83 423.67 1146 409 1090 c
+389.67 1017.33 380 895 380 723 c
+380 551 388.67 432.83 406 368.5 c
+423.33 304.17 445.17 261.33 471.5 240 c
+497.83 218.67 528 208 562 208 c
+596 208 626.33 218.83 653 240.5 c
+679.67 262.17 700.33 301 715 357 c
+734.33 429 744 551 744 723 c
+744 895 735.33 1013.17 718 1077.5 c
+700.67 1141.83 678.83 1184.83 652.5 1206.5 c
+626.17 1228.17 596 1239 562 1239 c
+closepath } bind def
+/s49 {
+806 0 m
+525 0 806 0 525 0 c
+525 1059 525 0 525 1059 c
+422.33 963 301.33 892 162 846 c
+162 1101 162 846 162 1101 c
+235.33 1125 315 1170.5 401 1237.5 c
+487 1304.5 546 1382.67 578 1472 c
+806 1472 578 1472 806 1472 c
+806 0 806 1472 806 0 c
+closepath } bind def
+/s50 {
+1036 261 m
+1036 0 1036 261 1036 0 c
+51 0 1036 0 51 0 c
+61.67 98.67 93.67 192.17 147 280.5 c
+200.33 368.83 305.67 486 463 632 c
+589.67 750 667.33 830 696 872 c
+734.67 930 754 987.33 754 1044 c
+754 1106.67 737.17 1154.83 703.5 1188.5 c
+669.83 1222.17 623.33 1239 564 1239 c
+505.33 1239 458.67 1221.33 424 1186 c
+389.33 1150.67 369.33 1092 364 1010 c
+84 1038 364 1010 84 1038 c
+100.67 1192.67 153 1303.67 241 1371 c
+329 1438.33 439 1472 571 1472 c
+715.67 1472 829.33 1433 912 1355 c
+994.67 1277 1036 1180 1036 1064 c
+1036 998 1024.17 935.17 1000.5 875.5 c
+976.83 815.83 939.33 753.33 888 688 c
+854 644.67 792.67 582.33 704 501 c
+615.33 419.67 559.17 365.67 535.5 339 c
+511.83 312.33 492.67 286.33 478 261 c
+1036 261 478 261 1036 261 c
+closepath } bind def
+/s51 {
+77 389 m
+349 422 77 389 349 422 c
+357.67 352.67 381 299.67 419 263 c
+457 226.33 503 208 557 208 c
+615 208 663.83 230 703.5 274 c
+743.17 318 763 377.33 763 452 c
+763 522.67 744 578.67 706 620 c
+668 661.33 621.67 682 567 682 c
+531 682 488 675 438 661 c
+469 890 438 661 469 890 c
+545 888 603 904.5 643 939.5 c
+683 974.5 703 1021 703 1079 c
+703 1128.33 688.33 1167.67 659 1197 c
+629.67 1226.33 590.67 1241 542 1241 c
+494 1241 453 1224.33 419 1191 c
+385 1157.67 364.33 1109 357 1045 c
+98 1089 357 1045 98 1089 c
+116 1177.67 143.17 1248.5 179.5 1301.5 c
+215.83 1354.5 266.5 1396.17 331.5 1426.5 c
+396.5 1456.83 469.33 1472 550 1472 c
+688 1472 798.67 1428 882 1340 c
+950.67 1268 985 1186.67 985 1096 c
+985 967.33 914.67 864.67 774 788 c
+858 770 925.17 729.67 975.5 667 c
+1025.83 604.33 1051 528.67 1051 440 c
+1051 311.33 1004 201.67 910 111 c
+816 20.33 699 -25 559 -25 c
+426.33 -25 316.33 13.17 229 89.5 c
+141.67 165.83 91 265.67 77 389 c
+closepath } bind def
+/s52 {
+638 0 m
+638 295 638 0 638 295 c
+38 295 638 295 38 295 c
+38 541 38 295 38 541 c
+674 1472 38 541 674 1472 c
+910 1472 674 1472 910 1472 c
+910 542 910 1472 910 542 c
+1092 542 910 542 1092 542 c
+1092 295 1092 542 1092 295 c
+910 295 1092 295 910 295 c
+910 0 910 295 910 0 c
+638 0 910 0 638 0 c
+closepath 638 542 m
+638 1043 638 542 638 1043 c
+301 542 638 1043 301 542 c
+638 542 301 542 638 542 c
+closepath } bind def
+/s53 {
+91 377 m
+371 406 91 377 371 406 c
+379 342.67 402.67 292.5 442 255.5 c
+481.33 218.5 526.67 200 578 200 c
+636.67 200 686.33 223.83 727 271.5 c
+767.67 319.17 788 391 788 487 c
+788 577 767.83 644.5 727.5 689.5 c
+687.17 734.5 634.67 757 570 757 c
+489.33 757 417 721.33 353 650 c
+125 683 353 650 125 683 c
+269 1446 125 683 269 1446 c
+1012 1446 269 1446 1012 1446 c
+1012 1183 1012 1446 1012 1183 c
+482 1183 1012 1183 482 1183 c
+438 934 482 1183 438 934 c
+500.67 965.33 564.67 981 630 981 c
+754.67 981 860.33 935.67 947 845 c
+1033.67 754.33 1077 636.67 1077 492 c
+1077 371.33 1042 263.67 972 169 c
+876.67 39.67 744.33 -25 575 -25 c
+439.67 -25 329.33 11.33 244 84 c
+158.67 156.67 107.67 254.33 91 377 c
+closepath } bind def
+end
+/BuildGlyph {
+ exch dup /Metrics get 2 index get 0 setcharwidth
+/CharProcs get exch 2 copy known not{pop/.notdef}if get exec fill}bind def
+/BuildChar {
+1 index /Encoding get exch get
+1 index /BuildGlyph get exec
+} bind def
+currentdict end /MC1_ArialBold exch definefont pop
+%%EndFont
+%%BeginFont: /MC2_Arial
+12 dict begin
+/FontInfo 8 dict dup begin
+/ItalicAngle 0 def
+/UnderlinePosition -217.00 def
+/UnderlineThickness 150.00 def
+/StrikeoutPosition 530.00 def
+/StrikeoutThickness 102.00 def
+/isFixedPitch false def
+end readonly def
+/FontName /MC2_Arial def
+/FontType 3 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0] def
+/FontBBox [-1361 -665 4096 2060] def
+/Encoding 256 array def 0 1 255{Encoding exch/.notdef put}for
+Encoding 32/s32 put
+/BoundingBoxes 2 dict def
+BoundingBoxes begin
+/s32 [0 -434 569 1854] def
+end
+/Metrics 2 dict def
+ Metrics begin
+/s32 569 def
+end
+/CharProcs 2 dict def
+CharProcs begin
+/.notdef {} def
+end
+/BuildGlyph {
+ exch dup /Metrics get 2 index get 0 setcharwidth
+/CharProcs get exch 2 copy known not{pop/.notdef}if get exec fill}bind def
+/BuildChar {
+1 index /Encoding get exch get
+1 index /BuildGlyph get exec
+} bind def
+currentdict end /MC2_Arial exch definefont pop
+%%EndFont
+%%BeginFont: /MC3_ArialBoldItalic
+12 dict begin
+/FontInfo 8 dict dup begin
+/ItalicAngle 12 def
+/UnderlinePosition -217.00 def
+/UnderlineThickness 215.00 def
+/StrikeoutPosition 530.00 def
+/StrikeoutThickness 102.00 def
+/isFixedPitch false def
+end readonly def
+/FontName /MC3_ArialBoldItalic def
+/FontType 3 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0] def
+/FontBBox [-1146 -771 2968 2049] def
+/Encoding 256 array def 0 1 255{Encoding exch/.notdef put}for
+Encoding 32/s32 put
+Encoding 40/s40 put
+Encoding 41/s41 put
+Encoding 46/s46 put
+Encoding 48/s48 put
+Encoding 50/s50 put
+Encoding 51/s51 put
+Encoding 53/s53 put
+Encoding 61/s61 put
+Encoding 84/s84 put
+Encoding 98/s98 put
+Encoding 115/s115 put
+/BoundingBoxes 13 dict def
+BoundingBoxes begin
+/s32 [0 -434 1055 1854] def
+/s40 [0 -434 1168 1854] def
+/s41 [-160 -434 1168 1854] def
+/s46 [0 -434 1055 1854] def
+/s48 [0 -434 1625 1854] def
+/s50 [0 -434 1625 1854] def
+/s51 [0 -434 1625 1854] def
+/s53 [0 -434 1625 1854] def
+/s61 [0 -434 1682 1854] def
+/s84 [0 -434 1737 1854] def
+/s98 [0 -434 1737 1854] def
+/s115 [0 -434 1625 1854] def
+end
+/Metrics 13 dict def
+ Metrics begin
+/s32 569 def
+/s40 682 def
+/s41 682 def
+/s46 569 def
+/s48 1139 def
+/s50 1139 def
+/s51 1139 def
+/s53 1139 def
+/s61 1196 def
+/s84 1251 def
+/s98 1251 def
+/s115 1139 def
+end
+/CharProcs 13 dict def
+CharProcs begin
+/.notdef {} def
+/s40 {
+491 -431 m
+296 -431 491 -431 296 -431 c
+241.33 -303.67 200.83 -174.83 174.5 -44.5 c
+148.17 85.83 135 205.33 135 314 c
+135 450 156.83 586.5 200.5 723.5 c
+244.17 860.5 311 1000 401 1142 c
+457.67 1232.67 548.67 1349 674 1491 c
+892 1491 674 1491 892 1491 c
+764.67 1341.67 666.5 1201.33 597.5 1070 c
+528.5 938.67 477 795.67 443 641 c
+409 486.33 392 335 392 187 c
+392 87 399.5 -10.33 414.5 -105 c
+429.5 -199.67 455 -308.33 491 -431 c
+closepath } bind def
+/s41 {
+241 1491 m
+436 1491 241 1491 436 1491 c
+490.67 1364.33 531.17 1235.67 557.5 1105 c
+583.83 974.33 597 855 597 747 c
+597 611 575.17 474.5 531.5 337.5 c
+487.83 200.5 421 60.67 331 -82 c
+273.67 -172.67 182.67 -289 58 -431 c
+-160 -431 58 -431 -160 -431 c
+-33.33 -281.67 64.5 -141.67 133.5 -11 c
+202.5 119.67 254 262.5 288 417.5 c
+322 572.5 339 724.33 339 873 c
+339 973.67 331.67 1071.17 317 1165.5 c
+302.33 1259.83 277 1368.33 241 1491 c
+closepath } bind def
+/s46 {
+148 277 m
+432 277 148 277 432 277 c
+374 0 432 277 374 0 c
+90 0 374 0 90 0 c
+148 277 90 0 148 277 c
+closepath } bind def
+/s48 {
+132 477 m
+132 624.33 157 773.67 207 925 c
+268.33 1109.67 347 1247 443 1337 c
+539 1427 645.67 1472 763 1472 c
+881.67 1472 979.17 1429 1055.5 1343 c
+1131.83 1257 1170 1132 1170 968 c
+1170 818 1142.17 659.5 1086.5 492.5 c
+1030.83 325.5 955.67 197.5 861 108.5 c
+766.33 19.5 659.67 -25 541 -25 c
+422.33 -25 324.5 18 247.5 104 c
+170.5 190 132 314.33 132 477 c
+closepath 414 419 m
+414 340.33 426.67 285 452 253 c
+477.33 221 510 205 550 205 c
+603.33 205 650.67 229.67 692 279 c
+747.33 345 796.33 475 839 669 c
+873 823 890 945 890 1035 c
+890 1108.33 877.17 1161.17 851.5 1193.5 c
+825.83 1225.83 793 1242 753 1242 c
+702.33 1242 657.33 1217.67 618 1169 c
+560 1098.33 510 974 468 796 c
+432 642 414 516.33 414 419 c
+closepath } bind def
+/s50 {
+541 1009 m
+260 1051 541 1009 260 1051 c
+282.67 1187 335.5 1291.17 418.5 1363.5 c
+501.5 1435.83 605.33 1472 730 1472 c
+866.67 1472 974 1435 1052 1361 c
+1130 1287 1169 1193 1169 1079 c
+1169 1021 1157 962.83 1133 904.5 c
+1109 846.17 1069.67 785 1015 721 c
+975.67 675.67 911.33 611.5 822 528.5 c
+732.67 445.5 673.5 388.83 644.5 358.5 c
+615.5 328.17 587.67 296 561 262 c
+1069 262 561 262 1069 262 c
+1015 0 1069 262 1015 0 c
+124 0 1015 0 124 0 c
+133.33 72 154.5 140.5 187.5 205.5 c
+220.5 270.5 261.67 331 311 387 c
+360.33 443 450.67 533.33 582 658 c
+680.67 752.67 743 814.33 769 843 c
+815.67 895 847.67 940 865 978 c
+882.33 1016 891 1050.33 891 1081 c
+891 1130.33 876.5 1170.33 847.5 1201 c
+818.5 1231.67 781.67 1247 737 1247 c
+691.67 1247 652 1229.83 618 1195.5 c
+584 1161.17 558.33 1099 541 1009 c
+closepath } bind def
+/s51 {
+104 383 m
+379 416 104 383 379 416 c
+390.33 338 410.83 284 440.5 254 c
+470.17 224 509.67 209 559 209 c
+624.33 209 678.5 231 721.5 275 c
+764.5 319 786 375.33 786 444 c
+786 504 768.67 551.5 734 586.5 c
+699.33 621.5 652.67 639 594 639 c
+579.33 639 564 637.67 548 635 c
+598 874 548 635 598 874 c
+608 872.67 617.67 872 627 872 c
+703.67 872 762 891.5 802 930.5 c
+842 969.5 862 1022.33 862 1089 c
+862 1136.33 848.5 1173.67 821.5 1201 c
+794.5 1228.33 759 1242 715 1242 c
+673.67 1242 636.67 1226.83 604 1196.5 c
+571.33 1166.17 545.33 1114.33 526 1041 c
+264 1093 526 1041 264 1093 c
+297.33 1201 343.67 1284 403 1342 c
+493 1428.67 603.67 1472 735 1472 c
+869.67 1472 972 1434.5 1042 1359.5 c
+1112 1284.5 1147 1194.67 1147 1090 c
+1147 1014 1124.67 945.33 1080 884 c
+1035.33 822.67 974 777.67 896 749 c
+958 716.33 1003.67 674 1033 622 c
+1062.33 570 1077 515.67 1077 459 c
+1077 351 1038.67 251.67 962 161 c
+857.33 37 722.33 -25 557 -25 c
+433 -25 330.83 10.5 250.5 81.5 c
+170.17 152.5 121.33 253 104 383 c
+closepath } bind def
+/s53 {
+130 420 m
+409 445 130 420 409 445 c
+408.33 431.67 408 421.67 408 415 c
+408 347 423.17 296 453.5 262 c
+483.83 228 523.33 211 572 211 c
+640 211 701.83 243.5 757.5 308.5 c
+813.17 373.5 841 463.33 841 578 c
+841 646 825.33 697.33 794 732 c
+762.67 766.67 721 784 669 784 c
+631.67 784 595.5 775.33 560.5 758 c
+525.5 740.67 491.67 714.33 459 679 c
+223 697 459 679 223 697 c
+446 1446 223 697 446 1446 c
+1183 1446 446 1446 1183 1446 c
+1129 1184 1183 1446 1129 1184 c
+642 1184 1129 1184 642 1184 c
+575 958 642 1184 575 958 c
+603 970.67 631 980.17 659 986.5 c
+687 992.83 714.67 996 742 996 c
+854 996 946 958.33 1018 883 c
+1090 807.67 1126 706.67 1126 580 c
+1126 478.67 1100.83 378.83 1050.5 280.5 c
+1000.17 182.17 930.33 106.67 841 54 c
+751.67 1.33 658 -25 560 -25 c
+435.33 -25 332.83 15.33 252.5 96 c
+172.17 176.67 131.33 284.67 130 420 c
+closepath } bind def
+/s61 {
+165 816 m
+165 1074 165 816 165 1074 c
+1190 1074 165 1074 1190 1074 c
+1190 816 1190 1074 1190 816 c
+165 816 1190 816 165 816 c
+closepath 165 372 m
+165 631 165 372 165 631 c
+1190 631 165 631 1190 631 c
+1190 372 1190 631 1190 372 c
+165 372 1190 372 165 372 c
+closepath } bind def
+/s84 {
+722 0 m
+420 0 722 0 420 0 c
+676 1221 420 0 676 1221 c
+246 1221 676 1221 246 1221 c
+297 1466 246 1221 297 1466 c
+1452 1466 297 1466 1452 1466 c
+1401 1221 1452 1466 1401 1221 c
+977 1221 1401 1221 977 1221 c
+722 0 977 1221 722 0 c
+closepath } bind def
+/s98 {
+74 0 m
+380 1466 74 0 380 1466 c
+668 1466 380 1466 668 1466 c
+565 976 668 1466 565 976 c
+617.67 1016 666.83 1044.5 712.5 1061.5 c
+758.17 1078.5 808 1087 862 1087 c
+974 1087 1063.67 1049.5 1131 974.5 c
+1198.33 899.5 1232 790.33 1232 647 c
+1232 550.33 1216.17 456.5 1184.5 365.5 c
+1152.83 274.5 1110.5 200.5 1057.5 143.5 c
+1004.5 86.5 948.83 44.17 890.5 16.5 c
+832.17 -11.17 771 -25 707 -25 c
+555 -25 443.33 41.67 372 175 c
+335 0 372 175 335 0 c
+74 0 335 0 74 0 c
+closepath 461 433 m
+461 361.67 481.17 303.67 521.5 259 c
+561.83 214.33 609.33 192 664 192 c
+712 192 757.83 209.33 801.5 244 c
+845.17 278.67 881.5 334 910.5 410 c
+939.5 486 954 562.67 954 640 c
+954 715.33 934.5 774.5 895.5 817.5 c
+856.5 860.5 809.33 882 754 882 c
+682 882 620 848.67 568 782 c
+496.67 690.67 461 574.33 461 433 c
+closepath } bind def
+/s115 {
+45 297 m
+323 341 45 297 323 341 c
+347.67 282.33 378.33 240.83 415 216.5 c
+451.67 192.17 501.67 180 565 180 c
+630.33 180 682.67 194.67 722 224 c
+749.33 244 763 268.33 763 297 c
+763 316.33 756 333.67 742 349 c
+727.33 363.67 687.67 381.67 623 403 c
+449.67 460.33 342.33 505.67 301 539 c
+236.33 591 204 659 204 743 c
+204 827 235.33 899.33 298 960 c
+385.33 1044.67 515 1087 687 1087 c
+823.67 1087 927 1062 997 1012 c
+1067 962 1111.33 894.33 1130 809 c
+865 763 1130 809 865 763 c
+851 801.67 828.33 830.67 797 850 c
+754.33 876 703 889 643 889 c
+583 889 539.83 879 513.5 859 c
+487.17 839 474 816 474 790 c
+474 763.33 487.33 741.33 514 724 c
+530.67 713.33 584.33 694.67 675 668 c
+815 627.33 908.67 587.33 956 548 c
+1022.67 492.67 1056 426 1056 348 c
+1056 247.33 1013.67 160 929 86 c
+844.33 12 725 -25 571 -25 c
+417.67 -25 299.17 3.17 215.5 59.5 c
+131.83 115.83 75 195 45 297 c
+closepath } bind def
+end
+/BuildGlyph {
+ exch dup /Metrics get 2 index get 0 setcharwidth
+/CharProcs get exch 2 copy known not{pop/.notdef}if get exec fill}bind def
+/BuildChar {
+1 index /Encoding get exch get
+1 index /BuildGlyph get exec
+} bind def
+currentdict end /MC3_ArialBoldItalic exch definefont pop
+%%EndFont
+%%BeginFont: /MC4_ArialBoldItalic
+12 dict begin
+/FontInfo 8 dict dup begin
+/ItalicAngle 12 def
+/UnderlinePosition -217.00 def
+/UnderlineThickness 215.00 def
+/StrikeoutPosition 530.00 def
+/StrikeoutThickness 102.00 def
+/isFixedPitch false def
+end readonly def
+/FontName /MC4_ArialBoldItalic def
+/FontType 3 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0] def
+/FontBBox [-1146 -771 2968 2049] def
+/Encoding 256 array def 0 1 255{Encoding exch/.notdef put}for
+Encoding 32/s32 put
+Encoding 40/s40 put
+Encoding 41/s41 put
+Encoding 47/s47 put
+Encoding 49/s49 put
+Encoding 50/s50 put
+Encoding 51/s51 put
+Encoding 68/s68 put
+Encoding 84/s84 put
+Encoding 108/s108 put
+Encoding 110/s110 put
+/BoundingBoxes 12 dict def
+BoundingBoxes begin
+/s32 [0 -434 1055 1854] def
+/s40 [0 -434 1168 1854] def
+/s41 [-160 -434 1168 1854] def
+/s47 [-89 -434 1055 1854] def
+/s49 [0 -434 1625 1854] def
+/s50 [0 -434 1625 1854] def
+/s51 [0 -434 1625 1854] def
+/s68 [0 -434 1965 1854] def
+/s84 [0 -434 1737 1854] def
+/s108 [0 -434 1055 1854] def
+/s110 [0 -434 1737 1854] def
+end
+/Metrics 12 dict def
+ Metrics begin
+/s32 569 def
+/s40 682 def
+/s41 682 def
+/s47 569 def
+/s49 1139 def
+/s50 1139 def
+/s51 1139 def
+/s68 1479 def
+/s84 1251 def
+/s108 569 def
+/s110 1251 def
+end
+/CharProcs 12 dict def
+CharProcs begin
+/.notdef {} def
+/s40 {
+491 -431 m
+296 -431 491 -431 296 -431 c
+241.33 -303.67 200.83 -174.83 174.5 -44.5 c
+148.17 85.83 135 205.33 135 314 c
+135 450 156.83 586.5 200.5 723.5 c
+244.17 860.5 311 1000 401 1142 c
+457.67 1232.67 548.67 1349 674 1491 c
+892 1491 674 1491 892 1491 c
+764.67 1341.67 666.5 1201.33 597.5 1070 c
+528.5 938.67 477 795.67 443 641 c
+409 486.33 392 335 392 187 c
+392 87 399.5 -10.33 414.5 -105 c
+429.5 -199.67 455 -308.33 491 -431 c
+closepath } bind def
+/s41 {
+241 1491 m
+436 1491 241 1491 436 1491 c
+490.67 1364.33 531.17 1235.67 557.5 1105 c
+583.83 974.33 597 855 597 747 c
+597 611 575.17 474.5 531.5 337.5 c
+487.83 200.5 421 60.67 331 -82 c
+273.67 -172.67 182.67 -289 58 -431 c
+-160 -431 58 -431 -160 -431 c
+-33.33 -281.67 64.5 -141.67 133.5 -11 c
+202.5 119.67 254 262.5 288 417.5 c
+322 572.5 339 724.33 339 873 c
+339 973.67 331.67 1071.17 317 1165.5 c
+302.33 1259.83 277 1368.33 241 1491 c
+closepath } bind def
+/s47 {
+-89 -25 m
+637 1491 -89 -25 637 1491 c
+837 1491 637 1491 837 1491 c
+112 -25 837 1491 112 -25 c
+-89 -25 112 -25 -89 -25 c
+closepath } bind def
+/s49 {
+243 842 m
+297 1098 243 842 297 1098 c
+544.33 1206 735.67 1331.67 871 1475 c
+1046 1475 871 1475 1046 1475 c
+737 0 1046 1475 737 0 c
+448 0 737 0 448 0 c
+661 1016 448 0 661 1016 c
+601 977.33 531.83 942 453.5 910 c
+375.17 878 305 855.33 243 842 c
+closepath } bind def
+/s50 {
+541 1009 m
+260 1051 541 1009 260 1051 c
+282.67 1187 335.5 1291.17 418.5 1363.5 c
+501.5 1435.83 605.33 1472 730 1472 c
+866.67 1472 974 1435 1052 1361 c
+1130 1287 1169 1193 1169 1079 c
+1169 1021 1157 962.83 1133 904.5 c
+1109 846.17 1069.67 785 1015 721 c
+975.67 675.67 911.33 611.5 822 528.5 c
+732.67 445.5 673.5 388.83 644.5 358.5 c
+615.5 328.17 587.67 296 561 262 c
+1069 262 561 262 1069 262 c
+1015 0 1069 262 1015 0 c
+124 0 1015 0 124 0 c
+133.33 72 154.5 140.5 187.5 205.5 c
+220.5 270.5 261.67 331 311 387 c
+360.33 443 450.67 533.33 582 658 c
+680.67 752.67 743 814.33 769 843 c
+815.67 895 847.67 940 865 978 c
+882.33 1016 891 1050.33 891 1081 c
+891 1130.33 876.5 1170.33 847.5 1201 c
+818.5 1231.67 781.67 1247 737 1247 c
+691.67 1247 652 1229.83 618 1195.5 c
+584 1161.17 558.33 1099 541 1009 c
+closepath } bind def
+/s51 {
+104 383 m
+379 416 104 383 379 416 c
+390.33 338 410.83 284 440.5 254 c
+470.17 224 509.67 209 559 209 c
+624.33 209 678.5 231 721.5 275 c
+764.5 319 786 375.33 786 444 c
+786 504 768.67 551.5 734 586.5 c
+699.33 621.5 652.67 639 594 639 c
+579.33 639 564 637.67 548 635 c
+598 874 548 635 598 874 c
+608 872.67 617.67 872 627 872 c
+703.67 872 762 891.5 802 930.5 c
+842 969.5 862 1022.33 862 1089 c
+862 1136.33 848.5 1173.67 821.5 1201 c
+794.5 1228.33 759 1242 715 1242 c
+673.67 1242 636.67 1226.83 604 1196.5 c
+571.33 1166.17 545.33 1114.33 526 1041 c
+264 1093 526 1041 264 1093 c
+297.33 1201 343.67 1284 403 1342 c
+493 1428.67 603.67 1472 735 1472 c
+869.67 1472 972 1434.5 1042 1359.5 c
+1112 1284.5 1147 1194.67 1147 1090 c
+1147 1014 1124.67 945.33 1080 884 c
+1035.33 822.67 974 777.67 896 749 c
+958 716.33 1003.67 674 1033 622 c
+1062.33 570 1077 515.67 1077 459 c
+1077 351 1038.67 251.67 962 161 c
+857.33 37 722.33 -25 557 -25 c
+433 -25 330.83 10.5 250.5 81.5 c
+170.17 152.5 121.33 253 104 383 c
+closepath } bind def
+/s68 {
+89 0 m
+396 1466 89 0 396 1466 c
+791 1466 396 1466 791 1466 c
+901 1466 971.33 1464.33 1002 1461 c
+1062.67 1455 1116.83 1442.67 1164.5 1424 c
+1212.17 1405.33 1255.5 1379.17 1294.5 1345.5 c
+1333.5 1311.83 1367.17 1271.33 1395.5 1224 c
+1423.83 1176.67 1445.67 1122.17 1461 1060.5 c
+1476.33 998.83 1484 931.33 1484 858 c
+1484 700 1453.83 559.83 1393.5 437.5 c
+1333.17 315.17 1257.33 218 1166 146 c
+1096 90 1005.67 48.67 895 22 c
+832.33 7.33 736 0 606 0 c
+89 0 606 0 89 0 c
+closepath 440 236 m
+593 236 440 236 593 236 c
+703.67 236 783.83 242.83 833.5 256.5 c
+883.17 270.17 928.67 295.67 970 333 c
+1029.33 387 1079.33 459 1120 549 c
+1160.67 639 1181 745 1181 867 c
+1181 971 1164.17 1049.17 1130.5 1101.5 c
+1096.83 1153.83 1055.33 1188.67 1006 1206 c
+971.33 1218 909.67 1224 821 1224 c
+646 1224 821 1224 646 1224 c
+440 236 646 1224 440 236 c
+closepath } bind def
+/s84 {
+722 0 m
+420 0 722 0 420 0 c
+676 1221 420 0 676 1221 c
+246 1221 676 1221 246 1221 c
+297 1466 246 1221 297 1466 c
+1452 1466 297 1466 1452 1466 c
+1401 1221 1452 1466 1401 1221 c
+977 1221 1401 1221 977 1221 c
+722 0 977 1221 722 0 c
+closepath } bind def
+/s108 {
+80 0 m
+387 1466 80 0 387 1466 c
+673 1466 387 1466 673 1466 c
+367 0 673 1466 367 0 c
+80 0 367 0 80 0 c
+closepath } bind def
+/s110 {
+308 1062 m
+580 1062 308 1062 580 1062 c
+552 924 580 1062 552 924 c
+620 982.67 683.5 1024.5 742.5 1049.5 c
+801.5 1074.5 863.67 1087 929 1087 c
+1016.33 1087 1085.17 1062 1135.5 1012 c
+1185.83 962 1211 895.67 1211 813 c
+1211 775.67 1200 705 1178 601 c
+1053 0 1178 601 1053 0 c
+766 0 1053 0 766 0 c
+892 603 766 0 892 603 c
+910.67 693 920 746.67 920 764 c
+920 800.67 909.17 829.5 887.5 850.5 c
+865.83 871.5 835.67 882 797 882 c
+755 882 708.33 864.33 657 829 c
+605.67 793.67 565.33 747 536 689 c
+514.67 647.67 490.67 563.33 464 436 c
+373 0 464 436 373 0 c
+86 0 373 0 86 0 c
+308 1062 86 0 308 1062 c
+closepath } bind def
+end
+/BuildGlyph {
+ exch dup /Metrics get 2 index get 0 setcharwidth
+/CharProcs get exch 2 copy known not{pop/.notdef}if get exec fill}bind def
+/BuildChar {
+1 index /Encoding get exch get
+1 index /BuildGlyph get exec
+} bind def
+currentdict end /MC4_ArialBoldItalic exch definefont pop
+%%EndFont
+%%BeginFont: /MC5_SymbolBoldItalic
+12 dict begin
+/FontInfo 8 dict dup begin
+/ItalicAngle 18 def
+/UnderlinePosition -223.00 def
+/UnderlineThickness 100.00 def
+/StrikeoutPosition 530.00 def
+/StrikeoutThickness 102.00 def
+/isFixedPitch false def
+end readonly def
+/FontName /MC5_SymbolBoldItalic def
+/FontType 3 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0] def
+/FontBBox [-1 -450 3094 2059] def
+/Encoding 256 array def 0 1 255{Encoding exch/.notdef put}for
+Encoding 32/s32 put
+/BoundingBoxes 3 dict def
+BoundingBoxes begin
+/s32 [0 -450 1328 2059] def
+/s61554 [0 -450 815 2059] def
+end
+/Metrics 3 dict def
+ Metrics begin
+/s32 513 def
+/s61554 0 def
+end
+/CharProcs 3 dict def
+CharProcs begin
+/.notdef {} def
+/s61554 {
+360.59 54.67 m
+328.36 -40.13 360.59 54.67 328.36 -40.13 c
+272.98 -202.93 217.05 -333.89 160.55 -433 c
+-44.28 -433 160.55 -433 -44.28 -433 c
+-11.11 -375.67 11.79 -334.07 24.44 -308.22 c
+46.04 -263.78 67.97 -208.83 90.23 -143.36 c
+304.02 485.16 90.23 -143.36 304.02 485.16 c
+351.86 625.82 447.94 743.29 592.25 837.55 c
+686.65 923.18 801.34 966 936.33 966 c
+1091.03 966 1189.99 910.24 1233.23 798.72 c
+1266.17 712.42 1264.32 615.41 1227.69 507.7 c
+1186.52 386.66 1101.99 272.14 974.11 164.14 c
+846.07 34.71 704.95 -30 550.75 -30 c
+494.99 -30 448.32 -22.13 410.73 -6.38 c
+381.76 6.53 365.04 26.88 360.59 54.67 c
+closepath 468.22 371.09 m
+438.58 283.96 425.56 224.38 429.16 192.35 c
+432.75 160.33 450.12 133.09 481.27 110.66 c
+512.42 88.22 553.19 77 603.58 77 c
+679.18 77 753.71 106.98 827.17 166.93 c
+900.63 226.88 955.32 309.66 991.25 415.27 c
+1018.32 494.87 1026.71 568.67 1016.41 636.66 c
+1006.12 704.65 980.87 754.7 940.68 786.82 c
+900.49 818.94 852.54 835 796.83 835 c
+730.1 835 671.22 806.67 620.2 750 c
+595.82 723.58 563.96 652.57 524.64 536.97 c
+468.22 371.09 524.64 536.97 468.22 371.09 c
+closepath } bind def
+end
+/BuildGlyph {
+ exch dup /Metrics get 2 index get 0 setcharwidth
+/CharProcs get exch 2 copy known not{pop/.notdef}if get exec fill}bind def
+/BuildChar {
+1 index /Encoding get exch get
+1 index /BuildGlyph get exec
+} bind def
+currentdict end /MC5_SymbolBoldItalic exch definefont pop
+%%EndFont
+0 0 818.87 572.63 rectpath cl np
+/clipproc{clippath{[{/m cvx}{/l cvx}{/c cvx}{/cp cvx}pathforall}stopped
+{cleartomark[pathbbox exch 3 i sub exch 2 i sub/rectpath cvx}if]np}bd
+/iclmtx mtx cmtx def/iclpath clipproc xd/clinit{pathproc initclip np iclpath cl np exec}bd
+/clmove{pathproc 3 1 roll clippath pathproc 2 i neg 2 i neg tr initclip np exec cl tr np exec}bd
+/clrect[gs np iclpath{pathbbox}stopped{0 0 818.87 572.63 }if gr]def
+/cloper{mtx cmtx iclmtx smtx exch exec smtx}bd
+/cland{{exch cvx exec}cloper}bd
+/clcopy{{exch clinit cvx exec}cloper}bd
+/cldiff{{exch pathbbox 4 -1 roll clrect 0 get 2 copy gt{exch}if pop 4 1 roll
+ 3 -1 roll clrect 1 get 2 copy gt{exch}if pop 3 1 roll
+ 2 -1 roll clrect 2 get 2 copy lt{exch}if pop 2 1 roll
+ 1 -1 roll clrect 3 get 2 copy lt{exch}if pop 1 1 roll
+ exch 3 i sub exch 2 i sub rectpath cvx exec}cloper}bd
+/icl{{clinit}cloper}bd
+0.321582 0.321099 sc
+
+/initmtx mtx cmtx def
+gs
+gs
+[0.746309 0 0 -0.747416 0 1783.33] concat
+1 -1 sc
+/MC1_ArialBold 89 self 793 -2115 m
+(-3.0)[30 49 25 49 ] xs
+1 -1 sc
+gr
+gs
+[0.746309 0 0 -0.747416 0 1783.33] concat
+1 -1 sc
+/MC1_ArialBold 89 self 1439 -2115 m
+(-2.5)[30 49 25 49 ] xs
+1 -1 sc
+gr
+gs
+[0.746309 0 0 -0.747416 0 1783.33] concat
+1 -1 sc
+/MC1_ArialBold 89 self 2085 -2115 m
+(-2.0)[30 49 25 49 ] xs
+1 -1 sc
+gr
+gs
+[0.746309 0 0 -0.747416 0 1783.33] concat
+1 -1 sc
+/MC1_ArialBold 89 self 2732 -2115 m
+(-1.5)[30 49 25 49 ] xs
+1 -1 sc
+gr
+gs
+[0.746309 0 0 -0.747416 0 1783.33] concat
+1 -1 sc
+/MC1_ArialBold 89 self 401 -2013 m
+(-4.0)[30 49 25 49 ] xs
+1 -1 sc
+gr
+gs
+[0.746309 0 0 -0.747416 0 1783.33] concat
+1 -1 sc
+/MC1_ArialBold 89 self 401 -1562 m
+(-3.5)[30 49 25 49 ] xs
+1 -1 sc
+gr
+gs
+[0.746309 0 0 -0.747416 0 1783.33] concat
+1 -1 sc
+/MC1_ArialBold 89 self 401 -1112 m
+(-3.0)[30 49 25 49 ] xs
+1 -1 sc
+gr
+gs
+[0.746309 0 0 -0.747416 0 1783.33] concat
+1 -1 sc
+/MC1_ArialBold 89 self 401 -661 m
+(-2.5)[30 49 25 49 ] xs
+1 -1 sc
+gr
+[0.746309 0 0 -0.747416 0 1783.33] concat
+870 2023 m
+870 1989 l
+7 sw
+1 sj
+1 scap
+st
+1193 2006 m
+1193 1989 l
+st
+1516 2023 m
+1516 1989 l
+st
+1839 2006 m
+1839 1989 l
+st
+2162 2023 m
+2162 1989 l
+st
+2486 2006 m
+2486 1989 l
+st
+2809 2023 m
+2809 1989 l
+st
+611 1989 m
+2938 1989 l
+st
+577 1989 m
+611 1989 l
+st
+594 1764 m
+611 1764 l
+st
+577 1538 m
+611 1538 l
+st
+594 1313 m
+611 1313 l
+st
+577 1088 m
+611 1088 l
+st
+594 863 m
+611 863 l
+st
+577 637 m
+611 637 l
+st
+594 412 m
+611 412 l
+st
+611 1989 m
+611 277 l
+st
+gs
+pathproc 611 277 2328 1713 np rectpath
+/eocl cland
+np exec
+1270 1145 m
+1715 803 l
+3 sw
+st
+864 1371 m
+1220 1177 l
+st
+1523 1389 m
+868 1385 l
+st
+1712 1323 m
+1581 1378 l
+st
+1972 1247 m
+1769 1304 l
+st
+1880 1396 m
+1990 1295 l
+st
+1451 1522 m
+1829 1424 l
+st
+1137 1698 m
+1396 1545 l
+st
+830 1846 m
+1084 1726 l
+st
+1721 767 36 36 rectfill
+1084 1726 m
+1721 767 36 36 rectstroke
+1228 1145 36 36 rectfill
+1228 1145 36 36 rectstroke
+820 1367 36 36 rectfill
+820 1367 36 36 rectstroke
+1535 1371 36 36 rectfill
+1535 1371 36 36 rectstroke
+1722 1294 36 36 rectfill
+1722 1294 36 36 rectstroke
+1983 1221 36 36 rectfill
+1983 1221 36 36 rectstroke
+1994 1257 36 36 rectfill
+1994 1257 36 36 rectstroke
+1840 1398 36 36 rectfill
+1840 1398 36 36 rectstroke
+1404 1512 36 36 rectfill
+1404 1512 36 36 rectstroke
+1093 1695 36 36 rectfill
+1093 1695 36 36 rectstroke
+785 1841 36 36 rectfill
+785 1841 36 36 rectstroke
+gr
+gs
+pathproc 611 277 2328 1713 np rectpath
+/eocl cland
+np exec
+1851 790 m
+2274 570 l
+3 sw
+st
+1899 909 m
+1842 828 l
+st
+2203 938 m
+1984 948 l
+st
+2343 937 m
+2263 936 l
+st
+2260 965 m
+2344 944 l
+st
+2182 1028 m
+2211 995 l
+st
+1937 1149 m
+2135 1063 l
+st
+1436 1294 m
+1881 1169 l
+st
+np
+2301 556 21 0 360 a
+cp
+gs
+1 0 0 rgb
+eofi
+gr
+1 0 0 rgb
+st
+np
+1824 804 21 0 360 a
+cp
+gs
+eofi
+gr
+st
+np
+1917 933 21 0 360 a
+cp
+gs
+eofi
+gr
+st
+np
+1954 950 21 0 360 a
+cp
+gs
+eofi
+gr
+st
+np
+2233 936 21 0 360 a
+cp
+gs
+eofi
+gr
+st
+np
+2373 937 21 0 360 a
+cp
+gs
+eofi
+gr
+st
+np
+2231 972 21 0 360 a
+cp
+gs
+eofi
+gr
+st
+np
+2162 1051 21 0 360 a
+cp
+gs
+eofi
+gr
+st
+np
+1910 1161 21 0 360 a
+cp
+gs
+eofi
+gr
+st
+np
+1407 1302 21 0 360 a
+cp
+gs
+eofi
+gr
+st
+gr
+gs
+pathproc 611 277 2328 1713 np rectpath
+/eocl cland
+np exec
+2600 528 m
+2749 388 l
+3 sw
+st
+2399 631 m
+2551 561 l
+st
+2502 673 m
+2401 650 l
+st
+2562 683 m
+2561 683 l
+st
+2588 734 m
+2604 724 l
+st
+2400 810 m
+2536 762 l
+st
+2147 910 m
+2344 831 l
+st
+1902 1038 m
+2093 935 l
+st
+1563 1186 m
+1848 1064 l
+st
+2771 340 m
+2795 382 l
+2746 382 l
+cp
+gs
+0 1 0 rgb
+eofi
+gr
+0 1 0 rgb
+st
+2578 520 m
+2602 562 l
+2553 562 l
+cp
+gs
+eofi
+gr
+st
+2372 616 m
+2396 658 l
+2347 658 l
+cp
+gs
+eofi
+gr
+st
+2531 651 m
+2555 693 l
+2506 693 l
+cp
+gs
+eofi
+gr
+st
+2592 659 m
+2616 701 l
+2567 701 l
+cp
+gs
+eofi
+gr
+st
+2628 678 m
+2652 720 l
+2603 720 l
+cp
+gs
+eofi
+gr
+st
+2564 724 m
+2588 766 l
+2539 766 l
+cp
+gs
+eofi
+gr
+st
+2372 792 m
+2396 834 l
+2347 834 l
+cp
+gs
+eofi
+gr
+st
+2119 893 m
+2143 935 l
+2094 935 l
+cp
+gs
+eofi
+gr
+st
+1876 1024 m
+1900 1066 l
+1851 1066 l
+cp
+gs
+eofi
+gr
+st
+1535 1170 m
+1559 1212 l
+1510 1212 l
+cp
+gs
+eofi
+gr
+st
+gr
+gs
+gs
+gs
+2379 1205 m
+2478 1205 l
+3 sw
+st
+2588 1205 m
+2687 1205 l
+st
+gr
+2514 1186 38 38 rectfill
+611 277 m
+3 sw
+2514 1186 38 38 rectstroke
+gr
+1 -1 sc
+/MC2_Arial 137 self 2687 -1251 m
+( )[38 ] xs
+1 -1 sc
+1 -1 sc
+/MC3_ArialBoldItalic 135 self 2725 -1251 m
+(T=0.20)[82 79 75 38 75 75 ] xs
+1 -1 sc
+gs
+gs
+2379 1376 m
+2478 1376 l
+3 sw
+st
+2588 1376 m
+2687 1376 l
+st
+gr
+np
+2533 1376 21 0 360 a
+cp
+gs
+1 0 0 rgb
+eofi
+gr
+3 sw
+1 0 0 rgb
+st
+gr
+1 -1 sc
+/MC2_Arial 137 self 2687 -1422 m
+( )[38 ] xs
+1 -1 sc
+1 -1 sc
+/MC3_ArialBoldItalic 135 self 2725 -1422 m
+(T=0.25)[82 79 75 38 75 75 ] xs
+1 -1 sc
+gs
+gs
+2379 1547 m
+2478 1547 l
+3 sw
+st
+2588 1547 m
+2687 1547 l
+st
+gr
+2533 1518 m
+2558 1561 l
+2507 1561 l
+cp
+gs
+0 1 0 rgb
+eofi
+gr
+3 sw
+0 1 0 rgb
+st
+gr
+1 -1 sc
+/MC2_Arial 137 self 2687 -1593 m
+( )[38 ] xs
+1 -1 sc
+1 -1 sc
+/MC3_ArialBoldItalic 135 self 2725 -1593 m
+(T=0.30)[82 79 75 38 75 75 ] xs
+1 -1 sc
+gr
+gs
+gs
+1 -1 sc
+288 -1696 tr
+90 ro
+/MC4_ArialBoldItalic 158 self 0 0 m
+(ln)[45 98 ] xs
+1 -1 sc
+gr
+gs
+1 -1 sc
+288 -1553 tr
+90 ro
+/MC4_ArialBoldItalic 158 self 0 0 m
+(\()[54 ] xs
+1 -1 sc
+gr
+gs
+1 -1 sc
+288 -1499 tr
+90 ro
+/MC4_ArialBoldItalic 158 self 0 0 m
+(D)[116 ] xs
+1 -1 sc
+gr
+gs
+1 -1 sc
+288 -1383 tr
+90 ro
+/MC5_SymbolBoldItalic 147 self 0 0 m
+/s61554 82 xgls
+1 -1 sc
+gr
+gs
+1 -1 sc
+200 -1301 tr
+90 ro
+/MC4_ArialBoldItalic 95 self 0 0 m
+(1/3)[54 27 54 ] xs
+1 -1 sc
+gr
+gs
+1 -1 sc
+288 -1166 tr
+90 ro
+/MC4_ArialBoldItalic 158 self 0 0 m
+(/T)[45 98 ] xs
+1 -1 sc
+gr
+gs
+1 -1 sc
+200 -1023 tr
+90 ro
+/MC4_ArialBoldItalic 95 self 0 0 m
+(1/2)[54 27 54 ] xs
+1 -1 sc
+gr
+gs
+1 -1 sc
+288 -888 tr
+90 ro
+/MC4_ArialBoldItalic 158 self 0 0 m
+(\))[54 ] xs
+1 -1 sc
+gr
+gr
+gs
+1 -1 sc
+/MC3_ArialBoldItalic 158 self 1704 -2336 m
+(s)[88 ] xs
+1 -1 sc
+1 -1 sc
+/MC3_ArialBoldItalic 95 self 1792 -2399 m
+(2)[53 ] xs
+1 -1 sc
+gr
+gs
+1 -1 sc
+/MC3_ArialBoldItalic 135 self 835 -271 m
+(\(b\))[45 82 45 ] xs
+1 -1 sc
+gr
+gr
+Save0 restore end
+showpage
+%%EOF
diff --git a/Build/source/texk/dvipsk/testdata/beginfontk1.tex b/Build/source/texk/dvipsk/testdata/beginfontk1.tex
new file mode 100644
index 00000000000..819e3ea512b
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/beginfontk1.tex
@@ -0,0 +1,5 @@
+\documentclass{article}
+\usepackage{graphics}
+\begin{document}
+\includegraphics{beginfontk1.eps}
+\end{document}
diff --git a/Build/source/texk/dvipsk/testdata/cmex10.pfb b/Build/source/texk/dvipsk/testdata/cmex10.pfb
new file mode 100644
index 00000000000..db477fa43ba
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/cmex10.pfb
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/cmex10.tfm b/Build/source/texk/dvipsk/testdata/cmex10.tfm
new file mode 100644
index 00000000000..d5427ad3f7f
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/cmex10.tfm
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/cmmi10.pfb b/Build/source/texk/dvipsk/testdata/cmmi10.pfb
new file mode 100644
index 00000000000..b53fe888065
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/cmmi10.pfb
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/cmmi10.tfm b/Build/source/texk/dvipsk/testdata/cmmi10.tfm
new file mode 100644
index 00000000000..bb6d147515b
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/cmmi10.tfm
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/cmr10.pfb b/Build/source/texk/dvipsk/testdata/cmr10.pfb
new file mode 100644
index 00000000000..337b4b58c45
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/cmr10.pfb
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/cmr10.tfm b/Build/source/texk/dvipsk/testdata/cmr10.tfm
new file mode 100644
index 00000000000..6594c9c4a7f
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/cmr10.tfm
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/cmsy10.pfb b/Build/source/texk/dvipsk/testdata/cmsy10.pfb
new file mode 100644
index 00000000000..e2dbb2233e7
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/cmsy10.pfb
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/cmsy10.tfm b/Build/source/texk/dvipsk/testdata/cmsy10.tfm
new file mode 100644
index 00000000000..3e4488b0059
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/cmsy10.tfm
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/cmtt10.pfb b/Build/source/texk/dvipsk/testdata/cmtt10.pfb
new file mode 100644
index 00000000000..839931ab256
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/cmtt10.pfb
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/cmtt10.tfm b/Build/source/texk/dvipsk/testdata/cmtt10.tfm
new file mode 100644
index 00000000000..12df934421b
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/cmtt10.tfm
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/color.pro b/Build/source/texk/dvipsk/testdata/color.pro
new file mode 100644
index 00000000000..bf704cc3d08
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/color.pro
@@ -0,0 +1,46 @@
+%!
+TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
+setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
+}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
+/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
+setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
+/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
+known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
+/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
+/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
+setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
+setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
+0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
+/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
+setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
+0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
+0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
+0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
+/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
+setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
+setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
+0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
+/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
+setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
+0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
+0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
+0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
+/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
+setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
+/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
+0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
+0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
+0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
+setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
+0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
+/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
+setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
+0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
+1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
+/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
+setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
+0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
+DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
+setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
+setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
+setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
diff --git a/Build/source/texk/dvipsk/testdata/config.pdf b/Build/source/texk/dvipsk/testdata/config.pdf
new file mode 100644
index 00000000000..edba69157ed
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/config.pdf
@@ -0,0 +1,43 @@
+% This is a config file for dvips, meant to produce PostScript optimized
+% for distilling to PDF. Created 12 Apr 1999 by Timothy van Zandt, later
+% modified te (papersize, o line).
+% Public domain.
+
+% Memory available: The default for Distiller 3.0x is 8meg.
+% Reduce to be on safe side:
+
+m 6000000
+
+% Default is to save output as file.
+% If possible, change this so that it pipes output to distiller.
+% If not, use command line ``-o file'' option to change name
+% of output file.
+
+o
+
+% Default resolution. Attempt to make `resolution independent'.
+% Resolution set to 8000dpi (could be as high as 10000).
+
+D 8000
+
+% Use outline fonts, not bitmaps.
+% (For the testdata/ dir, we only have the outlines.)
+p psfonts.map
+
+% Last resort sizes.
+% If you accidentally include a bitmapped pk font, it will probably go
+% at 600dpi.
+
+R 300 600
+
+% Partial Type1 font downloading. This will happen by default. Uncomment
+% this is you want to download entire fonts, which is not recommended.
+
+% j0
+
+% Switching algorithm for drawing rules. texc.pro is loaded by default,
+% but the h tex.pro is need so that it comes before the patch. See
+% below for more details.
+
+h tex.pro
+h alt-rule.pro
diff --git a/Build/source/texk/dvipsk/testdata/config.ps b/Build/source/texk/dvipsk/testdata/config.ps
new file mode 100644
index 00000000000..edf49a49182
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/config.ps
@@ -0,0 +1,48 @@
+m 1000000
+D 600
+X 600
+Y 600
+M ljfour
+R 300 600
+O 0pt,0pt
+Z
+
+@ A4size 210mm 297mm
+@+ %%PaperSize: A4
+
+@ letterSize 8.5in 11in
+
+@ letter 8.5in 11in
+@+ %%BeginPaperSize: Letter
+@+ letter
+@+ %%EndPaperSize
+
+@ legal 8.5in 14in
+@+ ! %%DocumentPaperSizes: Legal
+@+ %%BeginPaperSize: Legal
+@+ legal
+@+ %%EndPaperSize
+
+@ ledger 17in 11in
+@+ ! %%DocumentPaperSizes: Ledger
+@+ %%BeginPaperSize: Ledger
+@+ ledger
+@+ %%EndPaperSize
+
+@ tabloid 11in 17in
+@+ ! %%DocumentPaperSizes: Tabloid
+@+ %%BeginPaperSize: Tabloid
+@+ 11x17
+@+ %%EndPaperSize
+
+@ A4 210mm 297mm
+@+ ! %%DocumentPaperSizes: A4
+@+ %%BeginPaperSize: A4
+@+ a4
+@+ %%EndPaperSize
+
+@ A3 297mm 420mm
+@+ ! %%DocumentPaperSizes: A3
+@+ %%BeginPaperSize: A3
+@+ a3
+@+ %%EndPaperSize
diff --git a/Build/source/texk/dvipsk/testdata/dvipstst.tex b/Build/source/texk/dvipsk/testdata/dvipstst.tex
new file mode 100644
index 00000000000..11abb16e42b
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/dvipstst.tex
@@ -0,0 +1,136 @@
+%
+% This file is a quick and simple, gross test of dvips. It only tests
+% the most basic things.
+%
+% To run:
+% remove the file mtest.ps if it exists
+% tex test
+% dvips test -o test.ps (ignore the error)
+% copy test.ps mtest.ps
+% dvips test
+% and print.
+%
+% First, paper size
+%
+\newif\ifafour
+\afourtrue
+%
+% Next, big rules.
+%
+\nopagenumbers\raggedbottom
+\ifafour
+ \special{papersize=210mm,297mm}
+ \hsize=7.7677truein\vsize=11.1929truein
+\else
+ \special{papersize=8.5in,11in} % the default anyway, so not necessary
+ \hsize=8truein\vsize=10.5truein
+\fi
+\hoffset=-0.75truein\voffset=-0.75truein
+\newdimen\ovsize \ovsize=\vsize
+\newdimen\ohsize \ohsize=\hsize
+\vbox to\vsize{\hrule height 6pt\advance\vsize by -12pt
+\hbox{\vrule width 6pt\vbox to\vsize{\advance\hsize by -12pt
+%
+% Now, PostScript fonts.
+%
+\bigskip
+\font\norm=ptmr at 20truept
+\centerline{\norm DVIPS: A \TeX\ Driver For PostScript}
+\font\foolish=ptmri at 100truept\
+\bigskip
+\centerline{\foolish g}
+\bigskip
+%
+% Next, literal graphics. It's not supposed to look pretty.
+%
+\vskip1truein
+\centerline{\special{" 0 36 translate .05 .099 .95 {
+ 27.4 0 translate gsave
+ 0 0 moveto dup 90 mul rotate
+ -10 -10 rmoveto 20 0 rlineto 0 20 rlineto -20 0 rlineto closepath
+ gsave dup setgray fill grestore 1 exch sub setgray stroke
+ grestore 27.4 0 translate } for }\hskip 7.77truein}
+%
+% Next, some alignment problems that are not done correctly by some
+% dvi2ps programs.
+%
+$$\sqrt{\sqrt{{a\Longrightarrow b\longrightarrow c}\over
+\vbox{\hsize=3in\noindent
+the phase of the moon multiplied by the number of angels that can
+dance on the head of a pin while the rich man threads the needle
+divided by $\pi$ or some other transcendental number}}}$$
+\bigskip
+%
+% Now, included epsf graphics. We include this document
+% recursively. Of course, things will be ugly.
+%
+\input epsf
+\epsfxsize=0.5\ohsize
+%
+% If you go to a4 paper, change the following supplied bounding box
+% appropriately.
+%
+\ifafour
+ \line{\hfil\epsffile[18 18 577 814]{mtest.ps}\hfil
+\else
+ \line{\hfil\epsffile[18 18 594 774]{mtest.ps}\hfil
+\fi
+\vbox to 0.5\ovsize{\hsize=3.3truein\parindent=10pt\parskip=0pt plus 1fil
+To run this test, remove a file called mtest.ps if it exists.
+Then, run \TeX\ over
+test.tex, run dvips over test.dvi, saving the output in a file test.ps.
+Copy test.ps to mtest.ps.
+Run dvips over test.dvi again, this time printing or saving the output,
+as you choose. (Including the document too many times inside itself
+will overflow the virtual memory capacities of most printers.)
+
+Some things to check on this page. First, the large rules surrounding
+the page should be exactly one quarter inch from each border (assuming
+a 8.5 by 11 page; for an a4 page, change the {\tt\char92 afourfalse}
+to {\tt\char92 afourtrue} on line 16.)
+
+You should see a title at the top, and a large italic g under that.
+Then, there should be a centered row of ten boxes, going from dark to
+light gray, rotating slowly.
+
+In the `equation' that follows, check the upper left corner of the radical
+signs for alignment. Also check the right arrows.
+
+In the recursively included page to the left,
+note how bad the bitmapped fonts look
+(they are the ones under the radical, and indeed this text itself.)
+The thin
+rules may disappear altogether. This points out the resolution dependence
+of dvips output; this is an unfortunate necessity of using bitmapped fonts.
+The PostScript fonts, on the other hand, should scale fine.
+
+Finally, at the bottom of the page, you will see some tests of the accents in
+the PostScript fonts. Pay careful attention to the word na\"\i ve; there
+should be an umlaut over a dotless i. The text should read
+``Ich wei\ss\ tats\"achlich nicht mehr als das.
+D\ae monic souffl\'es have no r\^ole in na\"\i ve \oe uvres.
+---\AE sop's \OE uvres.''
+}\hfil}
+%
+% Finally, PostScript fonts again; let's test some accents.
+%
+\bigskip
+\font\foo=ptmbi at 16truept
+\centerline{\vbox{\advance\hsize by -2in
+{\foo\noindent Ich wei\ss\ tats\"achlich nicht mehr als das.
+D\ae monic souffl\'es have no r\^ole in na\"\i ve \oe uvres.
+---\AE sop's \OE uvres.}}}
+\bigskip}\vrule width 6pt}\hrule height 6pt}
+%
+% We also want to test bop-hook stuff.
+%
+\special{! userdict begin /bop-hook{gsave 200 30 translate
+65 rotate /Times-Roman findfont 260 scalefont setfont
+0 0 moveto 0.8 setgray (DVIPS) show grestore}def end}
+%
+\bye
+
+%%% Local Variables:
+%%% mode: plain-tex
+%%% TeX-master: t
+%%% End:
diff --git a/Build/source/texk/dvipsk/testdata/dvipstst.xdv b/Build/source/texk/dvipsk/testdata/dvipstst.xdv
new file mode 100644
index 00000000000..368192baa14
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/dvipstst.xdv
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/dvipstst.xps b/Build/source/texk/dvipsk/testdata/dvipstst.xps
new file mode 100644
index 00000000000..6fdf1b9b8ca
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/dvipstst.xps
@@ -0,0 +1,5499 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.98dev Copyright 2010 Radical Eye Software
+%%Title: ../../../texk/dvipsk/testdata/dvipstst.xdv
+%%CreationDate: Fri May 7 14:06:17 2010
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%DocumentFonts: Times-Roman Times-Italic CMEX10 CMMI10 CMR10 CMSY10
+%%+ CMTT10 Times-BoldItalic
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: ./dvips -D 300
+%+ ../../../texk/dvipsk/testdata/dvipstst.xdv -o
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 1998.01.01:1040
+%%BeginProcSet: texc.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: 8r.enc 0 0
+% @@psencodingfile@{
+% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
+% version = "0.6",
+% date = "1 July 1998",
+% filename = "8r.enc",
+% email = "tex-fonts@@tug.org",
+% docstring = "Encoding for TrueType or Type 1 fonts
+% to be used with TeX."
+% @}
+%
+% Idea is to have all the characters normally included in Type 1 fonts
+% available for typesetting. This is effectively the characters in Adobe
+% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
+%
+% Character code assignments were made as follows:
+%
+% (1) the Windows ANSI characters are almost all in their Windows ANSI
+% positions, because some Windows users cannot easily reencode the
+% fonts, and it makes no difference on other systems. The only Windows
+% ANSI characters not available are those that make no sense for
+% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
+% (173). quotesingle and grave are moved just because it's such an
+% irritation not having them in TeX positions.
+%
+% (2) Remaining characters are assigned arbitrarily to the lower part
+% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
+%
+% (3) Y&Y Lucida Bright includes some extra text characters; in the
+% hopes that other PostScript fonts, perhaps created for public
+% consumption, will include them, they are included starting at 0x12.
+%
+% (4) Remaining positions left undefined are for use in (hopefully)
+% upward-compatible revisions, if someday more characters are generally
+% available.
+%
+% (5) hyphen appears twice for compatibility with both
+% ASCII and Windows.
+%
+/TeXBase1Encoding [
+% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
+ /.notdef /dotaccent /fi /fl
+ /fraction /hungarumlaut /Lslash /lslash
+ /ogonek /ring /.notdef
+ /breve /minus /.notdef
+% These are the only two remaining unencoded characters, so may as
+% well include them.
+ /Zcaron /zcaron
+% 0x10
+ /caron /dotlessi
+% (unusual TeX characters available in, e.g., Lucida Bright)
+ /dotlessj /ff /ffi /ffl
+ /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef
+ % very contentious; it's so painful not having quoteleft and quoteright
+ % at 96 and 145 that we move the things normally found there to here.
+ /grave /quotesingle
+% 0x20 (ASCII begins)
+ /space /exclam /quotedbl /numbersign
+ /dollar /percent /ampersand /quoteright
+ /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+% 0x30
+ /zero /one /two /three /four /five /six /seven
+ /eight /nine /colon /semicolon /less /equal /greater /question
+% 0x40
+ /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
+% 0x50
+ /P /Q /R /S /T /U /V /W
+ /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+% 0x60
+ /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
+% 0x70
+ /p /q /r /s /t /u /v /w
+ /x /y /z /braceleft /bar /braceright /asciitilde
+ /.notdef % rubout; ASCII ends
+% 0x80
+ /.notdef /.notdef /quotesinglbase /florin
+ /quotedblbase /ellipsis /dagger /daggerdbl
+ /circumflex /perthousand /Scaron /guilsinglleft
+ /OE /.notdef /.notdef /.notdef
+% 0x90
+ /.notdef /.notdef /.notdef /quotedblleft
+ /quotedblright /bullet /endash /emdash
+ /tilde /trademark /scaron /guilsinglright
+ /oe /.notdef /.notdef /Ydieresis
+% 0xA0
+ /.notdef % nobreakspace
+ /exclamdown /cent /sterling
+ /currency /yen /brokenbar /section
+ /dieresis /copyright /ordfeminine /guillemotleft
+ /logicalnot
+ /hyphen % Y&Y (also at 45); Windows' softhyphen
+ /registered
+ /macron
+% 0xD0
+ /degree /plusminus /twosuperior /threesuperior
+ /acute /mu /paragraph /periodcentered
+ /cedilla /onesuperior /ordmasculine /guillemotright
+ /onequarter /onehalf /threequarters /questiondown
+% 0xC0
+ /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis
+ /Igrave /Iacute /Icircumflex /Idieresis
+% 0xD0
+ /Eth /Ntilde /Ograve /Oacute
+ /Ocircumflex /Otilde /Odieresis /multiply
+ /Oslash /Ugrave /Uacute /Ucircumflex
+ /Udieresis /Yacute /Thorn /germandbls
+% 0xE0
+ /agrave /aacute /acircumflex /atilde
+ /adieresis /aring /ae /ccedilla
+ /egrave /eacute /ecircumflex /edieresis
+ /igrave /iacute /icircumflex /idieresis
+% 0xF0
+ /eth /ntilde /ograve /oacute
+ /ocircumflex /otilde /odieresis /divide
+ /oslash /ugrave /uacute /ucircumflex
+ /udieresis /yacute /thorn /ydieresis
+] def
+
+%%EndProcSet
+%%BeginProcSet: cmex10.pfb 0 0
+%!PS-AdobeFont-1.1: CMEX10 1.00
+%%CreationDate: 1992 Jul 23 21:22:48
+
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMEX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMEX10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 161 /parenleftbig put
+dup 162 /parenrightbig put
+dup 163 /bracketleftbig put
+dup 164 /bracketrightbig put
+dup 165 /floorleftbig put
+dup 166 /floorrightbig put
+dup 167 /ceilingleftbig put
+dup 168 /ceilingrightbig put
+dup 169 /braceleftbig put
+dup 170 /bracerightbig put
+dup 173 /angbracketleftbig put
+dup 174 /angbracketrightbig put
+dup 175 /vextendsingle put
+dup 176 /vextenddouble put
+dup 177 /slashbig put
+dup 178 /backslashbig put
+dup 179 /parenleftBig put
+dup 180 /parenrightBig put
+dup 181 /parenleftbigg put
+dup 182 /parenrightbigg put
+dup 183 /bracketleftbigg put
+dup 184 /bracketrightbigg put
+dup 185 /floorleftbigg put
+dup 186 /floorrightbigg put
+dup 187 /ceilingleftbigg put
+dup 188 /ceilingrightbigg put
+dup 189 /braceleftbigg put
+dup 190 /bracerightbigg put
+dup 191 /angbracketleftbigg put
+dup 192 /angbracketrightbigg put
+dup 193 /slashbigg put
+dup 194 /backslashbigg put
+dup 195 /parenleftBigg put
+dup 196 /arrowdblbt put
+dup 0 /parenleftbig put
+dup 1 /parenrightbig put
+dup 2 /bracketleftbig put
+dup 3 /bracketrightbig put
+dup 4 /floorleftbig put
+dup 5 /floorrightbig put
+dup 6 /ceilingleftbig put
+dup 7 /ceilingrightbig put
+dup 8 /braceleftbig put
+dup 9 /bracerightbig put
+dup 10 /angbracketleftbig put
+dup 11 /angbracketrightbig put
+dup 12 /vextendsingle put
+dup 13 /vextenddouble put
+dup 14 /slashbig put
+dup 15 /backslashbig put
+dup 16 /parenleftBig put
+dup 17 /parenrightBig put
+dup 18 /parenleftbigg put
+dup 19 /parenrightbigg put
+dup 20 /bracketleftbigg put
+dup 21 /bracketrightbigg put
+dup 22 /floorleftbigg put
+dup 23 /floorrightbigg put
+dup 24 /ceilingleftbigg put
+dup 25 /ceilingrightbigg put
+dup 26 /braceleftbigg put
+dup 27 /bracerightbigg put
+dup 28 /angbracketleftbigg put
+dup 29 /angbracketrightbigg put
+dup 30 /slashbigg put
+dup 31 /backslashbigg put
+dup 32 /parenleftBigg put
+dup 33 /parenrightBigg put
+dup 34 /bracketleftBigg put
+dup 35 /bracketrightBigg put
+dup 36 /floorleftBigg put
+dup 37 /floorrightBigg put
+dup 38 /ceilingleftBigg put
+dup 39 /ceilingrightBigg put
+dup 40 /braceleftBigg put
+dup 41 /bracerightBigg put
+dup 42 /angbracketleftBigg put
+dup 43 /angbracketrightBigg put
+dup 44 /slashBigg put
+dup 45 /backslashBigg put
+dup 46 /slashBig put
+dup 47 /backslashBig put
+dup 48 /parenlefttp put
+dup 49 /parenrighttp put
+dup 50 /bracketlefttp put
+dup 51 /bracketrighttp put
+dup 52 /bracketleftbt put
+dup 53 /bracketrightbt put
+dup 54 /bracketleftex put
+dup 55 /bracketrightex put
+dup 56 /bracelefttp put
+dup 57 /bracerighttp put
+dup 58 /braceleftbt put
+dup 59 /bracerightbt put
+dup 60 /braceleftmid put
+dup 61 /bracerightmid put
+dup 62 /braceex put
+dup 63 /arrowvertex put
+dup 64 /parenleftbt put
+dup 65 /parenrightbt put
+dup 66 /parenleftex put
+dup 67 /parenrightex put
+dup 68 /angbracketleftBig put
+dup 69 /angbracketrightBig put
+dup 70 /unionsqtext put
+dup 71 /unionsqdisplay put
+dup 72 /contintegraltext put
+dup 73 /contintegraldisplay put
+dup 74 /circledottext put
+dup 75 /circledotdisplay put
+dup 76 /circleplustext put
+dup 77 /circleplusdisplay put
+dup 78 /circlemultiplytext put
+dup 79 /circlemultiplydisplay put
+dup 80 /summationtext put
+dup 81 /producttext put
+dup 82 /integraltext put
+dup 83 /uniontext put
+dup 84 /intersectiontext put
+dup 85 /unionmultitext put
+dup 86 /logicalandtext put
+dup 87 /logicalortext put
+dup 88 /summationdisplay put
+dup 89 /productdisplay put
+dup 90 /integraldisplay put
+dup 91 /uniondisplay put
+dup 92 /intersectiondisplay put
+dup 93 /unionmultidisplay put
+dup 94 /logicalanddisplay put
+dup 95 /logicalordisplay put
+dup 96 /coproducttext put
+dup 97 /coproductdisplay put
+dup 98 /hatwide put
+dup 99 /hatwider put
+dup 100 /hatwidest put
+dup 101 /tildewide put
+dup 102 /tildewider put
+dup 103 /tildewidest put
+dup 104 /bracketleftBig put
+dup 105 /bracketrightBig put
+dup 106 /floorleftBig put
+dup 107 /floorrightBig put
+dup 108 /ceilingleftBig put
+dup 109 /ceilingrightBig put
+dup 110 /braceleftBig put
+dup 111 /bracerightBig put
+dup 112 /radicalbig put
+dup 113 /radicalBig put
+dup 114 /radicalbigg put
+dup 115 /radicalBigg put
+dup 116 /radicalbt put
+dup 117 /radicalvertex put
+dup 118 /radicaltp put
+dup 119 /arrowvertexdbl put
+dup 120 /arrowtp put
+dup 121 /arrowbt put
+dup 122 /bracehtipdownleft put
+dup 123 /bracehtipdownright put
+dup 124 /bracehtipupleft put
+dup 125 /bracehtipupright put
+dup 126 /arrowdbltp put
+dup 127 /arrowdblbt put
+dup 128 /parenleftBigg put
+dup 160 /space put
+readonly def
+/FontBBox{-24 -2960 1454 772}readonly def
+/UniqueID 5000774 def
+currentdict end
+currentfile eexec
+
+80347982AB3942D930E069A70D0D48311D7190FA2D133A583138F76695558E7AE9348D37CAC6
+651806D08527C1BB4A062A4835AC37784CC39AD8841404E438B4D52D3901E47A1DE4F7924E0F
+B3DAF442499175BAB1226EDF692A4956739F8828E80592F450C5D5C22AC88BCFBE9748F61D18
+243A16F4A4467F084E8E2BE46EF47FC51C3A8199E3CDA62FF9C4FB73956DAB8B6683D2156377
+808CB35026073E80523F59A30D195FCF9B9FCE4FFAFC6D5649664203AB24ACB938D58D246707
+FFE7D62F04BEC4B70C21EF75BEB2B812622B3C74E969D72D3CD11BD7106294A99CAF0B1629BC
+7D4DE6B96CA82930831D64575F23F4AD06A0E45E315B1D392411BE8D6D73C998789FF258A07A
+3C8C2057325784514C845500BFD1A971310CFC11D41C1A167DBD5FF012C60ADD4E87325F6E52
+99032A839DE65FB1473A166AAE1876A4414A434F22C1D241591FB36F857DF6FA930608750FFC
+0C54F44994662B1F00F1400BF752EA8D83FFC4CB77A290BC2D99981AE59A191748BA5C7BA1A9
+D2583FD21398452B6FF5D83A059F7EADCD2EF744E9DD22BDF9C79D049BF06835E878C32B7765
+C69BDD8EF4DEB4EA7CFFF4CF9354A4DDFFA689DE961D16772491C7AFBD7FFFDE42400764C68E
+954EE5C455A5687959829BC3B319B2147DEAAB3628662C8030C5E02FEA09609ABE4EAA12E217
+BC3AF673F1BC36A7039EB13FCACB4218FE0FC5A3F9452D4EDF46CC91DB67B624D4F2D37502FB
+9F11AF4DA18CA40B61097F95D44329375467ED13C5CB585EC53F62B83EF9502CC755AF44BF32
+B87B8AE9F3F2F8DBF72DAB90ACAFBACD280DB6AAFFAEFDFF6D5EFF26669BAC56280A950560E3
+D01714BA38659B0E4E28BF8CDC1F15FF7E3EA9D95A6AFBBE3D8E6905AA6D531D6B6DCAB89E20
+36CC492C65F76DDCC3CFCFF33FDE3D9FFD10F7A90530FD5D04F12CECE01D9E3B7784FCB4AC99
+71D125317E4D6DAF1ED113C795C56C6F57465A10859341F41089169420DFEBAEA770C4FDE4CC
+11ACBED014A3E2EB6CED1694EF30BFEC4F805C6423283D2444975F5F62AC48B88111EE5C79A7
+6A4E64AB2F9488DBE6E21DC00BCA4304C3DBD06FA60DB4DD88E26870B08BD880B67D6ACE131B
+559CBF999E98F3196A47320BC412DEB6C6CA990485CD34B69ACFC6F2A2B534D17FC5C68F1416
+7B3CDD7BB801D960C04043511A268040ABEACC65A28634EDE6B4E209FA3AA93A632CFE1D5A57
+665B3085F9E2CB8AC141E2220AE1799768777D096B6795B177820DD3AFF63FFF0A80341F473E
+1455868EBD9D97AC9DCB3BE4B7AB4E0F3D5411E0A90C9997741FCFFC8C3DA19BCAD2BFF0CF17
+2814D4864D4C5D456FB5121F0431754907A704D2BF711CE4F2456FAE5F0E602AA29334DCCEB9
+02CF1709B53F918BA5F066948694F2CE9F150439F0872E3E1BC2CBDBA9E05D99AA6C0F6ADBF0
+097EC658F2803D63D020FB3DDF1F3ED08235FBA9C110EEEC014D81ED6608F58889A40E3C3A7F
+93BB13FE3D88795BCD841498C6422CDB307C376457776A8249502626CA0E1A3E48B8A45E77EC
+0551347D0A5D51EC0F39A8C2BB330F4B76F3B4D3883606472F29041C1B7BF2CD8620F4E9A5A4
+EAE0B60091CB21E30470CB0219C96B8E66AF03B6744E1DB4FF453E38BF1BCDF3F0DBCF5EBE04
+7B84AB96CF851AB13C8942EEA52AF99324C6E5088F8DE6C30B385E624F4534AB603A3127D708
+DF8879B3D15869B777300E3B1B024F79ECE64A860DFF0EC8D0CC8D28A79A339F99AAFE9FD775
+98A37A01A54994E92AE0D20050CB9DCAE953B6D2B3D6FE9D26FDB3CEC0A6F9060E356503E3DC
+D1984772CDFDDD8C020349BD04380BA9508546B281F116F67372B0C73798C5EC98FDB9346F03
+9B663ED52D97E678F9D1C177C35A93833BDDE68C0BE730B565B34903448914418AE29780F437
+EFE69F259FCC78F9C5705EC781FD699DAC1831CBEA3ABFB9D0189B8A45E79A539CE16A34FCCF
+16B5DF776D5B2AFE24DB54949A23792C1A0BF0E741477928ADD22F2B5566FCB82BBC0CA9BBD5
+BC03D6E8901D01652C4782A3803F8042EECBADC97142DC63ACF1A92BB10400116A6D2320447C
+07BAAF4D8B69ED93E7E1BAEF4BEF80544B94463073D584490849EE9DC9B726D60E2A80EC6D8A
+9B28984277FEE75C0231F0E5A6FF9D3193243A15AEC9C04E98401881EF0C94942F68CE4A0121
+EF50DDD3950015F28E40FE2FAC789EA0982982EBE270DA274CE9A0C88415A68E610807633374
+6D099B85E94F3B7E8F59379A99CA7980548B3A8EA7ED739A988971E778C0FFFB4A843DF0D98A
+56F326C650A94DAA94228083216F89D47AB514C6CE1CFD7B7CB9CDD2BBA61E41B414197843AD
+1FECFA306B3E1E4B866F8F98D8DB93A63E7C6C7149EE3CDFE0E0FE0D0CE35A7568B90CD2A30A
+8D53C95B678F0A739F27856BFA8E4A7D50B942ACE78189E476379FC3A86478C34048DD44E8AF
+60D1099886E485A0BF74638BB3FC929106BDB7C4EAC624F75CF273B38A2909311FD6B6A98F4C
+B426A4610DB5A316F1AB1332E840DDA030047CC203CB1030CC9A3B7550CBF46163ADD6C62AD8
+DC9CC792DB6C8D45C8A71E60C0170F0DBBA5D60EC88B7B1047015B37A2769F96C8738C215D6D
+5BCFCC9EB5884E01C00191067BE0194B994034BADA4BF8CDDBAE88BF9FB7F09420CC50D248F2
+9459574B8857E3A8C22E3113B22D282957AE02BF5DA8D363E012CDBF915BA5215832449F261F
+7C4D4FDAB7C17C2758CBFD5300F3137CD72FB2C967D473B2683628BE64938788E646D945F11E
+CD20FA16A9CDE65DD08D2C59B2C5D13D1148BF9F6F78F0243B455BC43D8893CF1A756B60FF5B
+5528354C8BF1CE8F81C142E762BB6AD54AF2BCBEFB67B75BB822C3B53A92F45AD494C62A0480
+22E4AF0A3158857BAD671F0F49B51301151D3EBC1C9BA6DDAA408B4F923DA1DF1CDBC451393A
+FD47B4201ACE732B74CD0079C67A8E29B02175044EA6A643890CD60C45BBFE15963AF3818077
+EE34EF93F357E77B4748F3195745EC632B359510A528399C8749882FBDBEAB684FBE22307353
+3E428C28D7C6A20C0C1F805F350230E549B2F8E8A8E9EF89EFC7C71BCDE2934CFCB8A04A17FF
+BB92732DC202F5B3FFEA1EFD96B4707D1D51F6579F86BD348AD46E233869B725EB4CC76191A7
+A82264BA610C293C3D37714C42166EA68EB5205FFD4DAF30AD23AB140D01F66F56A320ACDA94
+339A653255FF06365D97BF5AEAF769034D36B9DA6044579779DAAAB309204172F69446413CD7
+912A19898C23487AC3B994BEA258203F894D89BFA826D744FD8B31EB2C75CEDFDAE2E899FFD0
+50D36AB3A63597D19CBC208847DF2AFCB05C29477FD20244511884AC9CECEAEE6C6BD8554A55
+0E7186524F967839E05EEEA9A4065C39C864A5D697B7B88FE47F50844FCA93A63787426D186F
+3CFFE14BA7E4607B65CD8CD03B57341FE369A3FD370303D0338B26506BF0BEFDA0C6FF84BB2D
+0AA65BAC14B189003388F0FBEFA62C9588D1454133F1CDE8CDEC574FFF094D7F4E3D5AC225E0
+B9B00A61B8D667171BB19FFB38121239073334448626D20AC4FDB1BBF6D314D5E034A4EB0EB9
+C26B1604683B18D7E328F6E1B967146EFEF1A9A4172ECF0238BA7DF28E42D01ABCEFD3BD0B06
+DD1FD4CBFD4FA91F06E437FBF0497810E816E7E1482F9F9B42F0B0BD8225C87C6F366D3BA0A7
+80CA78EF6915F537DFABFB7105F2D4E26E34CED31B3E7340404751202BAC85A39D9FA283417B
+682D37CECBFC4C4E20B4D494332003B1FB913942040340B03FC0721722C39CA4623BA384A3FB
+003441641A8C6F39FA9C07C830693D15200DB67722029A76E28DE8EFEC1B1D6C043A9BD4D7FA
+D0731A087A4A2AC3B78B07A464BC374A67A220F0D08A9DE5411C698A2DFEB1889067CBC83BB5
+5EECD734B253D7134E3A0D7C5625E0C2205F5B86B67B237DAD8D47D297AFC42598842EE341DA
+B855828CA1AD4BF332657CE9D18832328B9FB81C9B4843FDE4D63C2C3B06BFB57032C30BE07A
+BED913D7CDB8C4FB359543D39705A5BF55F8DF6268CB2528805172581204111D71C00DA14275
+776D95E0FC612687A33EAD514C267AA0F90BA9A2962D10FF3FC8BA694372266350E8E7E58387
+97D6CEF8561F116CAB2A9DE2CAE98C5AF5AE04667E763F7BBA244F6CFB71DDCD18F69461BAEA
+70EBF2B3A8E2AF95DE0A573CB3470BA4A8981B269E12D3F9E4D2B9A272E2E7BA968283455A85
+D9C6B4B0A3EF125ADEC61BD8EAF92E008FD91E88B578D48415BE071276A1C3545A70A1B3879B
+A4554D7E63110EF362972E5CD986D19EEEC5585333D99F72A91449BA61A14ADC3A08577FCE70
+6C702333DA1ADF26826C4F4AB734014F7B78735F8851D0B08660DD63D8EAD834D2C49900EBCD
+0E16EE67F6D499337046A47624ECEB8F285944C477F253CD65E29B581A9B86886385DF1B68F4
+62520D04DBB5DA7389A1EC090EC908A2D90BD0E19999AD9607E3A90374DDAD1CEEC4DAC6EE43
+A80B097AD9069C46BD657B6D0EF9ECBB7B0BBEEB66C344620E661EFDDAC45FD823F55B5EFC3E
+531E4D8BA3D4ACAA00143437E8E12C30940A77A00F010CCB899AC657F07257F7356564D772BD
+698F08BA5C85406326FF01541F232AF035D3FEE1EEF01C94BC41B6EBBE5921A8D11FC57B8F01
+2304EEB08A51BBC7767BD5D7B17BF636CF36EDBC9B5C731325ACE70F58A39003600A9A8096D1
+3A5E6AB6A7EDBA92F7CE3E2945D3FDF4A2DBE54F1FB71CEF37389DDBE546F1812F1677BC258E
+27FA55175E3E8AE1B4B05B58BE4B3CB9A2D3EF7D0946BA3639F598EA5C41129BFCA77F6F875B
+B9CECC1662D4A621345A2C8F73930043469A418A2C040AD773B6D56C0CA0E77425D2AE23614B
+29845A00DE99C321C29DD12B2B3136A07690F9A1C282AEB900A3F0CCDFE7DD325F4873DA0FB8
+3C3FFDAA40F1B238DF8682031A5ED40EBF4403139AAC8EBB115C072B61BE34CCFB94881CCF55
+4302F6538F8888A7EC630C5967835168E70E9A87DCB6398A1D34042A91103E2E25320A1AB0D0
+70008D61FADC148F347E1E87B6609B9878F187BA8EBB4F3EC451023BDE08A9BB411FD9C7B4CA
+39001D15845780F5688D49857B8B34590EEBD0AFC283411B936CBA9B3E962F6F6FAE49709899
+DB74F9721D586E6A23218262481BCF488B4823AF2AF0E7331F8314EA87E58DD53A2FE0118B4F
+28FF5929F4635CCD542245117D87E421436904E32C2472A93B58091D7372A128C3B04D30E689
+950CEDD6351598E5F794000EF381B29CB2182FB819BE5264BCBB5943EAF4B8B9B68FD5394300
+6A7FB068B1FB6A9A9CF5EE9F5AE5E3BB878EA5DD0F1629BE7EB4E4710F0E5E60398911FA8D13
+300086327DAE5264A588C9D295450C11F4895F4504A878540A3F1A6DF09791A98BF1B5417725
+F332F83920B4DE898E9F2C07FF48FA34C584A0205DF9062A9833CC8E8C3DBC50E2DE66CCC67E
+6AC0A9EF9BB3AA0224EC6FC292E7D6BF889E43535C51F56B7A4CFA52503CA10942D7B91AC34B
+E854A38D9E14174C9D7EBCE32BEAB91C0597DB46EB00DA8D68BEB0D090B9B72055F53253A8AC
+64FD1C4D47EC8EB8A43E9A02CEDA9E86CC9D84D59997F1195A1E228303DB4F7B97AB1DBCE002
+0E1D034EB700AD969FA2FA1381DAFEF50A53CA061380AC2D1B7987CBB5DA9705371BA16BE247
+AF74DDC22EC95F0C4D051CA108359F73EAF8BD9D22E951965B6BF487A7F2914F095575591F9C
+2FDA75C88B443237CD280D2B71C6D0E129FD4259422EA339BEB5503DD63F85AE4CD37B14410C
+A50DFD5AB93E8406D59628CB6FD45DFB43E67F55C657EDC6BF991FB7CE51A79B2EB22B8963A3
+3F653655913048325DC02C8931B75E90D1536C210373C35B5A88AB6D39CB138CC5459DF3BB1D
+73C8DBA90B6A3FF057DBDF509B8E58FD0D9C6DD90B824062E8E6F9F3292B0821048D591FAE83
+866D46C4CC284B57CB74BE4923A7E3A701FFD0CC3E70EC16B4E3A594C7EA0E230964E3BC1F2C
+AC6E2B88563ADEC039827D62A66B2885A1B9D4A5EEAA5F8C817806EE1679B9AAEBAFD6AAF82A
+753CDDACE98313587FD4A73C5F39FB43A03F9259F5FC7CDB4D9A7485F18A99A644DADAA18913
+DFE230606A612FC7039A0BCD636A4ACDFA5348A5FEDD06DB53FF807C6143798ABC7D6CE8CD7C
+97437734BCB251A3EAB27E3AD0213D93229AE9442062D63136CAEF2D0992CD8666EF0B28165A
+69B5A54A114B46348C801C67892D8449164D82A3475EDF45F0B9C3473FCF02671B02BA27120E
+931F1044C620960755D9968B6C534920E2518C33BB0771B93F1A3DCD4173895DE50A0738D2ED
+4B6EEDBD8A2A5608E6118827BC9218D2F27588DDED4D4FB84B657F6DFE512B1AD3698FCBF662
+1FB55735BF7123365987E087F7F66F0508B9A1F409912A9D578C9835005F49EA23556D15EB91
+E1C3D363872A815BF46905F98E2FF3F2956D3A9680A1414AC5C5D2B60913A48230E4E645F249
+04977F108C4782EA721909484785FDE4E5506CF1A6D6C888BCFE3559CFF0D969E559D3349765
+6D6F5E31F0EC0553F11C5AC177617B84ED497491E6858ECD8DF826029239BC2BA35C243A56F7
+233EB71AB68FDFEC0DFEC58198FECE9818B257C97279D7226C7BDFA9C9CF1B0DB516E58D6E13
+26DE5CA2574AE16B72DC3CB5790D491D358D444979C1FEF7DC3BCFD5FD60D781BEBD4B6F34E0
+9430E2685EC1351A48FF1D8AAE34EAE33F8EE8B0FB99CC4C1CBE73A7534A964985FA4A8211A4
+E0F2B14418D28419DC5FEB3EA64ED3B7BA19CC3BFC6064136F74FE0935B346E62C3B705C8F44
+CB62166DD9BE118A804234A4ED039147F5039FA9C9E7099CBED5EE5F1F35C452FCDEE040B385
+438FA027C72A3E9770D75DDA47FFAF2A31B6EA9C19ECE24C0E3F270E14015EB7806B7091D825
+6D6AA9617C06BBDE284F88C87E0363C994E1947A8F61A2978B2243DB550E0D9B23069FBC8AAF
+34C1D8E3603D8E5CD1EEB90A84CDC76AA57D8A1F41BF014E5057EDDFB0F94E97CF3BE7C2E184
+DC2B042A6C6A3C7B04962FC6B9A345519321B68FC37C5C208CCD1BAB4BEE30E67A65B7EAFED6
+F3E45EA0B18840FE9E9E644A4F590573889B8044CB3CBA33F5109B010157AB152A0E75FF1371
+9D3874823F151E5D10D771683B26E8688752E6085921DE52B4AD4997297834B6521A6A4AB145
+B7741595DD1E4E65BE01E1E3376A2DEDF3E549637E1F39E7F3920DE885097964CADA22F3F0FE
+4B5EF75A2ECAEFD8E2E1BD0459803F88BDDD64A481224B78B24EC04B04FD8FBAAC444EE0CC32
+A0269FFFB2EE23AC4D7C8B2AC867445F21DD7C10D102BE10DAA2DE09BA1220DFFB0E9DB7650F
+513F8061ACB90E99BDA8D5D60178CB5B93DEF50A531638FB006AC1D24474F7551FCAEC5658C7
+C34EF029911F9254D60131A66CA84210464E7DC2C8C92A3EA5E38382AD2E8BA82F69FD8C176A
+A13312EA491CCA82E1617703D8DE5F5E8D42BDF02CE82CFD161858DB1CBDAEEAFF55290AE576
+7467E27DB575C4696DD2C43ACF7E9C04D029DBD92697471376F5A2332D903A255C43F932EC9A
+82F397E9AB07A5B067C5F3F8B3B872B6A64C5A46A21EB2429F66541052FAA5ACC66A48CB4E60
+F13F05ACA8F91DF03E0896FDF9D587082CEE991F24A32ADF2457A2A1B81718875AC906DA044D
+CA8E22C66B706626308AFDF1C720738DDD8AA97D424C581AE2364BA63BA3CCEA4797EE2D829B
+BEEB24688A057E6CE6E763DB025EC57BBF21BA1E0594D39E4A9F84D8942B1BA42F971FDCFCCA
+8D9E7AD8C14FD56DBE960CD018C653FAD91CB82DB9D18306A51129CB6DFD28FB1DE7752E239A
+7EA8E14351B21ECFD04F02E9D0C8E401F8E7984FBA9A859912355248A027D1A41E78F79C9D0E
+A35D2EB8F67392F91F061E8860B8B2C56D424C8DC0464128DF1F7908AFDE457F58F3936FB7EC
+6CAFA33E554BB04A8E8349406AFEEE75B9BC301D85B577390168FE969EB89B273A48ECB271EA
+9385BB6C66B9FDDF0F63738EC74086359D917D8035DAD870D81FD8475F85FA03B43392802B0C
+499FC23E1CB1DAD8DA9FE3DBE20447C2CC55CC928ED5F55FA5276CA200728900D02FCDF5741C
+7BBEC226FAC879318FBC7368787C761599C1992D0B3CEA1601AA23D9DF1BDDDBA3D289AA1A65
+45020967D8086A2EF6241A1102523C40DF5C4A6BC009D41B4AEF4FC44BC0E4D4AF44F5186C20
+45732FF4F0B42946069259030CCFDBA15D74B8A4A4205FA03CFB27FF73CB11FA18AC1AA40FE6
+45C774E1DE506EE3E1BD558104F20EE06B144FE808D393715EF016BD4C9AAC827DA83C099300
+B66357DD205570ACE2C8CCC7BEE741E2D9EE2B4E30E631A7BB3710941285434BBFAB8458282A
+7E2E7895A2FD07A3E41B4A8B5B6A95A078CB4407F48405D0565EE77D9D73ABEDDC906B9089F1
+FD130F7DC9042CC750CA6C5F912CFECCAFC848FD93F26B530ECFF1129F62A78CB9F0031DDAC4
+664EE0C556FF3ACA2E3D33B030AF56E7973EED267E0A8D60171DC648C0B836C86CB2FC0885AB
+2521253B22586F283B3C653BB3240D872A790A2F8DF93E2136524059335A003F4538EC6594A0
+8FD05C3D9C4A4EE05C9865FCDC82DDA58817AE98EC438690D5918B4F8D05AC6DA49E9D2F537F
+41B374AEF2F719812D63DB2489C30CCCC2EE36616F15E7B18E4335C4AD05F5F5EA4763DF7A34
+D3F457CEDEE65416967A008229DB777D512AC3A24857BFEC811C93C87E83772A0C803F2D031E
+D8B2391828952D4E689B38FD92639469815ED5C1168BC9E98014FC6E2E4018D556EEA620ED05
+780D5CD225039EFEC55BBAEFD42953DBAAFC669084DB913E7E9EA345E9098F023790F5E81B36
+36F3B7AC73560C25B850F5189668D562B16B748B12E61E0361F68E07206033D3ABFFDFC8BC86
+C7404B589D49C0CC25945925BD8F8ABE46546B981DB956A93E1E96F5868F0FD6603D8A119B5B
+3766672481E7BC54D2A640C28CE4934D39C3D7F9D6376BAE6F4D712457573D7378C36C01A568
+D8DE8CA3EF801FBC960E091963AE21422FADCF1EA35AA3ED57BE34868E56D0B893F98DA41361
+4D08AE6F053A32E14176493A4DAD192440AAA7D96D731A93288A5B5460D310A173BF9793B7D4
+61AA0CDB3E81AF0F1274E2BD71509004BE9C1B0CB64916A9F7222C6A3A2F96307EEF886F627B
+31F8674DC27065AD1E94AF77B5F0ABD0E5F246B0596149183EBC6509AB156F83B95F45EE9AEA
+BECDFA82AEF6036FE06DD18FDB21E6B4D70BA8B24BF04920B240294DF74859E2B34904725EE1
+591262340FC6BE02C3228D7824CBD20DA72B1C78FC6E490B20136313F3ACC29AF7BCF1C5096B
+1907160B0CA2C5744A1BE927FE23F4836101EE791738EFC0AFDCAB00358D70545C8CE899B12E
+FD00691CF7C261F5B2C45ED79CFE0730CD4412DD7844D5959FC8A249584375DEF1715A9EC182
+2E04B80F94E2D551950114683AE08C8B160143D27298076E12E6EBA5ECEC93936EB86FF20F70
+A16074B07A3BC3A24F9570BFB5C18822CF4807583E673ACA60D949BFB09CC5BBFFDBB8FF60D6
+AD930E439BA8952EB49AB2AD05B02F1A6653C344432A4820F3976F37FAC741D2A27F0BC6B30D
+3B8461579171F2581F88BAE17256D349990D6FA2AE099FE66D478D13FFDC3E3C359AAA0949C9
+3D2F55DF7CADD2BF133C735B1E5D808A127504FD3E03F3B2FCA2F49A73351A5393FA6C7FF2F4
+DDB48E00124CD7409AE82C0F90E24F98B7DDDFFB24CF335E07615A2D706E36E433D2D4450545
+6C17123DAF7C16CA2C75B263008F0211C71FA8652B099224607C46B8D2BDB195A6F21B4724F3
+70BD67401750F086D1F2CA4D1D811623969F199BC4BD025C12A4A79F1D9BF0D01051D5121BCD
+A370CF0E94771B7A7A22D9752374DD2743F2E000534695349B3DA6BA15022B9B6EA1651ECFAE
+2236D1380984FFFACA97FD45033A7DC3FC4C413D46BA5FE1473122190ADAC68462586024559F
+6DAA7A684C1E41524EF21306CB7262E8BFC23F221E6A865172D9FB04DEBA63F7AC988A1C23A2
+72A70A75C9BC7783B028760359049625113E895A8D6282FE868E27F88E92002D82B6D82EC758
+DAEF8807EED1D03D5264C7E59213C84FBFCCA99483D1A467ACAEF12045E27BB094E4B0879428
+B3CCC1932BAB4F7D94460CD736A69BB2B985BBF0FF6A3B330C5911BAB107D4163A83A426AE2A
+8ACC75BE3701293653E27707BAD40C37921ADF3AF21589ED419E416BCA7EA1A9119F16102098
+C5471543968FEC3193AB6737078644B531F70B52DFD05B92C1CC4D5C37690D32CCCE5E0DA13B
+651989CDF99F7F110BC94F0E3B8C4B9519354B2E34FB4693ADDB869AC9EFF2F46982387F3BED
+111F82280926671FCF2C6B816B200146EB04F3BEBF63A484270122AF0046D985F71A63243743
+D3B8E7912E8BF769DBE65DA046C0BCBC9E5F4AC2B86126C755ACFDFFC1789B2A212530B46B88
+A38404F127204E23A01709296D4FFBD9B2E664D1AEC1E9CA09DF111C08521797662832439C8A
+B4FE9949E21564582CF6608D45C29B6CB7FC4E70559C5024609BD62E566B4F39C1F88FAEC09B
+558477C16A5F226E6AAD7A322E4B49562675EA07F6A02605BDEAB892CC94DF857E46519D1D4C
+73573491E18C8E800D239AE08D49D5A1D0122DF50115F32680BC5860E4BEA2B14DAB9CCF15F9
+C3779310EB296D174CFD6CA971D8183CF6C3B69A562EF8FF96A74EFAE84ABB37DAF5AAB468A8
+E2DFEDB1DDC17DB85F1C50467A5C3856C43130243060A0F961CB6D81A34E2428762EDE19EBE5
+DC5178D334C2686AF7FA88E0154D0DBDE6BF1DB30D1BC2A200FA677508774B2B8B4FC0E40BDD
+FE9ADA943F64713955FBBCFEAB86ED7013DE435A0E4136E0D3999BCF350D2D2AEB9ED71096D5
+2663EFD809EBFEB0B2A605B9AF40D5D438E2A2DDC23DA63A127FC0F52456379F9B5F26ADDB65
+2DACD4C3351529D8119D1AF722141DF0D768A4AF4EAE17C8B2197CD305ABAE4FE35D0F0BF386
+6F95606491CFA6B283F5E1AF08BAEDCFF8EAEDB3929CA49F5BF68E26051AF7643B282212C9C6
+DB78F21F71E8F645FE9FB3353DA17DA06313B67DEC4095C95C260242CF9BD00131B738AD9BD0
+B091274F7BF1F36510CB8A8AB0BF76CC6AF8CCEA1529FD82D7C118AA70F40F8092D312132AA9
+AC61CADE4AF18E1C999ABFF8AE15290BCA544A0026D296C372C04565947EF9170051E3967F26
+74FBAD5F36959FE281504397548DC28DADFBF8AB5C3E6AF69C53B942F321335CD5E84CA0E11E
+EE3D38550904D52D340AB61ED5EDAE7CAF21857AE55E9D1ECA2FA7DEC6E7D8FCE4FE34D3A600
+47235CE182460EFCB285CC246512A7CCF00481068E0A6910D36EEA3F2348F031A442BE0A78E5
+637E4FC4CA531C3E724C29B06D61FA5635C517C510D444DCC450EEF428487ED17443A19516B1
+15D7DD25C11C6143F510714F3F8754CB79E6BA78699FF13CF7DB1620933B96D364701D9B296D
+A702154D7433EED50834DD70739AA5BF0AD1BB60A47F0CD4C65407E7B5D154174EA2ECC1855D
+5A451F6E00930E6770958471ED4E1F86CCC297D333201E911B7ABABB60ECE5502CFEDADBEEB1
+BF187E65C4A99D236B65942C288FCEFB904BFE7091DDC667C661A0167B268DE3A42F5E558EB8
+36D1A49838F695E442A4037181CEEA10AB51C89BD51F711648469F8E70900A4073CCC6166AAC
+EBA0D5F8D34B129D7EB970AA4F9004B4104D5A5F041E369B16668635CEBB5AA27108B8592401
+8EA0CA05B862B28D44E6A3B1CDB7309D5B571A468CC0818F8210A7EBECC6B2E6AC97C077A9EE
+EB69616CCB8A4AFC98BEC0B558DD18F2808B520F59D8C6E9788E85A8F1AA5E4E8DC378FD746D
+613E20131221C3868EE10BE0609739A6A6920A9924D0D89C42D3909A1AFB118A14C9BD6D81C3
+A6232B10ACF861F407CB7A86B15E697ECAC04FA2AABF895187BA396C1382EA00EA0B0B85E338
+D82D61F4AF8B84D5AD8759D1744808FA112763B35FDA1BDA3C04DABEEB017837BD66D4378AD2
+2D71A5D38FA13136209CEE5344F6E14A12782E407B43C7D70D7FCC2F0B0A1314BE6FB70F3C9C
+4AF9CCE96E83F450ABA31EB90285DD6DC207A07CEA959BEB979642CEAFB14B52C0E49617E1E9
+30D884C860CBCDC691FE50D975B8263E9DC7704112B775EA0C4EB991B47853991C3F59ADBC7B
+671FDB432877EF183CE5A78ED259B8BCE792F0984DC179309734973F3D672FCE6F52FA3DE58E
+7D4D054517FBB70337B00AF36A119748680FF6A53C16C624CA11D757388E7C37F2186D335F34
+1FD289673A71FB7CD39670AF901F5B0C37350595A0836E67EF9064ED625B7EFD8C7EAE865848
+E19E0C2DB2EFF734948DAB18CC81E495F09EF1A17C4DD7C6BF95AEF0289B2C69E6773462EB50
+6B39457909253626F2ED229DAB86047C729386ECB845703BD84C8B97969FB7671A7E31C647C5
+80B3FB7251C1251891AC34B482E6DD7C11DFF66F0FEE4488BD4961374194731BF81947A3EEE8
+AB8C013ED3D6584CA2713DBDE3FC8B386D52B28441B6DC17E7831DB23051CD59D21C7F36F8A4
+873FF75F1E76E2FC9F20819A6267E594BEA4948AEB07C0561218D2A18E677EC323455EFDE5E0
+0F0A11459FCD3788DAE330A3E7C07AAC5FDEECD0730E7124716507BBF402595236DAB2ADFB13
+8299B80C2929B2A6F516F61CAFB8EB63012CCFA240040C1C3F7E9F1AC2D82AA3A669E1867B49
+D5C7DC7247A55DD3E53CDDC6D9582BFA62D255D019CE37E08286E65CD57AA9C2F4CF84DE2B1C
+C6F65193A033D0C50477D424BAD4229786D89B0B9CDB8BECD0E36867C14EB1E4331F8CDC7C34
+2CC8F538FF6710D796B9655CB47D83A547547340F26426744D8F6209D177879849BD55572617
+C36EEAF43D8C8DF78B040283AAAB44438E37EC497209D63F38F8FDD82DA65EB3C8BDC3D4FAF4
+2BA67EDBF845911E829244052C2A5894B08B328EFBEAA6C978140044AC09CA90B4B7D973D0F8
+775EE424F599FB1980918F856891C260AE50DF3C081AF3493B5343888BFE8BF1EFBE6C6FE97A
+FD03B28C9399FB21B90B9F257D02CE7B362C33E8CEED0A916CDCD385C480769C4BE8B0384184
+02792C2B50AD79DA8A743554079C75B72933796CA0BEF5591B5F8226A00D9FFDD8439FE0C9E4
+AA22D034E3A345E7E71950D151F3A92D69BF0174BDBDA1D2BF4D2F37A5EF2381418B80EAF7D3
+9CED1524B28051B74425EE8923C1D7049A557CB8A3214D2E56F9BA262A4CAC9C750C2176E70B
+FC929AB6B049262FBB984F4E97D602C3EB2A43A7EB1D0E82E69F8D04755712083E2124A90F2E
+0FA66BEBE58C756A965BC48E98F9D7E08D9D69340913DEAFDA977F910F3939537CFDAE2B619A
+8C73B2B97806DE736B6E3843D59F329D79133779795BA7133D66D39E7589BFDA6D3F2CEE30FF
+EA9381B8127C39A6519B1942476CFEC61E38CCB74C411B5A5A8D2096278AC5A5EE91A9C1E6CE
+23205823D537A3C12D88F69F6BD73528DF71359460D5CBE2AE49891DEE90C67799684E9FB603
+C17AEFE75ACDCCE8AA427596594F61DC6EFD65620F50A4C3223E92AA8F00102F044674360609
+E6841E701AA3031BEA950EB1B284A05BBE623D59A704D5F5744071B069D41F0253F9A0DD4567
+355DA8FBCD8233111AB2DBF86A3A0AF6C6A0B3E244B916301EB35FE0CE7D3F7832D8A40C2596
+2A57CCEC710DD262DA454B7EF9974723CB34E8E8FCAC0EAA6842E38B81C8C08C79B656ACA3B8
+FD09780274AE6060AA2FA47E34D3E3EAC1AA4DBEDC68845D524E41DF44E375128B838DF92AFD
+0C4F2FAD0DB17B58A2DDFEFEA3A5AC364E05DA44CCEAF60D802CFB7E2E8C948D229B53B2D39E
+3EA2670B6CFAEE513B639DE08D58D1178C317915C0EF0ECC006CDBBCBA5AE085564D5C6AD5FD
+6F707A4C1DC08DAA8B06BB169797FB81C229681E609D0F9CA6F7C7157D50BB46F54643E1AB10
+3A927F4BA889B0F211197D1778BE459F598EBA61B55F351C6C9FCDB85673833FB323B6602A3C
+2F04451DD408D5CB9D54C3C92D429A3FB1BC793B73AADCFE9F48397B2E07B6593DF26F46E964
+DF0545B89800E6C462B502C17520871513A8C581181EFCAD179E30E79C832FF52EE7496E6010
+446A8A6C29EC2243ADDE81205D7A45670621D5BF63392975DAB10E01258F1D66AFFC731D001D
+E415257C61698CA8B854CE4998D1383468DABAA619F7B37DD1CAD246FF12308CF78606957419
+DC6F1D539E96D452B624257BFDCCC2D78257C12764986DB6AC0EB8A632BFC76711E1FA30CDFC
+5ACC188189674112127D8BC4AE0959CED826CA2A9D3C6BE736F9E5FC4A95B97AEA8A0C55DC86
+E138955FF10239308CC61BE2A14927D6079A5E10C757B60648084B3DC418887895D14A1C7E22
+B63A71342B9A72C12C45E932D863D3E8CD8F60E39E28BDCF61542A0C2B417852B99EE3180B74
+37DE70ACE5A809C0287417A37DA19670B411ADB2E837181D75667239DB2E6AAB2C56E6FBF45D
+72E956003DBBCEA38C633C72C6B9D4336953CECED0FC43725291DF357C3D53EFF9D875B215F4
+FD75A183896254A67F519498C1F6DB8A0C3A7A3C9EE7ADBC64B157FF5EFFDCFC949D5D332687
+2976D98BCDFCDEF97E206613F5E193E71F7F08F4F9F489E930204C9E474C698A18373AF48868
+CD2FED6E0A886CAA4DB8BD8730D601D78E369576EFB485B14BCAF41FAD1372E04F207FC06A2C
+0B498C11B6C19C75959DEEA960177F1C9D50E39A0EDCE9CD2F5B4AF04703EA6739302B1344C3
+00CA7FEE41B77768C1C16A5DA38CD240C1ED2403CD0D1A78E8420AD448711B4B49A1EEBE2A46
+04C15FD67961F6CB28186D41228AE20287A18903A5366C9A42B9BEEC723E6BCBE788172B8305
+66669782BC3864FFA2E19AA5C5348317611C123D7456036923806F2F9411D7A1005AB2FF242B
+3F1A6A064F71AF10CA2ED88A4DD1828F93DD186DC544796D132C8FDDF8D9CD03A37349A6F6F7
+DEC6D929E91E247C182F4F572B60323D4A52426669B4DEB335CCC034363072F49CBA9817EC7E
+B195E271679CF03F95475D0414403C7FE22A63289CE09D3238B64FD22BEAFCC3396C3EA3E6E3
+AA7339D6B0BE8BCEEF7DE6D5FAFBF96C62DC55438BD45A6AC4C587E5878EBAF6A6284B244D86
+96025A61C7DFAE6F6C2A5ACCD5A11BB7AE0C1384134F00DDC6679E1E472E331B6AC2A8312863
+F92AD9BC45B3CC12B1A7290E30CC9970EC12EEAC9915D5C3FD7C995AD57756F9D2F256F4C6C8
+FCD2A83EB0F92D46C8D680E438215173F05387D2694C772E718E1327F3ABAB95143C64C93B9E
+9F0AA92AD57E2A138BA22B0A3EB776BBA9ED5BEF57C714E7C17096E80046DE1D7D2B7DE9F494
+F0468091DA15FF36DFF3803A5937B1C8D9ADE4697D8BB9B6EDE81E28B0FC5D7F53750DF6747F
+BD6E8BAC7733081DE5B4E9F1243B94F5D3FF1AFA0B469DF8C0A981E26B685870DC4C585103B0
+A869B0256842F1E9356BC3DB8D6A69867CE154F98DBD0CCAD75E965D2EE76E68F5732E7F3FB0
+01E48EE15236908C4CE3022BDEC61FE1A18562FCD0475E298ABF2F91534E235AA1EEB4E860C5
+5A1818DE4CFAF1BD036AD51E8DE5942857CBD8F872245A6A91848435EDCD0423E1D6C195BF24
+102E53530798FFD02ED7D988A086BE108154CC598C53EFEEEED12809D6B883C0FCDD70DCE9B6
+6E1298FDD4B00EBC68E11BAB2A876D379FB378D3ECF178DA526EBA354668F384FB4748C56568
+92AEEA403E9E674904B5EE6E36A3A690FFA6A2618EA960AB4ECD151369BA6F05FBDE1D104683
+E5F14CF0559CDA91708A75647609304535BFF1FC1C1D8497E9F0EABD18263B34EE2EB97D6819
+272B8E9134F8CAE12F53CC9BA1559CE52B00D7F464D3BCDC8B9C924270B6B77E4870000A2019
+682C15984AA766EB448FFF834EE5C5ABC83C759066834EC1526DFD3CBEDE60D0480ACCF07629
+1F2277C91C9DA25B94E80F6B494869BD324BAF918BDC3FC008819672A50B5F42BB81C5DF23CD
+C3A0B1AF94B984A244BF3DE49812CD96C78614C0C56F2B86EB72ABB428ED7D820FEC817F967D
+BEBCDEAD9C6B77A20B25FF55D49106078B79156880389FE4AF92425FF295F306E96EEF0DFDE2
+D05E098AB10D1E2B8906B20428D8DB67FAFB77B3F24E4BF8835EEF626492C7CF978496A0BE1D
+6056898E99606DCBEC3F90320E6AA342049120A963F5DA6783394A1C6956CCE618C20ED83A83
+7E7E7E0032CF8A4A8652E8BA5765DE7349BE9B81F8A0D75BF408E52B93CBFEDE4EAF1E0A5504
+7FF55251AD91A1B95D64C06DB9A24BA89D3B4007F9D1868708ACCABAB4E68400C61561D38573
+395EB7332C9765E95B36CFCFF62BA0BA444FE5987729E1AED16A10C11040D42A57991D1864BE
+92DAF4E7694E5C8C20A63B948C2AD083438C9604F858B84000797DCBFB97DEDCAE86EB7E5E07
+E7E3A31043AA7854033A3F644A4F7FD443B177ED1EB42F711A5E7312094A5669EEE0036FAA39
+EE6FB9EB44065BBE5130DB601E96AF8B23DD0759D633A7F5CC08089AB85906F4E1523249F685
+DFFBB73C917FED2920C20437BF7F8C0AD585EBB777ACB5443FE9F8922BCA049FA8B0252019AF
+D4EB76A43A59F5A3D98DCF8CEFE0E8AADCBFF93E2E8D88842D7793A4BE3B0C5BA4E4D9217693
+1037181D9E07494675C0A86EBA9E8AB837AF46ED8B3B0EA64585DC8C0A72EB5E6C2614104864
+C1E4821E2E5A13BCBA3E33B19DA87F837D4940687429086AA32715CF0F72DD340A36527F540E
+1873C988C5FEDFE96B2C2C893088DAFDD58B21B21986843A69478A0D517468BB86DB36E84CC0
+996C62942233A5604682C2712EB7F074F97E6C7C8870C3E91B1F5B5160774896715C26DB90AF
+A8004708235B5475575469F7B18C234204E5377D35B15EB146D083C96CDABB658D486F632F5A
+F4CD3DE59A2EBAD44B9B85BE364362433BA8C0C9DEC17108B6A4763997603B6CCEAF1C056E59
+4D28E6A9F01E344403B424B2DFA49C5EA735A61092C1B4ABEAFC6F39A60B6C0AF70D92944B4B
+BFD79F6A4B67B40E6DCD7330F03F7283E8BF2AA0DE68E5639ED2665E6B252636C7726805FE62
+36EA67DF66EE7E46930D5EAFE541338F3621EA64C05A177AEA44FF71852703E66F8DD8F417E3
+E6864CB4355B18CEE3B87ECED2325D83727EB06F10D41F20E9D40EB5378F25583A21E93E0ABE
+444CE3CDE27B82E081DD54C1C478F673EF38B15AFF3C95842B8DC5B90488B9910324B004638A
+0B8C6C894C58EE11701D9046EAABD2C417F17ECCFE15C765220D74C79FDB0B98B96CC59BE479
+63E6BB98E066B7ABEB7DAD10A03352FA9916457313407E5BFE80ADB801E229208AFA0B474E99
+5C6EF5A3B4DEC5AAEEBA2579551BCA9ABEC0142D6051910EE3F3397459A2F12471B36BC11F16
+B53AAA39CFB69FAF02B04D71D74D567C305BC0DC85B5DC7829ED9FA8FFC65D1AEE665730D1B1
+2B0920F7D828D547DD172231494D3BF562B5F516364E355C80B6F20564817E8EE7733107575A
+AB37451D75A292D96EBACBAC3848A5E0842A52E8F5258215CCB1517673F4CEE172467E4EF066
+C18537DD91EFAF2EA46F7F5412B3108C5380EE7B4A9807DB1D5A396ED802C3640D520EC22E28
+8D66A13BE5E8BC8276FB9A2FA09DA2A93BC59C9C3E0A0C20FA823921251C8AE01576D8232C06
+C51EBA11DDC679D9C428F2F60F3F9B99F3F08DCD410A08FA9E4CFA4D82762C6CE53EA6F7A270
+2CB45B6EA563053B02C07483F0EA3261F1644517E9AB19E7F5C1CCBFFEB62E3BC1CC89D6E185
+6AD87B84A37184FB4CCB61CCF2063E41CC8E991E5081D7DB64E3A17D43D5308B069608230570
+696F8ED97AD3814B72896E217A699F8F3A8EB79D915E85309FBA414F8E2BB2849E540A9146CD
+914CC20542F2A4FF690F4E6E60F137FAB4201EEDA336E81A2D944A5ABCC9E3979C20E65435F9
+2388A87B132C6F1C5231E03784306BD033417D147C83281D8BC3F600B773AA2D7D9999C8F378
+CF7DD8B5F8D5FCA3114CF1A7DB64E81B2F80B1930DE6316C241A831F4A655377D77C6E4FD0FF
+FF5A287C648BA2D78556CBC196BC98E1428E9E6BF9B6ECD0440251DCDAE165CAB80DE77F733D
+13E8F3C65ADB56B14AA17ED1795BE79727882A24F89C5B95F9B2D72E2BD201331FB2FCA0B60F
+E5AEEF092DAEF95684BF6F04D9D3736F5A9072DA7EBCEF0B78DB112E83B80943B49BFFDD5233
+A7D4C4A4364F00B815E6D672233EBC2AA2A1D626E9E003A59B3BFC2C153A9989E36575F345BA
+7DBCF7CBA0275A3404FE7B8A18711555229B49AD536DFCDEAF5BD74F63B623856A1E7642F079
+CEBD327620D4E52BBD979975449F5862CECC7767EB8936DEC3B7DD5A7A604B7E04D1E58F6057
+9FDF2FF8EB2DCC816F554474E73ED43FA1AE99159B0F74AC866A811D90C56DAB4EF12939B902
+A7FEF046809744098378BAF764F8DE2765EAB5EAA0146440DD99FF87F402BCAFF83C13816167
+14B520074FA71349AC18CA9833F67A3B3A264B484CFAB91124DAF0E89AAAD9B5591D2366B510
+3F34266E864FA987F24765F7120ED14D6366456B6844038E8B46B4B600EBD0B7941DA2298608
+72F09B5289E2BAFB83DABD00A62F34C723661E192F40E8FC100B79718B31005A779A80CC4837
+7EFB743663011B1DB82630ED3504ECF66336C0DC05F6EA16A661D94A786370543282CF001E0E
+7D9400695C3022DB750789C5D7B52EDF84B5A19F4D8ECBE952EAC9ED292A4C7D03338A223471
+9A987BB30331BFEA3C032460B72C18B693CFE54B7870D30B9AF90E52F478C7F72A1F51ABEAEE
+8A030C0AD7F724DBED5CBC76B35942581EEF6723EF1C82886A9972134EE9FDE3CAD93D9D75D0
+01A0B34770786F240F4D7439A5E515CF88A2325041EB2D7BF29BD7F0A733500434D5107D3374
+8FDF40D4AC6E13718FD1FFC953427277B8EF4F374867B373E4DF9175C96EAA6E2DBE8EF9F08F
+F9613F374BE9B9641381CF22E6192AC68AB497CADEEDB362C4136A170F72B0BCF9D0573C5799
+0EC403CAAD823187FC9898D0ACB86D0E07BA28790FDEF3D459761988DD5749F2518EE1EBD609
+B5C18675F84BF646A2141695342995795952B68A2FA6504E0FDE43723CCD2C0D0D4F5642A0C1
+A3F8CBB216390DE851A841A7EADE53403D7A328FD1C4F5A847180F8283FDD648AD6572E4B0BD
+CC58EB9656B68D4C067AE86C5849D6C542F54A026552364D21CD266AFAC2AFC0EE943AA5CC75
+245F8B47B4AB89D017C52174AAD03B1435DE24D9D2F41AA924C407457022A02E5F0A6B760D69
+7EA94BC5E76CAAF6E085CCA5D32B560D5E3B74F6BE573FD292FABC810A1DDCB486B52A6BC47A
+DDA03997610248F7E13E44DEB241A23D1D4DC1A089457AC6AAF9F8A3FCA2BC2844DE8F64FAF5
+62757A42071E7A67E20A2591963765DCDBEADC1264A3728C4DD3FAC7F907DDD3C41D0CBB3F82
+E605F7C437DFB286E521454889F7A43DA468B3A68835ADD2F16615CB5E5F540D7A3BFB29BDB6
+E382CDFF9AB5DDA834C676D72D34C94C8FDB4B29AE25C9B4B6EF7455F112DC723853A9C7E485
+0BCF12D782C1E74FDB9395116D7BDE6BEE11B5A291CA3CF04BC421DF912B594688359A7CA1DE
+9257FE99BB9EDFD0BDEEE158F56BAB3F1ED04D457FD0AB90A5F522FFDDC6B0CC829926DB21F7
+61B1C2F5CDE5C08CF1873B878B6507BD187D020DE418A365225A7660118FF45D0983C22D2C52
+580E1EC7B9D08311B5DC9DE8BB569AF34AF493246A03CF7787D9EC555ECC2E3E9F1A2C0CB926
+B47A0224560D4F8D2BBAE077E948FE94DD3813BCE4D18BA4B71D185DEE9B05C0C06667308D43
+EBEE794B6000AEA93C7B400CE527F44BE49788E1E7299B2D642A28FAF5D579DBEA8B46AFBF0A
+DF1546EFF04EDB2AD3C3391DA5BFBE5200EDDBD52D509D248AEB2FE608DE9888D7B1A5CE3904
+9F984CC81628A894A463A4825EDC345067F3D1B05C0D97AA16012FE0F05F102070BADD79F188
+FA819664D203153219785EE915FC79B87A95F551913F94F5589D0449789F57C7A104920DE6FD
+D477F43D8B96A219F4025357FF3C5FA0DA800EBDCB38D85BACD230C8EADD88D978ADED975B25
+72B9738B787C2DDDF73F5A4F5F98F6A29E9F0929CA4A1D68ED266256FD80DC1A1E0386996F4E
+D82BDFCF46FA24EC3F48CA364DED12245EC661F9E312F416097E89748409972A88563FC6DCCE
+FC0948A9AC7A22ABB67681DAD268F92A73D2B30A8CD5BB65746609AD40652F18E18EEBDEAC8C
+3D11042757163469F42D5DE1E7016B740213B82E75EE3CC01060267874F05748727014469CCD
+005986ADA6841072C58054E3D9CC51F6AFB99AAB069BEACB8060F3B489C7A468716574AEE183
+643EB3BF17202848FB2593FBAA222C7F02EEFA10EAFD70959E4F8491BB11E359E98C6F089FF8
+57BAA11FC00E6B78260516E5EA81066148432AC35DCCE35845C34460BAA8E20653A90ED7B901
+977DEAEDD3625A9E8952E8367E3854130BCF23A3F4D62D0C42FEF316AC36238B501FC12FD95C
+27C821F7A5659E8486A1F67F72DE27258F26F786EF982CC3934FD43199E89D440BECC0B740C1
+6D72A30BE83E45ADC79DF42D4D6A0C4A7D3B016F4DF327C4D396FCA1DB9B9791B8F19879D104
+D971347250E39E37A3FFD258578A2566A65C568D2E1AB6400D0D7BEE41CBD8632008DA8F5C4C
+D677DFA389AD66837344E100DF6695C607BE52BB5A3C0C2F01F720E0546C1983A5092455BD6D
+3BDA8B15ACB5F4253FBCD9DE3533C3F34E3B1D55ABFE7108CB47BAB62B734233834909927AF3
+C54C449BD76FAD7C30B12B04175C9E1761F8523A255A407D4772B7E65E0336F16BD67DEF0B67
+4EE1771906E9D1F160F812EFDC3D1080F15E2C6EF25C917DF2989B3D53BE6547734D07C3F344
+E50DBE5DC50460FCF792850D7DD52FB24F68D97C99F05BF5DD4A8CC83AE5565F0EAA11B8E630
+C6947EA6FE7E686A654D30B2E285F8E01BBE0AEEEDAC9B0CBFFF941F232AFD48F3A46102D207
+326DF0CB0F26A8536397EEC39381E1C538E8A319CC37E51E0A2435330B6203B441D45B60E57B
+2D84A357340037D0AFBF788E55B23C35F311BCED7F28C7A826426C961E5C1C6F41218F5305B4
+9ECDC9E03252ADEE4F56CC68A85E9D9AF4227B2B30C326911F627EA521EDC0714B7A9A71DAE5
+BA1014C7A507F2B5E13F6C146A1C38F7CEE8BCC4C0A64B175802D0AB724A2A0160234DEF23E8
+29E2DFC1983EDDF81F406A24BACED9C1DD2295FAF5EBDC447DB47B3A38643196DED4A4862E39
+E9B416389CDE7DACCDE02B9D5614BE3531763FC9ADB76BD58E6E86B0F321F1EC99EE55A7ACE6
+8D39A83971B2B2FF924DB84D944747B7C844A562A8A70DDB4DACF155F5F9BFA0CEF24D8D764B
+7A8E4F1755178460E9D26918768B50683D1B5DCA6F8CB726A93E5CBA5411ECB0C84BC1B49078
+DBBED17774642CD7EE12E5A88929AA3E680BAC36089E1D5FA949279050E8270C96915C0A4CDF
+F9C536C89E8988ECAE1BF6D6E0A4B9A065CFF4D531D202B2E737B2C31145A45AB4E4E0C2F2C8
+217283AD316A662E01B4706F44F68C9B4CAD5EFCBDC06C38A0599D784A3D235537692D06012E
+DB740082D6D1CEC0C2A80084F37B173C5F74F7E7C674FD0BD158ED4638C75CC7B7EC27DAB42D
+F2F15D2B362EC5F014021594C3CE09DAC8733A568C61599DD138F366AAA24685309691993A3B
+4D7070A562E9A2858E097C56F9F9D064E9E94A1AD4CF437212FBEEC6F73A4A661566188156E4
+325314E92A58C54DAA0D6334B045D8018E3B5FAB5FEE34E4A6DD46B63B08F8BA13B9A555A367
+B692E503BE3B42D3AD9592BE76EE0CCF4C0D667317F8B4FF4D8229CE466EF032817A3E5F0D63
+44264C5045817ED0941608C6A1477AB55CB23DD6ABCF67067A18295CDC352D1C4396A237E551
+3B4768F00B0E0E383DA9A7A35B21B3E1B7957B3527BD83A424C68B0EB87B60EB7494AED26234
+EB613387F3A8045D3FDB6EAF2F947B5BEB73FF5C995AB888D7D995AD599E646415B2C31ADF21
+48A44D7E7B148DA6832F9364F15D7DBCFB3D0BF08B74D2C3B3BE860829C1DA4122E4920640CA
+E5730A9DB7C58E73E92981D6C72471FA2812FAD88EFB7F77AB8061C481319001B945D8A0A9D5
+123F4D8632A161C450548BE9866B6503C66576E1C815E01F6DAB0E11789F6124B3E4BA0A3558
+67AE1FD312D25987F43E0BF054A18A4B6684A66CACE90CAA56B6538BEDDB78102D90C64F9484
+D76D44A7D846C5DB81F2B1A5F65BC2ECE22CBE2D8FE3E3615C211FFA0EAC3D5CF7A66C1D4D5E
+D1859729EAA4FF523F4E307A48A412AB9F31C5CFA58ABAF92286A2073BAFDF8F1C1A1A51B790
+C53B4C3CCF3EFADD0527AB576F6ED5137D207E9D8657924334FE2D570E03C671FE4217271CC2
+C5D6EEFE5F6AF1409C893926F364B51B0A2F1731E14F4C4B6FE31DE072B7BD091B30B093ADC5
+18FD393DF26C5DE75E9081333ADD05FD745DF049C16B3D6E0E2D75301CB57CA0A09AE1176C63
+4F35541BA284B22EDDB016E36ACE80EF7B3D3C20F1DAEAA50CF668BC65055B7375974D85C1F2
+048FA232B22BA300ACC251831F65289C2BDF785AAFAF5C75B769ECC8F36C2D82E072F0B59B10
+198A4ECD0FB55F7B77F64B4BCBB8B6FB5A16FFB86E8FA6D750ABA4D74A1EB67BCD81534EE47D
+D60E3A30743F15DCC3E235F442572E7BA1E7682D6FB28AE256FABFE7488DC3C5500973662B5F
+8890885D5C7C3B538680F6668989AEEF446B2B3EB435255436EDD1C3143E2D82565924BA0D88
+EBBA169B0DAD999DEBBE1062B20838AB245131BCDC6FC446C817952D627E8A6C393BDB789257
+536E1E60F68F9F4CDBE0C2167947F98E6140769C04412F53008CF108C89E56A9587C1BCE40B8
+390EE1A87EB6B12CEA750ECEAEA75A0AEC405CFEA761E00E4573450CE95B874B75A7A1649B48
+9E6797B833497E2A7D03823E158D43986BCE89EBAA3A3F41506FB7B8DDC8601E3035BE6F7F6F
+D57588305389889891938210929F0E25E0E37AE9E812731F225E1245DA41DB935A590D88FBF4
+574C46E12C9F7D689862104526836DE9174DE954DA8551D0EED02E74DEB8708690B92A31F500
+C6D1717C739D97761337C5F7FCEC0D48E4DC54D6CA16F7D18070122A17775C87E08C230AE3CD
+1EEDBFC16A276A67462E1BBE217C4EAC0EA22BEB8FC1EB93277516E78C5769D83223AB672259
+002329BD69E1708EBBAB9EA93BE0F3EBD95E7CA39D76D35173D351039B3E2D5A4CA40107E249
+F84FAC05A46CCF2F112A655FB35F8EFF03150128A81821A422997678A2BE9737A22D05FAEB51
+9DB7EE5F1F0B43D1D7CE589D30B8B59817ED0D938CD940603105EC746075D53A642C556518F3
+97B36456AC9BF2ECBD967557278331CE597AC716538E31704548CF36248C183B503D1A486E0E
+0D75CD162FC8E53B2243664254EA11478E3971E4B4F1A2D800E1BE02AA4BFC064775F2947681
+B84AF4332E77DE0D577E39DA5A70C6365427FD658BB0EDFCBB279C9ADDC1A0DCD2049BC728D9
+C295916BEFB36926762CC071D9A542C2AFEFE506AECB8D7A9F5374DBB0EB2A1E7EA8596CDC6A
+EF8E21ACC8545270A3F85E82E337EFBF5A3CDB3AD2789A718413A886D1595DCB9EAC464263FD
+F239857AFAC9B61E3F79EFCB9A2411F67A024D4C15070816C4687DA58CB2E2CD42780C0FCE94
+AE344EE73CE00440CE9D33E490E77F0F3AE6A088D5C26A24DA0EF1D4D2C9B05CB207F8EE1CB0
+75E0DB123BC9BDCF2DC689E4D7138DC745AFF9E7A9C787AB6736D793E628995D540E60F9E70A
+17D0A6294623E4FFE49DC9389E063E4AC59D4CD603E6D3AC91FFF3A7E89EE69F7CC970CAE3AE
+BEBAD9254906E19629145DA42B2DC38058BEE8144CF1B02AE83206902C9CB9F6A52188FA59E8
+0FE75D226E3793712A4C6F8F240AA386933AE394DBA9828E1A73315BB8101573BE81C153D449
+31F60B3A7285127C61B775AA2CB3916A57D48462F47CC6B6D5D77B733D553D784CD4A8C269C2
+3CA69DFCD2275590BDB2D357F928921D925B0B648141266F85E92745A543E73F33FCF3E5D816
+622D65DA2974D9DF684CB5B481D46546A5F96833B1011F9D66A547F7B5F5978A4C7A9234176F
+4C07106632A15562F968CDF47B4E6140005BBF60E131EDE887EBDC71748654DAE8DB23A740C0
+41964357719D9180E01A1EADF9410261B564ACBF2FEA3A7D465A370C3EC5520F97C00B3070A8
+7B8892D8DBD84239CA52B664A5A1CDFF4E2CF711D6319B2B833EA5E038D84323E53BBDC19EC6
+EDF6CB15B6E76703079FC117D2C59B45EADC98EBD88ED8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
+
+
+%%EndProcSet
+%%BeginProcSet: cmmi10.pfb 0 0
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 161 /Gamma put
+dup 162 /Delta put
+dup 163 /Theta put
+dup 164 /Lambda put
+dup 165 /Xi put
+dup 166 /Pi put
+dup 167 /Sigma put
+dup 168 /Upsilon put
+dup 169 /Phi put
+dup 170 /Psi put
+dup 173 /Omega put
+dup 174 /alpha put
+dup 175 /beta put
+dup 176 /gamma put
+dup 177 /delta put
+dup 178 /epsilon1 put
+dup 179 /zeta put
+dup 180 /eta put
+dup 181 /theta put
+dup 182 /iota put
+dup 183 /kappa put
+dup 184 /lambda put
+dup 185 /mu put
+dup 186 /nu put
+dup 187 /xi put
+dup 188 /pi put
+dup 189 /rho put
+dup 190 /sigma put
+dup 191 /tau put
+dup 192 /upsilon put
+dup 193 /phi put
+dup 194 /chi put
+dup 195 /psi put
+dup 196 /tie put
+dup 0 /Gamma put
+dup 1 /Delta put
+dup 2 /Theta put
+dup 3 /Lambda put
+dup 4 /Xi put
+dup 5 /Pi put
+dup 6 /Sigma put
+dup 7 /Upsilon put
+dup 8 /Phi put
+dup 9 /Psi put
+dup 10 /Omega put
+dup 11 /alpha put
+dup 12 /beta put
+dup 13 /gamma put
+dup 14 /delta put
+dup 15 /epsilon1 put
+dup 16 /zeta put
+dup 17 /eta put
+dup 18 /theta put
+dup 19 /iota put
+dup 20 /kappa put
+dup 21 /lambda put
+dup 22 /mu put
+dup 23 /nu put
+dup 24 /xi put
+dup 25 /pi put
+dup 26 /rho put
+dup 27 /sigma put
+dup 28 /tau put
+dup 29 /upsilon put
+dup 30 /phi put
+dup 31 /chi put
+dup 32 /psi put
+dup 33 /omega put
+dup 34 /epsilon put
+dup 35 /theta1 put
+dup 36 /pi1 put
+dup 37 /rho1 put
+dup 38 /sigma1 put
+dup 39 /phi1 put
+dup 40 /arrowlefttophalf put
+dup 41 /arrowleftbothalf put
+dup 42 /arrowrighttophalf put
+dup 43 /arrowrightbothalf put
+dup 44 /arrowhookleft put
+dup 45 /arrowhookright put
+dup 46 /triangleright put
+dup 47 /triangleleft put
+dup 48 /zerooldstyle put
+dup 49 /oneoldstyle put
+dup 50 /twooldstyle put
+dup 51 /threeoldstyle put
+dup 52 /fouroldstyle put
+dup 53 /fiveoldstyle put
+dup 54 /sixoldstyle put
+dup 55 /sevenoldstyle put
+dup 56 /eightoldstyle put
+dup 57 /nineoldstyle put
+dup 58 /period put
+dup 59 /comma put
+dup 60 /less put
+dup 61 /slash put
+dup 62 /greater put
+dup 63 /star put
+dup 64 /partialdiff put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 90 /Z put
+dup 91 /flat put
+dup 92 /natural put
+dup 93 /sharp put
+dup 94 /slurbelow put
+dup 95 /slurabove put
+dup 96 /lscript put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /dotlessi put
+dup 124 /dotlessj put
+dup 125 /weierstrass put
+dup 126 /vector put
+dup 127 /tie put
+dup 128 /psi put
+dup 160 /space put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 def
+currentdict end
+currentfile eexec
+
+80347982AB3942D930E069A70D0D48311D725E830D1C76FBA12E12486E989C9874C2B527F092
+5722787027F44470D484262C360CDFDDDF3657533A57BB16F73048BFBBFCB73A650484015441
+FDC837ADD94AC8FBD2022E3EC8F115D4B4BB7B7F15388F22CC6198EFE768BD9FCEB3446EE4A8
+DC27D6CD152485384EF5F59381FFDA43F2D20C8FB08AA27AB2015B774DB10DACFDCD33E60F17
+8C461553146AB427BDD7DA12534BA078AD3D780414930DA4F8D58ABEFD45DB119B10EB409DD8
+97923C6E705479464A4B310B58348C4B42393988FEF4925CF984423AAF65FEA9F0E64629953B
+CF50B919D968D99BD185F83112B2759CC411764E9BDE677F57C5EE5AC555448D5F81A16259DE
+D1E11BF4119D53E8AB07A802DF900D3A2D5CCC1C6876D29C5E9EFFB7AF3EF83400B0910C0787
+3A8C56FA7B1EB1BA426043B00CC95DBEDC6E136CBBBCB3F67509964F9F281EBF81FE5B018122
+EAF66C4A838487E82E186E006093042848A903EFB3469AB6B4049767AADB95C30408DFD58D8A
+10F4CB22168DECD9F3EE100F07B49AA44C92139B669CC312BA20192454EB2375BE6284B02665
+9D964B96AE82D4942E758027FCF23C25ED01115AF27CE7F20EFE2A822BB684004F20243A49C9
+E93301FC21B80815C033C3E2BA58EF53DA2157D524B395F2B37ABCA13BC6A2F42E824AB7E471
+06176B0D6DB267FBB795AC7425582DF2E3DC55863468A9200742BD7B552C48F8CF58BC21343B
+D3B95ABFA140F33F37C6F3F78B0D8A5154EB7C1F62EC598267F13E841A3E64172663935AC8B6
+65D86540D316DDECE329C008049C5E74B27D59022C5515059BC3B89370B1BC6A169C888BB325
+E0B74282D6F053A50DA4024ED1E433271A32AB8C17D41C632B41CF9F3ECD5FE124DAF7AEA7CE
+8A63047B245822930D517DF7BAAAFA69D2D17F7D93CEBD47DEB85405D720DE0BB4DCAE731A8E
+27BDBB6E6BE38D168B7DAFF815ACFC32CE367374BF9FD98C0AE5BA1BCCDB84D94B5C173ABC92
+F7D18E19A68F64A2241A0A1639108DC46B8A04EAD17662B7BBFF3D3D9A95D5937698573BFAC6
+4973DC8D8B8D9F68C52D0C133119ECA4FAE72F7553D276C817003234A98337D7C037C0F1BCE8
+A80457113BCD97515C002D20F836FA086A3277727873EC2B64A92BEDB01193491134B6692A08
+DE4A201A3F11DBE070D797F7629AD487D2B8DBF89A0631956C93864A4460AA3BCC8EC6B98DB7
+5209AA1B4A2E2B1B9866CC7F3BEE4E0EB0DD68627A97A3FE6141FAF10A2CE00391796C5438DB
+AD93FBD065D1ED7E8B7879E0D1BE9AC145B9AA91756EB6EB81146048072303229CB8DCEB133E
+572EC8E2BC954BADCE75356EC8EA0C7F76CA08533E874BBAEAADB89D86CEB974A52DE0F9A434
+80E5076265AA6EE49ECC896182E6091EB30B7DA8CD0E3A26AE7FC03BA5C0D56526ECC6F2D6F6
+91D84DC9E7DF306863FE0B6DAB3CBC588C28292DF3F7A47D9C4E3652C72F6BBFB3F4983CAF59
+C7D877103DE7AD73F95A100AE860B4E55814F00A7026C306E85B8A48F8F69CA48AE710950A2A
+1F2892F31A3849CF917002086DCA5F66B84EFEECADAACEB33A0932E394A5E17628D52E725FC0
+C69E8B00C9DF81DFA32B2970756D947A9F56831B19FA3A2F2795017381C05919032FC19A6B8E
+D2D0188DC35923F486A62C8AE61E0A5BC681A57DC20223629C0339F67D689B63D842909188E2
+CB82A4E0471B9F17CB8FDC6A6D2C3AA6FEA17A756B4D4860FB72B50CC39CC7E5329DC202A5D9
+0160DCECB7ED07B9CFAEB7E766887C9B93727E5DF348FD2F5158A2424F443A8C72811CFC9CD9
+E2CE8219667D7364E85BB01D8CBD63CC11533CB0D14B793D5E1DA99278E636CFE6A34AB61D46
+44DFB5939746F67C71EA1632A43F457583D3478D159400E04CB7BFD0011048ECFE912EA5B72F
+6C01F941C78CE1FDFE23370848D6DB1C88D27C9118B3C8C8CF0BBF33FF12B509D3594E187F52
+05B9E96F9854002E8944B8126A8B2B41BD572E7FE727B10441F3B4B303FB576084008DF04128
+F28A3BA5BF987BDD3AD278F316615D70634C47E6C924A9CC634A249D1D57DF395AFFD6B0C524
+68061B62CCB46EC8CF95AE99EFA5DEAADC48F433ACE21B45CB502F37F06EF95B4D8880FCE2EA
+E511E2F7130A96097066127391923616B95EB7E3D70CAED613BAE4F2D65E6AB1F81D63745FCF
+A57A9BC5788BD1288607539A0EB5D7C139FCAC70436ABE12B7D57C1D915C3AE1575CC7EEDC26
+297231B8A510CEECD3F0B291782BB1C342BD44219F004AC2F1A869F1448354BE54DD59CC8CC8
+DEB38E3B8F4899845DA13CCB707CC10D715B01CF3D7D3BD1246A449F90E96D40BC79F879B7AF
+43B7A09D9DD4884F7563910E4CDA099284CF094D1D0246583B01F1E687F0A365B463E7C7B4F3
+70E924900712B02B20792D0DB404E08ED5ABBCA0F1F447292857A96F3F73CCCBC73F223C7FFB
+BC96E095E349CC72D2A37DC40D196FB55782050E83C7097617FE0D2C663D32A7F03460EBF9E1
+904A12877EE0D4A4053BD5B673B3B65BDBAF76D7BE76E4F49A0C0912A87BF7BFEE30BC1E91A9
+55729D55B0691D2E573B7CA693ADA3E865E87F4C48122AB163919CEDEEAB29E83020E4391D59
+00AE2FF0F086AB51FEA2FBE72549C4CD3A674C8EEC28AF24EE314876F4ECB7F161CB9F55A2FD
+8611C48F3E8396DF873D8EFD9141474A86B8906CC01736588436A3636933ED22C8B8D97611D6
+26BA7667B33BBB0DDD4EE1FDA2E89A3F03A18516456C029B96AB181F945C6C81990E19A732E9
+ADE2DC846D19386E874ECF08F33C48C812BD31E6056FB1ECB4049E6C66A5FC814A77709745E6
+9A645627D45362E798F3336BD9996C42B37134CCBD6A4BBE9D938DAF6EC6240A4C4F4DBD4E68
+1C77127B4D3DCBC7D770AF6FE20529F19FB6B332D0B6CC01B4E4B2ECFA05F2F768775B311574
+F662C4487683A979D3A65E824E55EECBF4789664EE971B374F62F34918524BF9671A57C8A7BE
+A7518A1D5FD3B27A5D116A6B0F9E3A9E4CE276A5D103FE6A4FA0E28B6F68F5A4D89C032B298C
+B03ECBB2E1D94A4199C6255D93BB029AFAA00B7D6E658713FAF433F2777FA3A0AF6F898D88A4
+D32FC6C3E0D8BFC67CA1AD7B9D6FEC4A2A99325D83CBF1F6165842FA8D033D7682EE635A5DC1
+185DE824BDB8EA5BC7F3BC046E83527228F17459BA440F783D08F1DD156DC0BEE9E8EAB6F8B9
+950C39DC03000F0488EA4071047ED99C550FB8AB843AA639B6289B7284EA8E69AC785AA88066
+D9F3D4090D01878D960DEAE07C2A13B8015556AB50AEF2BB8FA969764D3CB40AD44D5A9E548D
+E2BD511FB8E38AD40181ED288C8FF88B04120295677DC6228939DFC33B7764BA80C32D4664B6
+61D7407309CDDC605428A7F4CED1F86708466E0BA2F05D4DD7244A803341D0B0D86E48DECC59
+25A75DC331472BBF13E3D024B85ECF438073303ABCA65B8309BC57E64AA97C244F6B89E82B17
+F68D520E28182F101116F48A34E349107DCC6ADD53F2084CD42720E35946F520E56669BD5EAF
+BB02185D6EADF788D2AAF54D2E2C2ECACDFC7C91765BAF663BE838114B333687A1B7DBCD498C
+8A28876426B354E6B5556EA862DE3C0305645B75235A32A2AD5DA5C9B9CA573D6C88A3CB4CA8
+847F60F731454F264150DE6EFDB9BE02E6F5B868DEDC1E7C55F2C46F99F80AFE84260B4D94FC
+5947754F7D98E96D932DD3D13E78ADF22B9A06360B38E7395B7E2339C07FEA445F16C2022C0E
+B8CEA6EF469AEFBA3A398FBF747F271C26E1870A86732E4D23B9BD9A564CAB079620105583FA
+E5EEDA2B5395E39DAA46FE5865D29ECDBCAB4D5FFF236CA8834777B0D1CD347DEEA5EFA2F387
+006125E46AF358867E7CCA258AD4A5222373749041225381D44BDB3BFB3661FC5CB3EF365444
+B2D19559411E3861C3468AD08A3330D842F16439E1C7CC62F639EACE059BAD656B292C9D8C3F
+F72FB53CBFC7F942A57C78A9B4EE3C531413D57C2EBAABF4F32956626AFCE2BA1F7FECF1D36B
+B77BFA4DEC303C0F3B0B011BF3A079A32DE973D5198F82771ABE8017F9D0D40473B996CFAD73
+A36D4DC52BB211880E1924CF30E191C1BBA6FE59F54E0F0DC2471BF45830ECD99893A96E136B
+1A45EC4EA86E357A5A8BB49B2161AC9A7472454D5BF9748F34177036D448D14BE4171F0B81DA
+E7008F0C3ED828FEB647F0D06661ECD3997B3D87648CA02D3B6BC5AF94CBCFA12EA2B41DDE42
+B61DA7C83CD97B66C7C0EE10EF0A4EC5E063A24B5AE434C55753E6A8245A0F745669801755DE
+324CE91D1CEE35E5B44CA4D6CE8DC88E15057A20B14035DB0B84B4E9D938F68236992C1A5F3F
+7620D04972807F8C4FBB3A610B5E3C5295E2A34C14504E2DD400019A770A8F28344B981DC493
+976B115228E575B89406EAEB7FAE63933FD79FD29A1A489DC4B5C516F09830CF7DF23889ED50
+2457176F21D1D3D192EC42A5C39E7D301D4BD47CD9B56191C5CB0D1923AE941B336451EC95B9
+519326AC3014798A56C22A9CB24FDDC6C46184F14B6068854D0FDA7192F97F7B783B7F51053B
+3DCFF411F4C965649F7E61880B194037C6C69CB15907E7989F4188B1B1FA92CCB2EC1F43DD09
+6B3B1D991DE5882F43AF1E023F2A4437F684757EAFAA011EE65F1D9507E79C44873366253EB7
+84CDE128401BCFFCCCFC56DC8900376552F45397EF8F5D40D5D1BEE737C6C307A475819A5D33
+7F4B02BF28461EA571CDD79F39F9491B37108525EC550E9D8A90AE63D56A1A733CCA38407505
+C1A7690C67529EF6E51E117ED62274135F8744241CF456F827E15D512E78DFF679A117FCD7EB
+45D7818BFE675607F002E8902B6A179B4210296EB19A6B5BC646371784FF5137220B6FB81DE4
+5FCD8901A4A0FCEBFCED40F456F6F09D59C66B0BDE0EDFF2070D64B1EEEAB48C1885A939463C
+4ED7E10D194A31F9859D58F160C881C7E7679052EF3D0BD0037088C5BE74CF9CD8B441655AC4
+C21C063D5CF157E63D154E2A3C0FA0A1B796B7EE86207252EAB2A8F6BCED4901CFD178EF5B0C
+BF5EE7CD9270AD1B1055025C14AAA045A9C2D6F01A9AA133870EFE0A7FC63104EC2B4AFBC027
+7013E787E82B9581B38E70F585F4F2E01E4E7804ABE534F97D8F92C460A609492ABAE7D236E2
+70CA04C2E5ADAEC2BFF1F219208B2F8BF5CFB5F13EE94D3B9A601DCC6D9AB03EF624DDF287A3
+A950856F44B3A31E54D64468BF8BF92F4432937DE368FD31D7A2E0710CAAB3D479B52105E910
+787A4C6A97C11496550971442CD159755924C31ABDCEA68A874A9C6529DB2563BE8880576C07
+7C4C5A20262C89FF4391ABB2DFCF24500708D191BDE0FE49FF456AF3D8355E56B0729BFDEC11
+884ECCC7CC061B44F48766D6C2F31793A5898A8F5900587995A2A19FF4619131F5E665C98C19
+1C2D6F9511DA129C471823E78138C038B17314B37FED7AD3190C938F040BA89E65EA6DF47460
+6138937EB395AFFD6CCB55FC0371F8BA2650CF2846015A912D67A848D29B06563A76A65B5CDD
+EF34D1B76DDDB801B3CC0B910B8487BE26DAC3695DDDEFDED0347228D046AE30B64637C3DB66
+35E697493A0E72AE1C2CFC611BB42F9138F608DB7DE51CDE8520CAEBBEB05A29F7578395CBBA
+7B01DCF6AE7664EEA3DC1554A62028DBB478A18F6EB6EC084917427CF6D40689468406C923BE
+93E0A8DFC250DE798B7211E91855FF7CD3DFDC9D0F67E52DF1AC3C2020B593C77E8A5E6FC3D5
+7AF2957B4F876A90A9493941F316AC9C1CD05F73C1301537574A7EF78D73D23C31C1D4689387
+A2D4396185442858A745B98D81F2580586C88D6CF54AEE1517549241B59292C8DA1F6FAFC3F6
+1F2E82315ECF37E5E8306F4FD0FB4B4D0BBDEDD2BA55ACA3EA3EB02705571DBCDF339F326842
+0DA8A59DDBF5CF721D9BAC5A1BE8CB3C0B4FF98D6B15A2DF24215EF121CC06F4700F2609C817
+C7C4A0659AEF7C646DDF125E9ACE18348DA6770D3DFA3B9486D9971834A7EA6881368A9612F5
+293601FAE200974434D1C24354AC8E9335D5DCFC27D447CCAE4B0923CF15178484B24C944FBD
+847A64B146D0F77DEB7665247E855C600237B1E311FAAAB4E80A2B8058F6F26054D111E94142
+1A2A143F3C4106A506F844DCB8EEEE5ABB05C2D0B4563C1D1080B42EC330D3DEBE87B65D9FE0
+A684FB5D125F7EC7ADD81FA8D82E938BD2AD25E1DF6E473BFD81659317C91BD2256FB4164888
+73DD9D67CA6D52BD2C5524903C68989C3F5132F029EF0A078B8C2DB830186A2DC9CC47B9E6AD
+6AAC42FC7A12BF5FB5386C558A73DD4AD02D7DD4FDAB2152B138326D968EF837B79A3BA3C0FC
+A3A629D8143DD8B974F8326851AFE08BAEC65344751A2B076D71EF4F49148E6FC9F3CD520645
+604726239FCB202117EE1CAA906E37AD6CADB6AB92B1D31D277FA27F6930ACB68D128CD0AD70
+60C4960C4B409664C8580F1C5F3B93E673A74B8094284837117A644F0CA9398FDAE7CBB29DB6
+AAD38CE5CDF855E84B3794DEB9362E1DAFFF74ED1E87561A4D33A7B6C93D18F231ED180B0D11
+2D789C9E7B35B31EEF4D5FE50329D6AE3E9324DCD038EDF01F1B10E249CE33E8BC8E77E84483
+96FB9B74B316EE1A78F2463AF742CC468215923BFC5477A74A353A3CB7286AF8D782111B09CC
+436ED7E7126E5C70122E81142DA5F1056694F2CE5D5706C6C3DD6384CC42563E5BEA094392D2
+876486F313B8409A2A03CE6718B7F5A58A6BDC7D7E3967D6F7D2F2A1652D578C0C43438B67F2
+E67AFCEFE2F1A031330A1337D7442AA8D15A4B1B0DDF56AE3477599A1C04370BB06C5075A9CD
+D5D9A6BD26B3901F46D90B45098E5940B44BD1485840CB585B8B8BA7CD45625803FC1420C850
+F434E84DF2CDB1C6E2B48716DC287BDBDE64CF54C9EF6C3DF4BC3452798A72DF4C2AEA80415C
+9521648EBE5B65ED763B5A393AAAAC1227C1E017DF5FF4F2428423373BD6D5FD39D90599D30F
+8D39740D6255FB22ADECA70C5EC3A8F87A59EF93EBE91BFD0C9AA2BEE6B3748B3914752F0E5A
+34D2624FAABCD7EAE3D4051B088C9AE1105B541DC62EEBFB0161D05818A73DE9606A3BE82B2A
+37D1F7F22CA33F57AA00A40F3189FB57BB46658710E278833C08F3C5D428BCA99ED499E1B3AE
+16892C9ABAAF45E29C7036D1B0EF9F17FC51399EE7E7BD85EC424EC4AC17275D980FFD2EB1BB
+92E78B2B38868AE908740E0CC26F414334CEF4E8CF5222F46E1AA40E0032E59FFCBB395B4ECA
+2573730D1965B2D4939F24A154B6E44334BC0C465360BC2827B14E03E0F428DF065E9F36D256
+E9A76F41C0F81747DE63134EFC9CEE6DDFF528FD0FE979237FDDA7782127B2A44B2F97A2611E
+FB1B03BC3846CC19C86330F9D2B4B557D47B5367D597E4964257C0109A26DEB44CCA07186DF2
+D26769BBCD6BC499B3717D6DEC05675016943C69EF60BE9E2A004340202288D22D6476A05A27
+FFB9A4C7A2AB606619ADF733C05C38C80B1E2300CF34A1E32213B83735EF20991D4C487472B0
+571AF8F33EAC2B12E0F302C63371A42F1F27DF2027211D6ED6EF86766E35151B67AAABBA4B46
+9F5F2164CECB46FB0866EEA5480B615D6F9BEC31CFC9A898148363C039BA8DD87FE65F1F9C8F
+754A1D38B643BDED590D7E4B45DA77B64FDC835CB412C5CBA906DC46A7C9D3584B4EA5F7701F
+257DF04B12274B3833957D2869D52433EBD119E69278D93D7423C0AC9AF9DE81B6CB125C02E5
+723C495492060D6CC6B4BCBA6033601A6BB3131A474BB29FF433A1F3FA9EDADAB29F591F029F
+ECBFC5CBD578BF738D57F8AC962C6C4196FECD4CCE3B8679A2B805E736ED48F01E027151421D
+1AC18D5473F299FD612542DF45DF5E8CDE582D236BA5A3A7554C7111BD2D9AE4BFD5D53C025B
+BB737716686C68645C01327F7E91AAAC5FB9B31EC344CD1BE4427C612F3E397C8C9756C7B30C
+D4A31FFC6EA5C0BBB2453D2FC5AF8CECC5BF27F3D22E919E9B4C70BDE1E55A39461821B30266
+B8DD029B63683997CE276A28EB79E52DB38E3E00FC6C9F0C98A2ADE2A3FCCF651329F33E754A
+A2637EE13D8F0275BD9E3670E9B6DF5E5C7B60FF2E9BC284895179A6B54A6501B09C90CE1F53
+7B181DB63CFA3502B27699C0FA32BFAEF33560EAF17035A22B24AD1A92204835506F9AB0636C
+7E1C4B9BDE7B1E3C85A6746574082D5A66DD35BF0925B91BC10F973B607D990EA83AFE2B43D0
+D12B61D5246A4B2E6399C626A2215C6B477B33355DB9977D26F0F4E0E750EFD66855852780E4
+70DAE19BE56CCAD5DA484E8A1405860F582219BD238F18084A13DBA3BB6673190846660FD16F
+243A0188B6626FBE383F47C9D115AC75810B9FC34F56F4B223D6ECEC3CC04A64D56CC48029DB
+AD5CB5723F037904AA357A377635B0693F08BE60F7AE5E4825C939A53D481553C1E5A5D57DF6
+073D9E94E402AEC39387B6534B10D27E16A85F20F20D17627EE9CFBF60CE0B42C6472C7A21ED
+5FB251748D454C7B7FC51C447C6AEE85E84FD3112EAFB348EC75D99D8FE3F1942C261D1D8FE2
+1CF2D4A7350F05B983594E1F47BE21E1BA9A263273ED14B9161B494D50B9B9EB5FFBDFB088CC
+1CFE9A639A8E405BED650531A96D1C3313617FE5E0DAB14A2E3E95CD4A0B018A08AFFF8C5E0B
+9728642B9BB9905689CC6FEBD1072CC9881DB5BD7F102BD4CEAC2D861F3AEF8F1E24DEB48A0D
+E5C10011828BF7F0EFDA8992F6EC5C053F050790739D0D9D04272FE9FAC41B86562075AB2030
+C9329A89224DE27FA74F61FD49D8CF7F13F0A5E69600E075A6090AECB2DB740A6507AA28A7F1
+57B20558FFA64A4DE9DEC8F877EB9DF61ECE54E3281AE89C207005EA3C9F5E64F2966BAE9DB2
+21365367B95AD4107A842FA8AEDA660FE530D0B37E5B8E46A2956E7DAF0A5231E33FB6D96395
+CFC427B7F6866C1730BD33BF55A4C43A769585D54699B5B956751B6E441ADD82A2E5ABD2B9D3
+3608E9333F408B931E77D48258415A789435EAFB9A164E651162F587565CC912731A5F840D03
+9CB7EA0D281A34BBAB93238A449D8E8DDCF9B36DF3D8DD2DFDC5278B98F0BC3E070E3C354A3A
+39F9A97A92397D6D0F618F522A600035529518D6D90420A8D79AA2AA712CADAFBF5DCAB8E183
+D4AB84232717D60DA8C9711DD697F2F46A2223DC3E48008DCFC18618C35D237FC2D7A84F709F
+D570BAD4BA6D5BB74835E3540746B0535F04EAC2EF06A74134742AC32E0C4D2A726EB4155C23
+3275C7348BBA01064F695ADFC933B502006D654C2B21213918E177D3E4751908A3A6FEB3E612
+268DBF27A6C253738D34396F50EE834F075AA4AEF14FF3A3BD5CB25DF06253212F75ABFC9BDF
+7F480D66719C3A5619DABBE3EAD77F6AD80A6B7A6D83AF722BACC170293F9A5E51BF9B4152E6
+4DA40806AF4417E4FD9308A4D8EA2645EFAA35B30A6214DCAA83E2F531DBB02AFF7015EA1149
+A333CD619B7B614BA3B5069ACFD80C2D4DD5D19BAD17C3AC5FCDA1818719A9CAD9913E187027
+7B6383290E27702BD87E10AB54B531B0A7662398585F7B67CFA1EB1E252E5C477025D77AD4D9
+D7D943C3B5F6127EF5BF7F422CA9AF4A648E4213E1D6A9B6F02AE5119F91385B93F00C438A27
+ABA9D0D1E52AF1CAC6A56C9E2FE7D5D37B9EFC4BAC853C23D07531F8F7879313247F9A978468
+5048DB25AF1CC60602089DBA16F25E9AB0855D83BA874C00E28ED5633EB234EA457467BFC887
+27A17C570FFB595ED41AA2EAD4D68703D0D70EF899E43E3ABFAF95447349DC61EE1F070E8F5F
+580D691D80913A1DE2EED591859D684670E5CB9E3CD6354DBB51F66B5DB8469364E709033D02
+C5F13179E5400C71A9A82FD4FDCB5DC94E53B116506B41EBA9B34741D3B5BAC7468FC68527A1
+E51C12A45DC6A61C55B21CD9F8C3FCDBCD037044833BEF5B8EFEAE27A1C406DF2DF775BDBA2B
+055C86BDD754577C83632A70D63023D3A80ACFCF501D3407CD7B880D7BF5C9A6EF55F643AEFC
+6306BD9080505AB7395F809BA5BDC8CF5BF56BFF4D2F2DA56425FE88211CA111426425D4BD5D
+1D606C1377C2EB7014A6EC0392D74A059E5CA21BB6C505DF776AAC0704488DADC008DC89843F
+73806262ECB38180595CEAFC29311113C41E8FEC8A6BC75A4CD616A02607B1B0C3F4C2423C98
+F45B76ABB69CA4E43F37E2F3CBE32A0947B8FABB8664C0070D72B4A464381DCBAF741319E659
+7D5E648BA2A11F5B7CE3A45A83E094A1537E7E7DE0150210A675EA77F9B563423F71B2221AD3
+FFF529649172CCE6F6493AFA7D2FBCC812C269309C426E8570C6992255BB8CA8157C9F2958E4
+C63FC2CDCCA1A3EC1AF935CC9C35B71CF779E87B51A16DC602BFDB4C9CA1653E1BD1AA6DACB8
+C038276107AD61D6E33D65B6B98E28091D4568B49DEDB9E9023F2977B4FE952FECCB1ADE607E
+3C60D74DE8662C1A08C6C4F6A8E50F91C62D104A7812DFC67EAADB90E674686585680A0F2EB9
+8CC92A793F13DF552E6C695623CD5F161A15807FB396DE2C4B32E0E168D765EC0AC448089A24
+5B65FEE72EB77E1593EF910B1750BD29BD0DCF35890311254BE990D9E4B558753B34600C67F2
+6B24E701287462CF8A7CCBDA97CFE5060A8C36F8CFFC8A50555C576B443D6556E14541F7C5EF
+1B6E11CE520946F91918E10E90BA750FAEB158A82317039AB53ABFBE65B0D3989FE4128FCC22
+124E162D559F03AB07E2FF289087B48582428CB9B124BAEF00A16D4678C0708BB70F692F8ECD
+4D417B8DA0371716D3B5939D56D8AEC084CC07D0FF21A5F69C1EFCCE09FEE5466D7944B1598A
+8152EA86FD11F3FD1FFC2D0BE04EC6C36CFC39CD29DF6F32E4A030548333EC9C9ED69471A989
+368488364FA7C8D83992D35E01868114852B9BC5E66B43BDA19F82102261426FFA730C327C16
+A92C2D840BC951183A666C4761B2383EA8698B5740671142E07B5161B7988D39239AA04934A1
+928EE775D311C59F12D3BEEF3CE7EC9BF6DBC9DBBFFA124AD23568747DEE4AFE3310D19FD2F0
+31D782E4FC8980D315FED5BE69715AE90F45A26D5DEF008316DB5237B6254EC881F5F42B22A7
+70A9998430DFC54E223E1CB1F2C3CC21CC968C3A9CAD2F935699129A0B05E76D7850FA8F630A
+6A76B6B428F022C17F7E72A0AD107F044CE76574ECDE1F674DEB9DFCFA5C860F199490958B06
+18F599CFDAC6B2FC5040C32D1632428D250F97A5E5C686C2767808C71A3D6E86F619D651EE5F
+BEE3F6EBB220CF2E34E3D0B7B9EC38F2B0FC78085867579D98DFF2DEE6ED400B19E34237FCD7
+5BCB901F2E6A3DE5D721A239BFB003CB4F5C58DE63E8F7F8A6647C06275236ACB4C1199EF950
+EE7CC5FA7B0CBD4852B3062C1CB39137C29289A42CBAD2BEFB0116F948EFA5637F75C0325848
+86F85008300C3B12E01D9B15E5EFF2D44FBB3C6FF28694298FD8F8DFA6817138DD586FA00D0A
+D7EBF5CD8A63949B54AC4D90FC8863490561EACA5207259A76E3EF1890A2B59099C14BD58F42
+CF224C34F1305F4E30E9F12E7AF0519E80938035A2728D433D75211C73B9740EBA4926B9676D
+874E41953C4E59A48579D3ACC872952A65ADE2ABEDD6128CE9C40B058D126C68EA0D40B0A081
+CE1604CDD5EEA12AC901CC12AF8771E39B66487A9C94B35D882D46C5F3C43BE6AF8654CB09EA
+74A24A58CBFF5A25EBF7D98E08DB4CAE7D71F112503FE689A27D75DE94B94D7F0A8F6F4F9CC8
+29C1A441EBF4A22A85FF6479AFBB1A4252AFD7FABA9B1CAF518F1A2C67392B44FF9E173A6621
+8C1DA8CED86B17861052E3F9B758D06CF8864B7B8B7B55322A5E50629229FB515754697C0269
+41F7AAA8C6D0AD6682440A4908BDFF03C4D413C3A7353F6C9275788610F8C8340EA671506F17
+4EC79EB0EBEC7BE8E62470601B32ABAC9AA3E2678367063A57CD950349635726DB14DE55B488
+8E481DE009CCE2676EBC510CD94A12ACDA187D096ED6417AA1E8B781299CED175C4243EE8D51
+E1AC2382FFCBA41F49D19F60761052E59B75A2D0D4CD2EA45B1859CF449B7DB95FA7311F52EC
+28A8D028D2343A958DD54500756D2CC13BA81E72B69F01DBFB636C9299A2F0D3A147740AED1F
+D12C59B2D7D8F0761A86B140D3545F38A21A8D6205A57CB7160FD7C5971266FB21A518CFC331
+39AFB70DA7485350EE8FB0134762604617AF0ED255F06616DE76569F48A2474D7F56A1829DF3
+0034F290B30E3F2B34C433C11C1DBA265059490AD1704DA42526125EB03298F86C56495FF67E
+63B06416A7B4FA2C2D086FB7E9A7EC218DE891051219E566566FC1B9C16EDE9FD2293183CD29
+16E3572B0D770356EB2BDD7FD92794C270D364D12D14DB02C65A6E6D636C8DC0150372FAA09E
+488E28525048EE8A866FE1ECC868F6059597225BB1C588A12349996BFAD2F6D0131F04185E1E
+FD125A2B4C4B8F2C32B6A307874B0D94DAA68CCBBF71D8427FBE1ACC6B3B279A52AA66CD6F5A
+5B1E3DE70523ABA543F44074A6491ACEFBC6DAC617F805F99CFDC01BB5DD8500265878FEB2D4
+E75BC616D30F63D11EBAAB94EA65A4BF64A484210A08C0604BF0BC0275899F5AF6D217B914F6
+AC9AA108F921309F9580701530CA11E8B5AF77D22767151FC64BE8AA6E4EA7B595E7AD726ADF
+A2872D007EBBC41EDB3380CED9743A88424A665E37B941DE405DB5BDFCF89D4F8BFA6A636C97
+3254709C81BC54570266EE5FC66FE4717CCBCA5CC309755E8AA8915E16E4C3D032E2D295A2E3
+9F81AA5E712A29DF3D6F1DA12B51D414E60FFDA3499CBB74847210196C06FDC32A42E3417319
+8ED7A9EEE1CB52E97C221C79D0BE506C6C8B493EADA00E172112B0B525E9EBE24A081518432A
+F7BE557EF7F37D1CC2DF1E86AF4EF353E8DFD731EEA986E5C203B343320BC3D35F4FA4423FBF
+CBEEB1BC75F27A40F4D9F5F5282828E9545EF54F5BDED9915385E400BA937594325973069070
+71E72887D2C648989B7A4183FA3E750FECF13B04FDB5FFADA6DAC6DEFDF7CBEEA85EB154EBAC
+F8758A185B3EDE6F3BCC0CCF0A878DEC6D1121198361FEBE57819539E575A6E0CD675A3535A1
+A245CCE669B1C31D3E87998A956EE116369CAB04EF8506ACF9E8BD2E4E43BEBDC9A067C4F1AD
+A019503E9725E1C44BDCC4BE132F5BA29B56B7E281400019A9122D02D49C768346D1B7E30BDE
+6E184E0107507C10C132939A052E6084B66B3A30B6F4E855D489F12C9AFCE7714E68869683A5
+C74A5697CF1B4D4B9BFF4E9098E98FBBA712E4E717EBFE6BA439CECD1A99F6C372D264A4A255
+C3B99A41A2F04DFF796C9EECCC20AD43B5002E8E3CFD9F09831F4F02F9327E23F291C755D3A6
+E57D012F519FA46A63B32FF9A98C3640517D077EE1A472CD000A80467B28027AFFBC9904D19C
+EBA6FAC4F1EA359AF2F3142FCBD6C28C1F2B2DDFB1D6799888DAADFFAA52EDFEEEDA38F3F94A
+79C79507BDB7782C779374A9BF2B0CB7FC5A216CCE50B8446FE894E9419E3EC6F37817CFA6AD
+52434F2415369128209778A9BB1A81EE08E4F0842BC8CE8890636D6144E9BBB416344D9DEA5E
+65719B332F66F9CFEDA829FC0AEF7919253ED138C92C0FF7BA23BA9EE1841A4491ECC983B1C1
+162B30B75F8DB608CD41FB8FA402AC96CE57D6E27060CB88BCB47FFF9132B63814964E162EDC
+F06A2F9452EEE25E1DD7340FBB273F1759BF9FAA1B2D252563A97ADFB26412C605C2C87F5725
+753497293A53FE3B708D2394E19BC998AAE5580A62BA5924A00C90EEF883A69C3310C64E52BB
+C41B70B89DFEEF80B73556FAD1D947A079E8D0BE5BBDBBCC689E6C379F5F6430E44D937696CF
+99C6F3A226E27E567D945BAB4997BA2A7C04FE4D9C2CA4691B687B2EABE5188E302493326FAB
+C6B5876541C4666A26B3B65C228AADCAC6BC98760F3D3735B89B2A2E3D43FC4CF6ACD11C96FC
+6C3610ABDAAEB5FD4C7FEC50474BEAF06684A49B6B245956FC2936A68551DF931353C2939326
+36FDF56F0DA797EC113DCCFF2E3409557028151EEF5AC29077BB032800F10E47F79CCA5C6F5D
+D75FA56638FA4E59A085532C7D830808B122DCA20D9FE537A04F5279E6F96AF0F0D180EC5243
+0438E8CD1A7C79CA9340C0639367FB2AF768F36637D67F7DC6C71B14DB7A35C567A66E460EC7
+0B91357D13AC281D18617A861AC04A6B73608467999B1DB7D06A52832482FB4153D95E6AD9A9
+885137C837BCB0D9F2AF4BBAD66C9AD04265A9BFD47DF89D6E2E990DA21CAA3883B815F541A5
+9FCCD6DC47830E5E32AC631EB16E1784D94F5A31523D31509B4FDA3F13CB6D0535C7B9D5FC50
+EAE72B74C5596E271CFDFACCCBB66735C67C32560667A2AF34EC48F09C574B30D4510E8BEF41
+E6EC0DF52C2B26344B9EB25501BC1207C24B8844DB1852366A48A991C345A8B1484A19E7AC52
+BF541D2F95EFC749AAEB3859E9030FB12EA35ECE6739FFDFF7A6809848FE1C04A6046CADB0A1
+2F541366B97451BB8D3AE48E96B7E97B5BBE5ABA1B460820B24115A03DC01721F7A423650DAC
+1E6C305FA5178FCAB92386687B1D1ED0B07ABE6E80A7A46143C05D8A9C8976FE3D1761C05766
+12CB9AACB370ABB8352694514954D538CA0F19197EBB5A93A2BB940FC8B5256B183C769D382F
+61B0AF9C9A98FDE7BA8BF56C4F4882E0209FE14108BBBECBB8338A768692CE2499F2B612B6DE
+3D617D16B5AA3BF42ED95A2B2BBC438461FF8136420417E2CD2B1A8FF07F1FFE31A9DC926D59
+B968CDA1E6946260224CB22E598B1452AD408C56E8D085F90404DEE4FC07062C72BB12564162
+33385EEB99F2B67C5A0D6B1044D29D972567AB47FC55BC918A704DDC2F30F12A148E660CB724
+0A412C6FCDA1A34B7B8AC1025F384C41CBD2773FA11A868349DB8EB97AB311220261493A57E2
+D48A2492A23F0DD6DE1F1A3D84F4F665EED8A7163C7A339D669ABE07A854E4B614C126CFB10A
+E94E76E20C0B855AF9E96C46BE1DCEDAD02CA27692F792AD423135E4BB034395C71C6A87BB23
+A549D63823FA513320AA22C24CB1EB499F150BE279199BDBE09FA0E5D2B0394FED0CD68E13AB
+B329304424D14D1BF7C2DB7D5D78F7A857FF6FE7A9E121D3BC71D3E178779FEDB2F966A92EEB
+6CEAE29A21461DA66535E418972DA8337358AC715E50562508CD7330FFB465FCB613BF5AFEAA
+2D2E13CEF53DCCFEC3D7029CE1088E73174A9D226E174AC7A80EAF60CFADD4BC51F934F794BF
+24AEED2FDA5486D883BD597EC42D4201B49BA0F89401129B0094188B698D09B1E82E2898E1E1
+3FAFDE14F40E3F7B8E5CC25FBC45F123F48FA0D0A7846D4F94C27CD4635C8EB988C92C03F824
+FC4C0E7DF36F0E01D36B4349FEAF75EB5D8C23E513E65F247F0CB86709944007B62313F4BFD4
+E3499B67CD55A3DE0A1E030B74BC3A97B7D9AF2EDFA06A41BF4BBBA292BFB500255247026812
+4B13EF6135E45E213C46AB4BC40EC5F57FDFFC62233A1D294EF1A0984F4399C925B42A2F597A
+64044943D0DC84247E98D231C2D35986C58A0C62006C1E4C0D6FDC531BDF7FFF5183DF316D61
+185BF17326E745C5B533E0B7A51433FF5691D84DF17AFEBF80303F9D5F05C797B3E767D788A3
+BDD1191D7A6D576FE079784263E782CC6B284AE0D59EA5D60842BF0A7F55CE33067076597578
+60AB8F0609E46E9B4036DDD034F5AB39D1B0A639BC8BD55FD4C800CF360014D16BFD3828ECBF
+97409AF47EA32B61F162BFB3C58DCE3039692C566BF70B2A8B6F2CED7479DB7C0FE286EAE554
+B601025D57AA3F26F1F6E85D17FA279899FB61BE82B59F6C70E0ACC2E600652304FFEF3E6771
+C348E2C088F7837A7CF37CD1C74CF0B78299D26B5EC1AE192471FBD996FA3FFE6169087957C9
+50B70C7BD174722FA2EBB27F6542F526D3D0842F17449389F3E6CE0B5712CDC5B1CEAE6C7776
+0B8B41E8444FB992928844B224F4FFBE0A4EB44027E0A75E74DFADFAAF1566F957C1999F768C
+AC8A735F17DF653F58BB9BA4AF0985A0CB32FABBE787B9A133B8AE7D68C1B41FD3E138DD26AC
+083DFE79A8C879256E5BBBD14E7B31478E3DE8ABA60893ED06F2C6479445644E795F46A9C95F
+308867AFE83D0CB1DDA4C68E8634DA9E30694ACE6EA93AF1D1E9670616A7AD444F9B6CE89978
+062B81346D81DC0C058F3740FBD591408A8A4F6EEBAFB5D7772FEE8F467B83713448DBDDB5D0
+90E6481BBD8636BA2FD30B79E9AAE4A98E673094FA6A597A8F0DF0B74C9BB69AF42F5FD4DB7A
+0468409A39EA5CF8D4882B9606E881A59A729EECF60339D5225090157843A69CEE675AA56785
+8B49FAA306D8A8D6BD630D7E38C54E88CCD548F96B22E93F780CCC6FBAD75976AA2D966FD300
+429B03F166E241C575A0469C17E427ED8502CE6A49A8CE1AFA36D2BB914A2E0F2BE4B2794D3A
+E15C8E5914B36BF9880B575D65B86C1D620B3BD6F9587EEB090CCF1AC48C73930D76614BDB37
+BE7FF457AD7E07D812D10C2E425334E0E66F83F024F2FBC764F7E9C9D07A35EB9297BC7AA519
+14BAA5055D2034DDC15AEC3EAC9311D99A0B9DA9DF9642FC4D5CE51ACCFF41402B227B0528A3
+4B6FBBB1F9AFDCE1706BEACC566F054B3BFEF75D735D5C92656AA780E9F78D3D67933C74BB7B
+7E1A3BA96BC716BEFB31099771D1348611184BF76E78E0B75655C18C42DFD2B39F3377633FF4
+CBE887574EC8AF654E91294504A59D04417F01E8C6C0EC71802D74F55020B6D15AD0333F5F50
+4EAEE5C47BDA9E373C09581B8DE96B4E6FDC76A8DD8F7B4FDF62DC852973B828F2F4FCD97C90
+17EDC5E0A6BDF87511A896327E39267E86C851C08317E13B413C7FA7C4B180244D1A26524368
+621142189D70F26DCE33CE009EFCC33BC35B211C67C9FFD68DE3AFDE61BF54A485312D6D66E1
+6BA9022B97C73D77ED530E606F54ABE858F2210821328018168BC89B5D1F0EFA0C02E4C2CA7C
+C4B2BB366131DDC427504AD454F6E8A314D9A5A4994F21607A2991083331F559B29930DDF0E7
+CC86A2DA421AB5E26341F26B5C9B9F1772F0B244B62C4686A2813DE622267588C0E5DB3CB458
+D2C490768FD6A0AD83DF55504C3E791554FA56A474C44A26256BA539416ED3BDB54EDC8A3AC8
+61CE565A334ABC80B8DB73490595E01986B45B0D82693C41DA5BFAF12B9EFEE509F25EC7678C
+C1E4EF735FFEF5158E0AB72DC3939E4F361ECA40DA40368D5516A55444957866029259BC233F
+C3F000F54CA33E2B82C999674B22725990A9BA8DDDA889F8DCA18A64EE31C4C82DB2BD653E55
+5B147536E03C8D550CCDAE2E891D81772E10A1FC43DF9A600E025E028704D40AAF27750C81D3
+F0A8E2BA60FAA0F3F4F5BD7F66C690944EA6254A33DF2A503715510772F9D8822EB0DCD03FF9
+2500374920E0AB941100569ECC2C26C393DD56EE48BC914794696A4211212E8A77B1A653EE24
+A02BFC350E7E8577FFA1FF9F11B587E61C08EAE8D88B073B780F5FC2FA97F6B5DC9F7439D84D
+3ECC2C67B8100EAB30D6CD8F07F2F2426749A47C7EE77541FB716463F8703B6BCB80F5BD066E
+94CA265473CF95D4ACEE36D05CB22C83DCC8B27C7B6BCDAB943C899937C29FE456D9D71B748F
+1B57625597D7EF30813823DF79B8E368D864FFBB72251DF04F862AB1D808E25B506804443959
+3BC6A7DABE86E0793C0186D7DF54BBC6012FDE7E30C4FE5DC9FAC9171D62CE801C5B77540930
+F5604850AEB85A13E06620150AA55137F66E6DFC97EB36A16A9311A97039EFFBF3E5080760CC
+EB073475C1E9B07E1E23FE1F65ADD9F68EAE159984DC1BE07365EA94A90E2305A90D33C46245
+6CB031BB031F0D34B570F42507560AB26AE4B64772CDFF3034681B7E3CC6B610FCAA65187436
+00CD4889AC7551F101B927F16188792AA47EA95BB05E2EBE5C96E92CBD487106FBF63CC9DF2D
+D0E0C2339402875887CBF2DFB17C3E32E1DA3EABEEA3EE9CB461A7898A1AFE29609E67AD6DD5
+7C91964296FBC5F09F4DB2C8315B1F7D9D324A8F745BDFE3EC7903279D78DE6E129D81CFFC2E
+674714666791C5A6DA8484577531BED634A6F7EA50448E68D959F743279B9A80C8885CFEE79F
+47DF6B9196F79FA4383B8681ED4754F901BD36C5A63FB1582857254DF71516F53D04F8617898
+1F3E9D10558C4C7E613754D3CF26957E0AEE795F9DEE25EFA913D3623D98C1F96E0AF34F67B4
+306BF5F593A96ED074700673DBECDC9B2BB27558525BA7544029DD9DB5828C6D8E563B5BE801
+3E96131B9E2B11D67DAF49A1ADFAE1FC536F4DEC7C75DCBE0D6741697FCFB8EC8D2D3DC85FBE
+8225A86EAB86652E0D32A00E59985E495D975EFF48812495EFD19DD9CCD93141D361B0D1DEE4
+8ADC0611D1DE2E8EECD62FE9A162542BCAD738167AC417A156212A8229EF17605EE9A3E2AF8B
+5795784CB576C5D2C8688A849E2F04B7A2310958CEF0380AB87E39F1D0270E002A11B97F866E
+77C1CF7AAFAE209A57AD12DB90DB20026D92F123F3293ECA4AB07B86CE5A9EE650D3D1491156
+A6199132B271607782E30F03E4A333E5E0960F798EAA25418313DF13C5D4BB186C37DFBD0392
+459885CAC59FE71D22B1BA70083CC6D81F800F1033FE0A250DAF09E03CDE1865FBA52D2AF2D1
+FD4072AE40706C969C1BB778CC4EEB3FCF993DADCA323BA2C6B72FC9B2C4679B9868B19A7E58
+40041BAA7629877B130A05D1594C855B4853E70C8A1D1F58A20438C39C1E3800FDBEA47EC323
+831783457FB0BAF72C02F0EF8BECC7D5940CFDB008CD258C094980C358471A2C6102C83EAA60
+5523C535EDF3A96E699AC6627C5DABBBEDC9D06FA6906A3E524C2103CAE0E2DB5F926A1FB5A9
+ADEDF9AA8663B026115791B810FE0EF2CC1E1BE6E7FFF7DDDBD27CDA85A34B3548B2129A5DCD
+9071BCF917D9C6BFAE79F41DF7FFD4303525FCEE0F8D47179ACF13FF109E748B83584AE2C8C5
+7FE3392653DE7EC742918F68F86E4694A8C9C3115A9E459DC45557A492DAEBBC306B73DFBE5D
+27DE382E17AB54A77475A79E38BBC97FA60C738C9B017BFA6AB85960F34632C6010E321668EF
+6647698D00DA3407DE9599736E3106D8C30A13C63D8B447506768A6771A3C18C7028C1E28983
+1DBADBDDC8BABF7F5D2FE992594CE0F01ED186A4226F8B312329D30431148743E29A1C4E81B8
+DC2290CCCB1B1781A397D4510DD2D08C81862C66353CB95DC06C67F2D783F0826CE879CE8BB7
+6C93F57A64CA5EF9A563470B1143DB3ABEF694645337284C1EED1B94A8EB67F62AF99CCF1263
+EE69F09109AA7AAF5F39A9488C7F0A1B3B59CCCF641B0789305B3E27B6DBC105C385B06EEAB8
+CF7BB5A6A514BD597A401590DD3D8DA4E0C291621D9F2D9964A408FF77025134020215A605D7
+77D1E509789DDBB548DD22A7C5A0C9FC6F2B84F9B94067AFD956AFCA3DF219F51671692A7EB4
+8B0E91741BA2D2F3F533AA458F7C373ED76A155C18094E372F8C4766C93C33B142C87068E00F
+9CB93ABAE9291F33D1AF2560892C50A3EE480BC84C46DBAED662A4BD34774E36310D91BFC3ED
+B9BFF3D0061C5FB6207042680713CA4C272126A4D40352320CF87AA4C0AAB5B77E2B53792F62
+6048BDB646480C5FDC25725FB6A11424D3F521D72730490ACD0DB15B91E94B11CDB8350BE714
+1209FAFE5222129CA80113D1CAAFC9E5F84269080AD8ADD155BA2307F82D8DA59AF65A328A81
+EEABA59183F6F12B9AD4EC9A10EF0732ED2F05A3BEE8C396B3663E993B02D145A5EE5F66E30E
+CEAD5A7FEBC39BF46EC8F6C4CF2B31129084A58664C4A4B413F99B831807561415A15E5EEC49
+585CE724128F53C19786921430DD793960103153BC86F58C760132356E51BB62F093B97A4ECC
+7DEDD70427F00B45C644C523EFE1597912C4D9F53FA7E8FC6C3608338BAA4637D6EF1EEE30D1
+CFE8DF2545A07388D8376499566AEEA76CB191E8DB5FE05C9D91622F262BF5564ADC064A5B3C
+AA5569EC5233DE0A488CB544533FBAAF602CE67E0B09F9BBE7E0BADA637D26A7085E80BF5DF2
+E06690306186F13A400B726A9BC0021A34BA050079520CBA61CC3D3C61DB0E5909C2FCC82E31
+4DAEDD2228D3D4173163FAABFCCE8C4ED96829B0289799755C4484CBA8FEC61C3F53D2319010
+62677888699BDB42672629733D4FB910C73B307E8DCB837F53346759455702F04A42CC42325C
+29D16F4ADEC550CA0CF5C9B7EC60038D7F444883FEE1A93EE0673F67798AAA71AB3B1EDF95BA
+0DFF0F45DC9D6E0588089553A091962BDB39B2D19B9395380DE4D8615F054AE7A1D8B26A16B3
+A0611469ADA90C9A3818D08C89A7CA26B0CF98DEF23C8C123977F2087107A1550AC33C50F076
+A30B84519EB46669EDA19728C6F4455D41DE791CAC6DEDA07A108670972C428438719F847BD6
+FBA1CE8E7101E972A7D5924E749A2916FBED44BCDB2954510BA71142D7708B38DB6DF559823C
+AD34881594717BE8D205679137747AF78A8AFB389175B5826903CD5819726980A7981098B02B
+2F4B47DCDFD89653538327E431B843B4FBE0F0703BC3E211BA7BBD965B0407E31946757D1009
+BB2EFF7E611654857FC11756351C0E2732BC8B99B20EC5E520AC9CC638010215CD5D7AAC58C8
+BC907B6010F6CB74396B7486C0906F9B879B67814A23FA9E89C79F2019A935125EBCFBC931BB
+9EEAE79ED464065D458E49AA025660B1543B0588B97C0D755430EFB05154814F5FCF0E58F03D
+3DCF0C01197A4D4B1D94B0357CFCC6B6D9BED2F84C084AC953B3B247B46706C71E8BD717B93D
+602241B21096C3E6B271B758CC50F2657481ABFB0A80B54B0D2F0AC2B14D0F552815885B2EE6
+399ED0A9A2D3C133305339D97E44CA08D52C9071B8F34D06B2DEAD4549C591719BEF6194DEBF
+8E7064C18B15DF49A73FBD1B32C1F16413F462857A76345A462419B74DA65FFCFDA65075CF3C
+6201C6710BECB92696653C0B927000B26F5289CA6FDEE0EC2C39945ADFEAAFE397907A92D266
+EC4568635EC21FB10C18BB9FF8B975ECC778C77B7E8E66C9D508E23E136F7B1C2E6E03AAFF8C
+E77008005B13217B9293CE534416FBA358F1CD5CF26314E4E6880641D8B987DC504CD4F3E384
+06E63B8EC62CDF13D0C739F60799AE269706761BDC78A9F80F726739DB2C211949BF1CB2F947
+7E17227E18D43A875FE5ACE8446A887A14C77D01B5C9FF11C3AFCCD91C2411072632375C3F99
+8343651BC7F583ABE03439CEBD67BBB3335B94193CB3CF36210C431A202B12EBD03D1AF9C6DB
+B1F255D8C101BC17E301B4D37C8EC7DA0F797767C6EA0166C74411F7A5D54B7E7AA4CD62C856
+99F314E11014CEC46FD5BB0C0B69A397A60D4DFEDA87B095341DF659CE1BC3A151376C2E7BE1
+1A548D84F0F5777FA0C07DF33068C2EDB144719CEE27D1F6DB1FD83F254BE273BBA9CC1FB51D
+B3ACA31D8BBE5AEA00F61C23BA566415E9A0E1ABC230F46E40065C0D9F2F7245C138149BE9FE
+0FB69C0B945DC165176EDFFCABF56B9FAB33DFBE78966064DA91DB7706BB6C6F04AD34E042F4
+C6FA48B0B9F96BF5CF68253F9AF738CF671AB6B553E23F34B6771E4BF150E6B6B0B170DD494A
+8D1ACB6786CEF859F934CC7736A170BBA986EC19430D19B9F090ABADF9AC0943F36685966113
+9C7645141E8A7A2DFE554F8397FB10064996783310500165171D8420D1ED8BCE593C42805A2F
+9EFCB4B88D09AC7E6A4B23C21A84B94F823CB3AFE754E79B9C77D2C3E29D5D4BB0F29569875D
+71D142362E1FAD2AD2186258D1DF52692311F53A608A276F70AAFAB6E301FC586B0F4C6D364B
+C2F1815FDEE94EEE51BB72236F3D4B64DCECE6C7B21176CC09E6904DCC1FBDAB59260507D488
+5F24270FE2A6F133D47CC2AF2AB27637ECF40EF51D8CC1352EBA3EF27C745663350C4EE97B0C
+D24ED09A5BB618024436FAD4BC458A6B259BAE107DA6FDD814B646E95B1F39CA2C7E9EA5B156
+A44FCF514EF96C5865DA6D96FA8876325A9F83B75C5D156ACDA42A69ACDAA7BB306A5807B013
+38297F76D0CA3CA851F9178168CC5B1ED97E4723201DA85D59FA9E3EC837297AB2759B02F921
+CA65072573A35A942DA915675DE04A02E5221B62D9EF635444A37E1686A816BC71F496678378
+0A328F17D3F8D3754AD2606524C0FABD57F1D02676154BCE181F8B97CE2B0C0E0F06988F5AEB
+5AA15E7B3A5F2080F7347D950D3B005E462336AAFF1504378DEF84AA51AA528C2CD232EF2382
+63BFD3388D0FD290DC4558EAF24F56B0F74A674A3CB2E61A88F5F4E97CB9997B380B68572043
+4CFC4362BA7B23C804C22793341388502F4AA4ADABE34DE967FCB82E12616A22067947F4CD26
+AB2762ACE46046E73FAE30959005EB576A10FEAC6F307233BAC38DE2D70D037F56C0B0ECA2F3
+A48D4C0CF69CAE3CE44B08E5B10D3F938131F5F5E6F4A9E211312B04709E73B246639938CDAC
+FE24396907B7C5677335988E9D6EA7BE4D7F6850AD924E44D85D494023EF0AF57918EA99A779
+34F389A5EBCC42E26B85E47EF7BCC2375DF221BB5E0294E3FFA8A51838D9ED322FB0979FEB0D
+26D4E36244F5B0557EF0101B5C3D6241A1EFAB943FD5ADE870AF75E24F25772BB65B26CA14A7
+034C1F69CCD38DE4AC79A8D0311978A8134810437E5A04B3363F16D4EE6D23853BC1298853AA
+FD9C619279AB747475BD433D2186040A934A0F05B294D28FE45801A802DBD20AF0887B9B00BA
+5C4D885643B7A645E990A49A8111E6ABDDBFF944070678E003591249551C1FD79B40795C8CE6
+1F8FCF78D1BE0A44A2D32C199E46DF4A734206BD97A0954BB778C0BCA6EC76162FC4222AFEF0
+4DB282A73412FFC5EF9BAB16CFFA50A8A259BA0FA1BABDA8BBDE95A321AB4196D58C12D8AF91
+89EEDE485B3C951AFE3230189BADAF0652535CFEF04777F0C183489D90CADF9A6553473A18A9
+A36EAE70ACD5E815C03E9964703BDDC7706FD7D14B668EA1176E438E49350DC8807A6E4EE528
+33C6D110475AE6F96B6318A989B6BDC1D88D28C26606E3D71380CF186C2997E8194513D3F43F
+9F570BF9C3CBF688060A12885355038E9754F89DBBD90C25FCC2922F11FF1934AAFB0EA11F8B
+DB6C3257D7BA0F8E2AC7365A9FC76D3029325506AE25D8DE203D295617F85EBFA351FBCD7956
+11D6FDA7F3BF6E34DF41B13138ADAF0F570BEF6784FFB896388ECC95087E0B7F425B6758D8A5
+98D41A87B3F0075508B708675C56726022F450D6DAA8B60134BAD5328A36424C609E99B31480
+01DBC05881FD423B95EC9772B9AD22A992062736432C390F55D692C90AC64A1272F3414C537D
+FDEAF1BDBF157726C59083DD303A6E1DED50C6F5B94C61E81F9F138FD8AC67B673AB38E5CA16
+6611C6726DECC1C0647D6188085056CB939E2B1D66E25BEBEAECE4B97DD342078BAB4867B7E3
+CDBD2C68B9E7D88BE56D90573085C9DF10E10B19EBE83C8A1C41F58BE78B93040C928FED3B1E
+98F354823619ECF7C5764F2D98E958A375A5F0CA5D884389DE854F91A766295B01FF8CDD420B
+D2A52A41A0759ECED87DEAE73D27A1DACB0D0F7E4658FB724BCCEFA08B0C3D5BDC9CDD6A9463
+6F8B7B4EB66971E8C599D5F15BAFEB89258185E3E935C15CE57AA6CF4F2CF79BACD605747AC4
+EB081FC98BBF61D2623350375B860155B90EE6A159DEDCF7A33604D7E83C50AE7804E9A43462
+2239C5A7D891859D31CF7A37DF61BAB489D857E93D5C2C8CAEE4C61E7F4E3316DC35FF616189
+7D5529EB2656ABC3367ADAC4EA3342C2EF308DA183C6F40402E231586A37198970612951B383
+FBA8E8C375123429CEC97A52B455CA8B384913E1527E77EC48AE423B6BE28F3F8E0FE77F8D19
+7BC6FE350D817C8858CE5BABB5A6BC1276F905BA942A1601784CE8E8ED96DDEEE65D9EDE4FC7
+D5BC5BFF2FC3A966FD25961A430A063DF3D8766631774C9625F1CAC03C135B6B122D4B5F68C0
+659B1B2CB634D067218E127A589F87FD1EC9715443A08284837ED2BBDDE3325B7EC288992F1B
+5166EA175EFA6FDA164E8391DE99E4A88F43199C3DBD617667D6FCC2561A1642F45D76564EA5
+B0E925BC960CFCA1194F67743B854899EF834404C8596279150CC61909F367EB17924CA9FCEF
+E89FCB940710E470A5E7C9CFEBBB8B8EBB2CA8CABD973EC4D8F32DF8A39E6ED4C520BF932FD6
+7BA02EADA63CF55F33EC75216F75E29E2D6937379D61EFA2C7F83A187FF93E4F17A66CA3ECEB
+26B9199E1915922667CD1793FD0842E6648FF80150D7A0A447F5FFA2B8C36507F7DECDE7EB99
+2FEE6E9C8E32D9BD971771ED9D0B3E95190550058FF0E6F80576ECCE287AD895AD56DC8F78D1
+9FD04ED854529719471333B1C313A002D8166BB91B2983E99A09812E9BEB52F5EDA7391DA5A2
+FECE694761350B089DE41343F04DC45E1B4231F265844CBCD770EF5BE05B2F97434CAF711D61
+6613108312D08A9B4D3A55B2DEDAF47CD5BBC2718DA7D18A7079FAC6A7D4F7CB4F09D4B027E0
+5629C14EE77663D8B29EC009924B41F873E4024E092DF7343A1864C80B6EB8E4FABFAA90F5D3
+9154FC4D14438A502E60B5AF432A90C7A48C523B4267534F171FDC02E57B9EF3867758A97BBF
+9CDB99DC41758BAD49A7D780FA0BF66851B52D46BFA8B96E60BE89E4A5E78BAAB8736ABBE338
+C1283CC1D2BC3A07F982122A3289E35CB097BE9C27274BDF3ED19EE8628BDB48FD587159E7E4
+84F6F5005F22E636719F9327173693810F978816F739574DB0382222B9B717E394DA21A4F80D
+5A95C552264DFA0727FED213EEF886C149D392E900DC4DDD0CCEC84C5DE5DFA3DD5F903B93FC
+649FD661BF20618BCDAAEFBF9C71CFC11B8C68143068B78FCB3354FF5555A9774FAAE88328BE
+D4C4996679E9285A00C12B32757C74E8FEF1ED1EEACCEA315D56DF2E814F2C8D75E80D3836DB
+71C5D1CF0055A01C1EF725AB4858D73CD089B3A66968C2604F97C861A7484BE84BF95DBBA43E
+A6EA2C455574B715825DBCA643BB023B77D3CEC870FD30899E7788986813915FCD3F909E3D59
+6281B4D858A29465DBFA76EBA156B0761180BEBE2A6C218A51A67D400DCE29A3F19538DC28F2
+9971A8B01B4C27A42FD9AD8A89B7FA5F188D3135B5567C8E0B87912EEF813FB15C63BC9260EC
+3D7A6909D2295C0C31DC77B0A468CA4B7F801BB06A0486470201437ED678AFEC280DBF80C771
+823FB23A5AF549CFF74620AB2EE1EFC50EE09F4A0BB4AB05579670940D20F01C61C7461F08DD
+8560F5C1E0C73E0DBFC8532155A5F92162F05D19E6634446EEFFB764B9BF4B5E695E9B4D8037
+8EC8406C588C3EB7C919BF154BDA4A878B45479F6111798DD6FAE11A29EA1E44934C82E6A68B
+0025491A69037808D3FCBDCC7C80ED848EBEC3F7CA954CEC873F4E404A699A7A980BD66E9E81
+2BF39C85C55A010D95B9AA147E5826D0DC8EFFAC979ED602F7414DD64CBF2518A5B71AF4B6FF
+0F59657D2412B47391921252D0A723DCF2EEE67AB89F8C12D3EC1089DA75F364E4E6E1041007
+2144CB14352C56F9D8D180E45861FDD26B68A02B5A86560F3EADF5367D8B06876ED8F79BC79C
+3602569AECED48BE6423888D86C3DCD811CC26C29239210EAF574CE8730016A3AABF2BAA31F4
+8CE3BCC43DDC31DF81883CA92F2CD4A7B1E136AF70037AD22207F8F5E5EC06ECA4C9EE9B199E
+15590E9F59D11688D22CF11060E87423F3E01EF613FC230FDDF599D1277CB7FE6AAE4312282C
+4BA8A28D794628136FA0C5EEE83CC6ACFD043AE7FD985D226AE4D91D00218964C161C4A0B147
+E58A4D143917A592A8FBBA3215D1E3AF1CB952BF418C9B07A5ECA3457B591A0E9C49234DB043
+99EFCF129AEA7A96694BED7073AE4502979F2F0286085B799669DC8EC22ADCA51E92EB0E2633
+651E822F4910B716DE01CF09B631187A6B9935D43DCD1C68111B850B7F21EE142A7A48836D8D
+E7F4E63D72B515728D9AFA7B11118DAE383ADF97CDB92C17075F437FA0BDF5250C251013B612
+C593D93E8F9ADDEB8C03E1D38F56E6EC42C7FDE744866D4B873B725074754CDC10CB0262403B
+9740596A661A2DBF057144991F0A1A4FE3E316095978A88CF38BB1B5DD0FF4E8BCCF1C7D5636
+9CAD0C2EC29D56A6CD2535EF610026AD120B4BBD5151EDDC7F385B229E79B22121416E74463C
+4D5246501C7B6632ADD04F8C460C7D5A505F29BB3F45343ED5D576302FF9D8EC1F400B190922
+BBE646CD809A6BF2E0EB9E7AC66422EACFFA93876695B8E88ECA149CE738586A0CAF105CA587
+8572E58ACF6D523F2BF3D410A8E79507A0E480AF8C618FBB459AC768CFD240F32B0B69265332
+20552D8325D058C2D30B5A437AAC867CB5BB6C007717FF089C65FFA92C5C8D159E0833C54C53
+040D448B93FB48B5FF2395E4774BA3764B6EDFA7EEECDB2B9736E5D7E427CE883C67AAB05B08
+26CD91AF342E32F2179CB109F2228138978ABB9C8EB9B555C1269FBD12975929E91AEECF0915
+D6B2068C7B2DF726FEC9DA54ACBD64AA808FCE20A34EE78463C4A831E33F94A268C5454A1CD2
+E05A662786E7392B24EF94B7EDCF28428B52FD85DD03F7B38000F38C4C80BDBDA46F62B9A964
+FD0B5B33F3B8FABE28538632F1B229418E1AFD6FE9263CC220BAD30170816AAE06D54541F854
+B68CF72E08DFD272021DCE628962A7BD962564C054C0E6AB2742846899F9D0DC9424D820FB28
+9EC582BF3B56C48D32DB2768406491C837B125B62AEF198E85D6D579899EE59B53271EC329B2
+83DD4C498294A27DF14A783C517288E3B6B4CDEFD2489398B71A712AB154E55499E016D7862A
+14BFBCEE308D95509CCFFCED78FF3C55510CF91DA90F10D3203706F0592400847639F47C8A70
+D98F48339A3D7017A8C8462D6316BAC13DF9E12A49805E695A1C632C63E223A2799C84DAD656
+DA6ED692520DB379C727B8375DF9D548F693BFD9509B3028B1EA529AA6EB737380A4FDE879A6
+CC623AE8F5F992523E167791F3D33BFDDE0A516C6901A202A5C154A0E69CC5FECC0B75E61B9E
+D91834B659805E8B7BF32FBDC4DAF5520A27D508689F692F1D69D4E0B00DD7AA134C1357DE1B
+F8804FD534600ADA4790738325759F35D9DC3B077FE48817AA57CAF862713E617BF7BF09344A
+74BD13F118D26D30C1511B20327C460D270E5475371AA26BEFFEF03B66564E0E669724E38959
+73D98C7150F035FB52D8D328EEDB5C85E7EA7BE5373E514BCF881C4147DA0C1656523A95B63F
+86B3017B93AF76536DC19979B9F617CC855DC3B8FAF171780D352F93AA78C3F25A0AF51FAE91
+878FDA9DA3B094876526BF6D68A650008DC13D0F17F8445236FDCE4F725A82AA5403B568F65A
+087169993A3E81684234620F58568D2801F344F5667140F9DAF63DED0AE4AE391F717AAE8B56
+6347257987D49186C82B911A98F94DF8292DF7ECD76FF09EAC1400B6C34658B9025AC42B7DBC
+EFA9173258680D929ECBFAD99CE071C35DD8D34126A036DAB27B3F2A0F4B79A509433784D317
+7324A8DBD271401AC904E072ED118331DACC31CF4EE21D1A9D805971DBE8D17AD377FAB5450D
+1C0448C6C65FE4E8EC9B4BC1FFA74D7D0CDC6D0CBF0C1F905DB3F02B944281CCC10165CDD730
+2F4DDF57865D32D47C8C26FBD0D410E4DEC820B5D6EA0DD6B1769AC0550F15AE88C0EFEDBEE8
+4B75949453669DCF1B447821480ACFE750D13F8A3E574F7687949B525B278DB75C3102FD4706
+6AFC56C4588A258813C3C53DF147FA5F225E901A297E5E322920F131093304BB9B2895E46DBB
+1D020EE684B08C64E1A159A6829DE9510E5E985F53454EC367507D4B84B80E28133254B7B60A
+C194C776F734D6E8837CE23EDC94531AD2E46DC6BDC1E921CAB4FF785DCAE7B556706FDED6AB
+4763153EC5F4B2E10491E5E427DC327C21B26DB2AC272588FC41FC5490A102ED1C2AD82B0811
+C34CC8DB42CE97B4B24E194CAF230E58A04943934351805A9A0C5975E98C0F11CB0AE28C5ED9
+8E52CF035F823FD449436B20CC0A913B7606A6FB2CCF4C7A12714C99B60940CCFE9CE26B22D5
+DC1FFFA01C8E4A04AF28C9CA3F2A7CB2B33A725C456EFF23BB62B69878F8FB185F653F41C596
+C9BB7C7A17CD9B5A07FC405AE7E182567621FA75FFBCFEF42E7373B2B15CAE76D7C07BE16A23
+086500A789CCE988CAB9B321CF969A79132544B7D9503C7D30A4C86D8601743449D619A5CA87
+879AFCEDA5D16FE6B31E17529D17A95C027D481B6C11FE9477412DED852C15A026E36735239B
+F5063B7FDA776C1282B9F50F602526F355AC3516E5DF327C227EDD44E453B27D7074E0F9D9C1
+9FAA49D3DE5138498B0569B4FCFF2041977F69484CCB916856DF1F07E40B450C250BE68FFCF4
+D159FB8F1208EA8904567BD552116A28A95425CDA95D4FDC06E59449065B65DD2B7047BDACDC
+29A66C8FAC9BF2EFD6886FD859BB0F256B21EF2AA03E6EFA6A614B222B84B7E6BBF2824713CF
+D214DA92F04543AE0011D51A50FD08C4FE4BDFDB9E184EB32C399D3A2FA71059CFB9F6AE1CCC
+DB4CAADBAE20AE4F65BC58334164F127DE5C476EA5BBA3644F2F24F0DBADD3D1E80DA16A6483
+64C1BF86D0A76523317C7D4F46C419FA31BF86D5B700CFA640273BBB9D6C8AF13E7CAF3A2510
+01F06DC2D4C8F57AAE5A8B4E4379163D732756D3A7B97C778DC8637D06EC36A951DAC426C14A
+58DF97D2777E7B45EF2C3F9D35202015E420C5E35301AF195403F3ACE5FD4040ECAE467282C5
+1E7A6AFC69936F6D81216FB0B2E3B3DD942DB10D9BBCE24E186AD3D46B49414CE148AFAB9C95
+8E7339664510E2CC5624DB80A708A040C0EB2E48E8CC67EAEE7856DD36BA948C8A8AEB120BC3
+28BCA0A629FEAEC6419D70CB8469D82931C1B08B8EF46865819F4D6E3D2A9BA5EA2ED7E7221A
+ADB2660B474E576DA104AE298ABAD60F6607D9D03C9AF768707D5F2F299927D14BE80E258469
+066AD3C2BD0ECE20975A061977CD4A1246E6B545E7E9788BD51E04DFD285F9636C663D7C6AF3
+64ADDFD0336C6CD6A46A43EB252D2B72DF3B52050D4C2B20DA4F6CCCB1C1CA85EE1C9A5501FB
+22EB7FDFBFD0838F0359E295D3176EC8F0A2A7A262155DD2F20CD2632FFC30E4F274AF926570
+85147A75942D1611D5B0407504708CF782398C366A02AD6A8B103DF8E615126B33DA380BC2AA
+1160FA63665B883A5A4A7CE7514DDDAF8E65508B2B6FC341A00DE2E976C07A499BC758ADDA72
+B65780DD06133027E1D7FAFBD4CF7085091ED9DD98D91E4EB4BC0BD4DFBEBC947544A96F47C6
+4E1CA2BEA3E739A65BECDE6B2CF0713743B881F403AA40AEE5A726A8B54659852EA518675CAE
+5089758C77C82EFBA56DF329AB46166154F0780319347A050002319438096D4EF7F851876CE4
+07D436299F7D3A0FB6E8816C37A028D62426BC615FD635060F1C69E3E7FF6D9262E06679E415
+088687B4E65813C86D481C41B5D74E0C208882B13EF4EEAE0C60850DC1BF54075F41763705E3
+CFF0B9FFACB9E2922B40AA7209970FA5F3563D7E6E4D3D2249E7E946E97B5FA40291742EF9BF
+A2DC7D4E5EE1A25F6D0D930A50262F17F38744D7A07FA9B6DB3C4D7CC96DDA023AE2F3DDC571
+FF48135434E354979EAFDF625460CBEA8B65B63BC612E44D05CC3C3FB186403F994FD1919A62
+44E728857A54DF535AE149D405CE6C83C96A6DC117BF178E088556E12D3FD88017FD2C031059
+1A89077E0D6455E76A3C8AE37B8DF495083B9EDAFAC2E3322C07209A21B5C33AC6AF3DBB527D
+C1AE916CBA52E68C2A851EB073D09CDECF8C3AEC94F5728F202BEF1083215895FB76B791CA26
+6B925512AD89EBDB53AC81DCA3EF1796D1E91AE23E5C60DF72549D625AD1BA68D4B7B5C338B2
+1496653F61F735A9D60C437A6397899304B3EA36BA2AE138A700681EABB177D32CD0DCC8B226
+982EC3BB7EC84A831569BB9A3BF30FB4A56D947464B1F7B49DDA4621907F605A238D6C5A1F21
+439FB67080A3AA1864CDACED6A37D1FDA3E95EB8E70CB3B78D2CA77BAB36D6FBFF8CE6AB6EA9
+78C1C8FCA06C3112FA831E693BE7562B859AAE3AAFDBBD0B119392037F1658D9FF7473B2D4EC
+D67B80F2EC39CB32391E41E2F8466B9BDBE8E134186312F0C97F2ACD4EB52F835D00880928EE
+1DCA94DC6A6E25ECC61B5E549D1B8A2C130D61EA7A42465F0EF3E3AB242799D2639AE4B2CD23
+6F195D3EE06665DC3674C8CD681E0B49C7E5B95E4DDFBA0FC01DFEC2E17A77F16116AD14296C
+0825E9859CE22241EFC60ECDC3F4C56D22EE448F8263394CA1848F95AE78D46DA9FE03328476
+8058CC5A4CE269EBD36B01D04B772864E136FB076154A52C165A9A0ED6A9415474890E85738F
+C1E112B733B2CB78D73A294367C4A6B33D15CCAF851135BEABDA0AE764091A3EA5B65D0BFB32
+36760AB084F8C9C16F1E93A7531EAF2130CDB62A8DB7B42040D0A92F2B20DA2FA00A73738BF8
+AA9DB2581B00857BD6D781A2C78D83792012C83D4908012347ED651A2FDF54C70D53910D6DC6
+D2D278872C6E7D58019E8D04407A1A720FEFDDD6EBD79B98B77A4FAEE6EEE00F2985F8B674C6
+A27D04C992B7E8B53A1E621F9D3C66DEE950E1F705D02DDB78A081CFB94006AAC8105F5D3E46
+5796D2C10018F65869FF73D7A9ADB035FB37EDFFEB469D7670A13A43DF3CE14D277AEABA3833
+83D36460880D924138C8A8374AF1031AFA2654D5A118A82149072BCC38F87096D240B55679D8
+221041F2F7934C27D3F1B543B6761CD2D2D42BC27D7C16317D651C2E041ABFC027D3472514ED
+04642E58C1E729945761DE2758A438569DDB55505284045153837A29D3BFA889C6AABB26C108
+F27571D832CD930D39CFE96814370B2EA5A39376975E378B752E6E14FF1322942114E4119A30
+7CEF2711AF296AE3F88D550163EAD08B2B515364854990F25AABB23D975FC84DA81CF63A416B
+32AF608508DDFF86CC694A6B668B3F382E3E3AF223623A65AAB3EB16D000D86D663EC6031D2C
+DE50D54A55EDF6C7E47B4903C9922BAA00D2C00798CD367613F7549D9873AC4EDD3C2E8A044B
+AE53643AAE392DAC91F6D335112C2DD4B188C5F1EF1E5E42457E4C2F2D2A282EA3D2E9BCBCCC
+6DDA43161DF8F8985745E86461108E080F647C09B183ED67257381C512947CE954FD786F0B86
+A62E40327AAF77C3F5265A47BFEE2F3919A7073E84C49DB01295C730AD18F45364E2F19BEE93
+8B7C92235D9E32754139E8C2F64C738A5716EE5BF2C68D09DA48166FB2490EC874C723D6E72F
+AB7C597CCD0ED2398BB9D99159E2D4A3FE605ACF6F7A5D4A00BB9156FABAD02D727437448B75
+E6F08F1C5F17B251412C2E698CA1FD7D8D7A80AC6C7343CC7CEA23245812247F35F0F4480E10
+A1D8F9D8446EE41E435166DBA0CA3B29155146C96C05FF1FD2661DBFD9AD2A7341362BF8C2A6
+C10B91541D2E4CB6F8AA01F1C90E118E0DB81FC03048F54677CF96075EDA05B928E200E1620D
+EFCACFC777BC76E3C911229C64699560D630BADFFB00206E4DE61E3D06959B2C4486FF5DC7BB
+B22C634D8B136077E5062096D3C99B142E2D1AA6C26E58AFECDC55A8B90441C0459140363FFE
+8928C20BF64C8BCE4DD15EC806A2AC7CB1DD58E67B69A34B28C4164BB0262FF9267544A6A905
+AC3290DDA8F97CCAFC12083485AF20B6875B355D98CB5E45DFBAFD80FD63DD590A2EBE0B0429
+2A1D37C906FF3042E608B3D983DE1D829FAA8B658584600E5EEEE90FB0CB13EC9633B148B696
+30B8A4617527B0049E107F4F7E14BF421DF26B08BF193EF2650E7930F567BF3A05CF55F3BE9E
+651C2273F5DB3C4D08D9100CBF5F5672C702696D823A43082A79B159DFD315278DEDA56458D0
+B8208C7FE90808E0D0566CC2A176131AFCA80DC312C9F7E4C25A0E949AA384CE254B885CFD9F
+E74E88B40862238868C3F7D1B435DAA876B5875563C3C5BB3B962BAE3F9909BBB96997A76533
+95C7CBB41D74347B78547085368A5B2D18CFC3AC56DCD1D9D5A53EA63F4241F1B35C15913F4F
+773A48F42B4D04B594F33FF14C0B16989C4354C2DB18EFB3132AC64D02C86EA8198461F700B9
+8BE371A968C0865BEE44E8DF5A7AE98B738C034CCF07E1CAE4FBFB8A50C9C31362845BFB67E0
+0732FC33378066D3B8F1D69224E627103CB706AA5B6F3E4DEC74445625CB052F5AC48681CD3B
+204574A1041CEDB74A51D4D21B37D465593A7E8F7AC1184C5EC7AB9875852D88E15AA1C5203B
+BD9DA15C25BF2E908C97678DE40D9A8226BE09A735156D1AA028955ABFF46DA51C07E8E1234C
+9FD06F9B54C0E8ABB2AC28721F5CE5473077BC6A4AFD0EC98F4FC29BCFB29BDFE99D931BA28E
+200F5D58136F63C5D18B4917F79F9650343873C44F8F9F699A0F5495237E2E748B3E5C3DCCC5
+9DDAF98E1C4F5252F0C52D2BC4399510496E4844A6392F984204282ED84398E7C8862D9462FB
+AD609A8C85945B758B88E37A2A412380B6DC884BCE142DDEA569227FE306C6B4274C07CDCAB4
+B48EC1806E45A27109D0B142FB3C84019F4C1C275E8309696F966705B06292C8F8622FE8DE52
+6C591659D7780D424E8ED1D83F59A0289DC59556A84B5EE4BB34DAD12A92974CEF6901517285
+42E222B0C32B05B2C3D819A40C4BFAD0E080E60AA633D91ADEB117434C58A7BBB334503FB9D6
+85166DA7425F35097878325385C28C2F1B10CE6AF452AE0FE66C89A9426D1B25196D06CB9271
+C6E973F2FD6722B1EC18162175A9C00CD155FF3EE679FFECE6889B2EF40D682FA2972EA03622
+24A1C43282A08753A5205D3BAEC16DF17AB6F6162F9A61292F32F2D9DA34A45F3DFF377848B6
+E5CAADF938BBC92D8553556817316F4F8F8D54983D8D72C2145D4D83682CA5D528867E8CE66C
+050FE52B0269FDC98E5B48A185B979B45CCA3D99C870B1049461007CA15F4DBCE8A306D460D8
+F6B44A2506FD7217F11B69A0077D3B7C2F016ED954BA5E58C9B51750E4FBE8E88E4B0AD59B1B
+9969BB9494CC19C030DDF9F586D80CDD03FDA4D655D90AFCD4CFC93ED8B70C13FEB1B3F052DE
+FF4EAC734E8C1FA2B4AE1423E78E529443074F58E3F5D84DC1E8AF60866E49AC96210FB526F1
+B4DD10AA19C53B92973CA6E13B60D319FAD574A46301A80D69737B9F60B4466B94F4AC8DF508
+0C92A7359ECF6883D87D1BD45037F84CDFC93F9CF0B7D8D8795EA37B8A0CFDDB837D8F9A2327
+42995FF55E0C38E2CC9E57E10C5C5D6E9EC93650DC90A82F545E54C66133F9381262E21CBC52
+CD865192A781BEDB71AF318DC25239D64CF458839FC2C809EAF85AF1AD027E0BA8BC70AEB164
+8F345E7B6043BF59FE71C0B20F8BD21CC93C9A426E80D62AD487A60654EBF0E364D99B90574F
+072C52775B239A0DF62F256F44870302D077D114DBF83715E4A07069104876317FBAA1F7ADF9
+F99DDFEACEDADB48B397B7EB2A37E190729F6D31474F4F6E2644C697E0FD8836DE337E05A8B1
+B8CBB7A5A6BE292FDA3FEE754C5F9FCCD6E4528349392FAC86F7E6BFC953ED5378B7C5EA0D8B
+2AFA34DF6360198E5FC5ADFEB120D9FC498D8DAC8644E9643AF39DA434BDC546FD2BCAC23511
+AB1687B7943F299285D071115B4CBD650F356E75F478C5505A7FF036BEBE3682C3A00D047626
+1791CF08EAAEFA6F9333C66CCF5C9E59C14829B853A660F3FE3CCA0F1F869E3A31D089E373DD
+A04D765D25FB0B6BF205A9FD881F00E99113C5DBFD2FBD7ED608C32E9D51FDF6454557DC52D7
+2EECDEF0AC2D8E89706809648515BD4037379C6057BB89AC4B6768DBBBFB672329D3C21036A4
+804682C6CFAADDAC7723C715842B25B03FA1F12A2291125F34EF7DEDF897EF4A7506F804E337
+0814F4B62612B35ACD43A33A3ADC76815D29178EF7B6D2C170FCC1AF75A9157239DDC78A5FAD
+4B7B759755F63031B1A7A6F6C9FAD4CA3B4F36E065E3BC3ECE67C990411940787058AA52A00C
+51E29250B624EAF70C9E236898B1E2491256E9C4399ED8ED5B19F5941E76F51B8F16EB0A96A2
+9FB928E35ECFDCA1BED3B12D5B5CA1D55BB2E4AD69FA1BCEC3876142B7A194388538F5BFB028
+402E52505302F482BFA1D6C2492FFF4C7C882B6260215B52279E25E8D797222A2E4473CB30A4
+489A6F2C566A79E9FD940BA0E15C52C8044B4C725358C667522E784194F87C543D9F77342757
+2CEF02F46AACBB4EDEECC15C3E813C67E68EC8485112A1E19054AE9B877B857D9466E69E81F6
+C24BA540A3D716F2E92659D252692C1D5DEF79BBA8C6A7BBE9EAA7CFB7721810FEC93F176E8B
+9DBA3BEEEAEFDB577C14D52D2676566F0D04DE6931DC8ADCCB09022D30B84E9703CE37845966
+5946CA535D26B3094D1B493A5695DA6DCF79527B841194790AF65EA24FAB98EC08F519743248
+FC600029F2469C8FCCB2B27182928BE3F1AA4405E14C7AB842A370E45D48AB1EEEC9168825E9
+88147928854FCF974821B19B65D9FFD57333D3EC10B21588F04F652A218D8E5CEC3ED25BB6CD
+5EB1789E3CFAAACD95B72455C5BE8FFAEE0636C0788A587C992E6D1FA1E2D5EC8EEA82B6F75F
+413707DA0EC878352E92FBB1608506CC3A4D1F676D364524C8B72C3AD5867E03B7642F335B4E
+0DD6B59957CAA5C0131C8A58E0F95EC0DC6D75837291A7C1DADBE3F92642D2CD4C0EAB79CC23
+7BCB33E4631BB90B0CE4D63A936348B7CC37AA207BCA6410F010890F23F6B3F6DA3C7A0643A4
+44D2E3D226C754C1598D72AD25C25BF5FDC1895E6D23B9632646EF4F314BDFFA94971BF6FCCF
+20EC37B31520221BE10025C386A8A1B3280BB47FCE113BB4A5F29AB70059611EEAB412C0A969
+3E30993FC944B38B11211594B5AD84B0D622255A372F56A150BDA57451FCF52F3DBA2DF25BC4
+16759E32B7B19309C1FA25AE1C33D668145F2E645107CCAC86E741342CA4301685936E12234C
+8D612F9314090D5C9209F5D154E678BFA3985B03CE6635AB80B8ED2630B41D7D223E6ED1625B
+FCC417BBC3C9E5BCA6256260A06923EC1B9D2DA78C8B55B05CADB5785C838CFF582FE167CFFF
+88167D7FB3B90B276F5D6F78E919FEBE8F9B58915129CD7AE5CCA6CA9885D22CF7084994D101
+B81A675D0314C93041B5DA1899B36DA5DB30676B5F1FC0F3A98A33916B47E0496E3DDB771098
+9AAB7642A1F77E5CF5EA22F75432DCB7DD2AEA6FC7BF8C9FA07C7F28F7D37CC13D3586D4EB49
+CF579A95DD3ADE1DE06869687639267085352DAA0A19E8F95E4A7E31FF0D17CC87373690D263
+4852D465CE0FEC652FB6D710163C738CFB030BD4935EFF80F7DE7D7F06F0FDB1F4C10B07938A
+C60C74E442E1F3A6BCC8BBDC7814B6E710C41AE1E157538871AFE3518CA8834A4B4DBC59CCCB
+6DA74715ECFA03E98289479C36D00DD0D125B12F63B45E112C7AA1C5E60B986E74E56CF95C80
+198381207AF0CF5F17A6635E2AA89293E67D2C549D110A2A57C02C581166747BA758DE5D5F10
+686029D7F0A82E7E4889BA7160762431E00091524EA5B12C9D4493F0CDCE0B4DD38EC792B4A9
+2B0DC4539A51FF1D613E75D981BBB9C20B3D53400AEAC4970FF843EFCE5EB250C1283AEB8315
+73AE15427928CC2A9C0C3B04B7CEF0DBAE549AE82AD2FAB68F5D7463420EAC2CBDF421BDC88F
+2A6B10521913C6BFC6258598EE979570E9E555F475B1B26721F94A5462135E9705FA27259BB9
+564253D058772483B35A487ACD624B8D9FA02EE6BABD73D308EC29A30CC32BF271CF95B3B070
+160E31B8649192444A80DBEB812D1D4F4BE00FFEE6BF7E4CEA75A1142ACDC28EE252228DAD93
+7A69B3580830CA904CD6F5CD01977F6FBA3A13E89667DDFC777F48DB2736D78856BAEEFC2E41
+C82C82466D361AA2D02FE20568F584088F4038B72E10695253D8E095DE4288A48605FF431809
+8801CD4FCA473F8C3316E8FF9CEB463D3AC98EFD0E30EB743E250B974E758E86DF712E13453A
+E6882333F16696A670D28AA612FB9A03D46C4A866155D21AE216E7017F06C6459708EFAA13DC
+465BF43EC202C8F556945FDA8F0E06A527A368C577BD0E5857F35C0AE8D0401EC43D1FF17760
+A7D9893DBBCFFC86BE0747E7E6E07736EF0146BFF75DE5715E45F8EE823070433000BF015DD9
+44265CEE7BA9BDD434A1D78E419608A4B19C0F74CBBA354BBCCBC13D0BBE4BF95072C69762D2
+318D2E637A918ACA900ED1D59011198197E8DCD7D1CCC1F43890453AF9F70F821234C94E6F35
+5E494C38E279E28C60BCC6C4132405B8CD1523A1BD77A4CBFA12C6009F5669AE3363A405EEA2
+8E7A28044EC8B461B342654B2C24D50F43CBF0887C60C225409A289EA660B77F2286ACAFF8C4
+656D4A369D39875D0F10436857033D2C5AD5E2619557B4F2C88A753249C2DA0552BAF19916F4
+6F7F3A1F1356AD2F047B55F002D0509E266C184A77C6FD56071A28089B1082C0E80985242C8E
+3169E754E5CAE6AB2EC06B5D8F1189E325485950ADA8A30F12BE6872D8393BA32C1ECD6A80DB
+0FDF54919E9A7D9DA15C1BB823881033ACA8C21F3B806722F5277AACAB4A4E80222B3536E50A
+2E5BEE34484310CEA6573B48F992D2B361B13F3BBD14A1E65C58B6D71CE393C3F340FF9806B5
+4D82C04076AA5A4343E53785B3BED4C8A78593988BF3432A217AB637583E2898257BE5EAA11B
+84231F6C9761F74DC75FFCD351F3C4101A69C98877EE17AD11541D7F57F6F5293CB956A7633F
+541EAF253262699FC79E4A396C5D3289C3CAD0C31AC6CD59E794C80617E102B306EAD89EA036
+85508781C79645ABF8BE697710D4D5821D1512467B66DB602A2DA5E46F646D685E09E0528C47
+9C6E9D6A5503B99104E0A5535E0A62683E520063BF2698701896B39D26FE9D2FF2BA0BAACA77
+A75FF905B3CAF7C7C8A5243C54469EBA42D0ECB15AFF53770C93A32B18205D2FD601F88A36F5
+3B93CDB0A247C4E5750000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
+
+
+%%EndProcSet
+%%BeginProcSet: cmr10.pfb 0 0
+%!PS-AdobeFont-1.1: CMR10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:52
+
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 161 /Gamma put
+dup 162 /Delta put
+dup 163 /Theta put
+dup 164 /Lambda put
+dup 165 /Xi put
+dup 166 /Pi put
+dup 167 /Sigma put
+dup 168 /Upsilon put
+dup 169 /Phi put
+dup 170 /Psi put
+dup 173 /Omega put
+dup 174 /ff put
+dup 175 /fi put
+dup 176 /fl put
+dup 177 /ffi put
+dup 178 /ffl put
+dup 179 /dotlessi put
+dup 180 /dotlessj put
+dup 181 /grave put
+dup 182 /acute put
+dup 183 /caron put
+dup 184 /breve put
+dup 185 /macron put
+dup 186 /ring put
+dup 187 /cedilla put
+dup 188 /germandbls put
+dup 189 /ae put
+dup 190 /oe put
+dup 191 /oslash put
+dup 192 /AE put
+dup 193 /OE put
+dup 194 /Oslash put
+dup 195 /suppress put
+dup 196 /dieresis put
+dup 0 /Gamma put
+dup 1 /Delta put
+dup 2 /Theta put
+dup 3 /Lambda put
+dup 4 /Xi put
+dup 5 /Pi put
+dup 6 /Sigma put
+dup 7 /Upsilon put
+dup 8 /Phi put
+dup 9 /Psi put
+dup 10 /Omega put
+dup 11 /ff put
+dup 12 /fi put
+dup 13 /fl put
+dup 14 /ffi put
+dup 15 /ffl put
+dup 16 /dotlessi put
+dup 17 /dotlessj put
+dup 18 /grave put
+dup 19 /acute put
+dup 20 /caron put
+dup 21 /breve put
+dup 22 /macron put
+dup 23 /ring put
+dup 24 /cedilla put
+dup 25 /germandbls put
+dup 26 /ae put
+dup 27 /oe put
+dup 28 /oslash put
+dup 29 /AE put
+dup 30 /OE put
+dup 31 /Oslash put
+dup 32 /suppress put
+dup 33 /exclam put
+dup 34 /quotedblright put
+dup 35 /numbersign put
+dup 36 /dollar put
+dup 37 /percent put
+dup 38 /ampersand put
+dup 39 /quoteright put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 42 /asterisk put
+dup 43 /plus put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 47 /slash put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 57 /nine put
+dup 58 /colon put
+dup 59 /semicolon put
+dup 60 /exclamdown put
+dup 61 /equal put
+dup 62 /questiondown put
+dup 63 /question put
+dup 64 /at put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 90 /Z put
+dup 91 /bracketleft put
+dup 92 /quotedblleft put
+dup 93 /bracketright put
+dup 94 /circumflex put
+dup 95 /dotaccent put
+dup 96 /quoteleft put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /endash put
+dup 124 /emdash put
+dup 125 /hungarumlaut put
+dup 126 /tilde put
+dup 127 /dieresis put
+dup 128 /suppress put
+dup 160 /space put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 def
+currentdict end
+currentfile eexec
+
+8053514D28EC28DA1630165FAB262882D3FCA78881823C5537FE6C3DDA8EE5B897E17CB027F5
+C73FDBB56B0A7C25FC3512B55FE8F3ACFBFFCC7F4A382D8299CC8FD37D3CEA49DABDCA92847A
+F0560B404EF71134B0F3D99934FC9D0B4E602011B9CFB856C23F958F3C5A2FBE0EF8587D1F57
+74879C324E51FCB22888B74F241550D7401EB990D4F3A7AF635198422283CAC1B6CD446DDBCB
+D915DB9BFF88844E784C6BF7389803D9450B0C21756A017306457C7E62C1D269F306BD3402E2
+66DEFC3B5E7D8A8D2F5BF0FE6DDD40D07391DF4FAD4A6018DCE29A2B8F692B29F2023A7C0E66
+DE8ED85C14F1F8492167357F51A7E84CC5D92E0FEE4D81CF7FBC8DE52D2E7BB57142033993F9
+C08C315ABADE8DBC4A732E84E142D3BEE51557910E12CD8AA37C459A5E6B7F5269F59078ABA3
+BE4641A11AC48D0B625C8325B38EC08E4C9E5E7FED976A5650D99D82114F449B9CA14C4EC957
+702295A39A93EF93F61899B8EA06B092C3C1E503E6E436E0A9FA22576C8930AB3DC8C20F5D82
+B69CDDF8FF4DACFA9C54BED5A3AA3EA5B129FE96BE632843B9B6BC91B615581A985DB56B1E01
+CA60EE69CA92CF5C0882ECE62EDAD3E106D835348822400F0B66AF658F2AE56ED08F8B001057
+1807009B73AB12A8CF14CA6C71F03C2A48C500F9D62266AF154A6375FF600D9BAC3F05CE3414
+2D6867A79581C533176BB2F3117336671E2E44638A97167E2EA9644E31EA16C2AD2990EA33C5
+4001E0C8156E6DE8AB6A4D40A7137BA275F39589FEA2E2DB8256ADC103D6F9CC038037A47E8F
+D469C5F98A5E3C15BD4ACE40D340018B1CFF7D1ED8ABB0AC57B5B5A2C20A51957B96C453EDB7
+DAE5AFFD91A46D938FE0A13363001D844DED4323F1EE6D30012AEA19B024A552315505535C85
+DC26BAD31E09C50E6512802976D298C4E90D0044C362E6BF3AB362A454EE93DE25CE54411090
+C29E9D75C80CE26A84404BD9DE3AEE0E3F921AC587F907572B8354A5C3165EEA7E8B2BA4E333
+802132F760B41A900C698EB3D2738BEA0AAF7AAE96A558F08B61AEC7C7D65B2889BB7B99800C
+FFEE5BA19AC90FCE11437BE1DDFCF0BCA5670B543B9644A71C8726D0C1005ABDB96F6E0CF7CA
+AA3195017CA81519151C2C0B04F81E717C0691B63A76E9B25329CE2625B711CB7BF99D23EC2B
+B5EC8AEFB8C1A3B422AD617B3DA4D49685FD44CC21A1FE5E1541163AB3E1594601D63C7E9880
+1D7746474377CE93F81404F3570AFBD5DBFE77578605917AB96963987E6EFC2D3F99FA56ECAE
+6422579852567F90CC90E4EF6D6F71D1858270205477E221018A375CA83C572B3F972C5181D1
+8643CECB04909D84CF767174B3C0C8EC69BF1E9FDFBC0FC7ED97EC67D878EA4DDAC8CAA522FD
+C6932DF721B81AF837AB56B547D4799241310D6692918FCF8A46189A78D6638AAD7CB4462D87
+74EC73D184076595C94C0B4A8233CD34F2D92F6FF94F941DFD589DEF2CE790D5CB2159B95333
+8C7384CB68C11779120A68BFA20B993D8C0313987EB96A2EAA2C11CFD838E6AA48A89E6DDEF3
+FAE1A1B078BE9787140270556A96E2725A8CF1AD46FB52938900730154AEC60F544C3D49F176
+3861F54B46A3B70315B46EBE51C42FABEA87A5339ECE2B64270749188D73A07E0E3866EF9AAE
+A996FA92AB443C08FB8A840DED26BA68E94CC23CC1F6968B0F3C7E8F4FC0C5CAD0F7A332E7F9
+55287ACF2485539C7B652F7A29D9E4AEC20A8E023AEDE26BD4C761BD3561269FAAC6FD5A651F
+FFF9211F8DF220994DAD6D105A92D5794CF2AA526B2143C7150BA584A2B597F6982403D93073
+CB066B569BACF95DA04B4202BD24059A8DBDD3ED8AA9E89B2788F3B078A81A557BC743C12A1E
+00FDEFFD030C032E81DE3142A106C0EDE1BC9D566440BCEC4260295CEACDD54BD0E25F6B9DD8
+FAC41F453BCC731777E1E6ACAF37A8178D11BE1BEDD6681815F3D5EE8D240B7CE9B14FCFAFD5
+04216F26DC2827FB0F6158416EB24F8BD7616EBBFE9378718824CC6E51135F8F489E9A55A0F8
+40608A99A32EADE4251F27FF86EC7F324DC9B534D7135E30F2EC1B6D93D7DB919651E03F30A8
+82F2DFA457D307F17751532AD70E632A04A63CA1A507FC6AF4073126BE0127D86974B426F489
+FF62A53C1986FD048AD76454D42BE16A6060101239B138BB638765C46EB006F7F8DD312337BE
+08D4381272FCEFBD74B7B2EC098B436365586A832721A0113B2BF1D853FA8B062BEEA25CABC6
+0998CF4D38B49A3F4BCB372198A196C9EB6DF2CBE59A59858AE212031C9AD7FBB9C3E8E9E6DE
+45DCCA521F3AF361282F7B3EC507C8B3AFCF18B9678EBB2F11C01C9DC3C4FD3134C5A3DF6B6F
+4C75EC985466C4F505847F1475C91E5D83A6BF754837DA02F9E868EB0DD76EC4D31C8B1ED935
+ACCA73E1CB9B4192BB0A853F947228C3064E8F923A9133EEC9C52C626E29689DD54FA433B970
+2636FBD87C5D81C4F278168783509D5F4256C77A855C97A48D18DE6EE1D47C7C33E9AD227ED7
+02F120303731BEA6F3055D764046EED36A06C75855A928084C5773168AB985DEA7CD767C780A
+91E740E6E088CB93D43A489145030221DE0E1B2DBE954EF414B9568F3B1C5329F5FCBEE927AA
+23309AD22E10F9349B6CADE7A090D19B9460405CDEB89BF1617B2C297AF5629458235F1B8C95
+F5BC442DEBB34DA5D20B11E96660CE9E5CD19A84AA54F42B106FC87C7C0405B0CBBC249950D3
+A7C353D691D77BA031C840C8F43A220CFC749CE34C2791DD627CA074753963D2E59794496D55
+AEC96FFD48EAFDB29F8ABC8D91932DD5B01F65EBDA034BEF3C7219E097670621058662C5BBFA
+A939DEBF999E9F68E5C4E64CBB0774A9A186E741346103865FEFB088AF547545CF7763DA0664
+96986377B587EFCA5C9EDF22EC13D1AA6F483C4A0ADDFE395F83534D7BE5285E6A207D53A8A9
+60ED89E9BD27AFCBBDA23B2D9876A8D8CFCC299990D521E076CF8387D514570871376C21509B
+95EA15CCFC7278851F14DE8308B72E111893F0338488BCEDD0F2F8EAF07326BF97C3727459EC
+89F8121C96A45E3DB1C63D478D0A6DA5F5E6834938EF1CA41B910F25A82F2774E3CAE9F1909D
+BE21EE8E003E27B84C43B39FE247B8E19538648F246D325357A246365B9B2B13DC68CDD7E44D
+99D86C642565B1FC376D2E530048B27A7C44B6811719054D3AC99CBBF5665AE76F11E2781B8C
+040F73454BC794B1432E6C3A58BBB8CBEF345D3178C8D01D6B26BF7F485A5C3BD36DD01F39B0
+34E536ABDC6632EB4038FCCAE0453E85B3BED8C3D4620A2AA2DABD0CD93090E9B8E964C491C3
+AEE45B592E4EB12970647E2A5E68BDA429F53074257C02975268F8C28F06350C26646D658008
+FAB0562F40644EDB0FBAB79826B16CFFEF1302C8A13173CC9CF7C8FC906693E486FF096B2D18
+E96841A5FA8A34A5B4B68462BFFA48102464DC22EB50F1F80A26E929D4CDC4B90589266915E8
+433D46D433ED8920543777360D25546794CD9A3A1EACE8AF188CC18DDB9DD1659F9FA462A5AC
+E6A6AD068140356E8C1E48DEFD171947F78F086C6E267FEF13D16EE68D0FB0AAE589F7E090F0
+88FE80BD6CF8EC0EDD28C735748FC6E7FD421E33B16EA6319937D2D63A94AD76F95B61813DB1
+81A113274D5F3B4DF5EE90E69FAFCAFBE4466F5D5F48EEA62A7CDCD4F9418437707F706B290B
+86C30FEED99522875EF5E2D491920983BF4E9F1C71F20F1B9645E30521EBF2F1C9010103C60A
+9A6DB7E6297F7C3E29CB150307FB7A1A1A94710EDDC6AE88742CC7044492DD7A217583C99A6B
+E7B720246FDAA00683A3B82EF6BFA87F2FCD741AD8BBA68B751740435DC6AFB1BB88D1593DB1
+52CE92C19E1AB29C8E8FE89477CDDBBE29B8DCF1EA6F70990BE9A0425000404F2F5DFBAFA35E
+70BB87066464C992343E8BEC66EF483DCE474F3ED7953DC1F6BBC14EB3495704D1765D0B3285
+A05AE494342F6B70D9A4241291B3147C77A8AC0E08E5BFE60C8B6E2048876A6CBFAD8EFE4860
+95DA764F4AB9E4D8153F89BFA2D9BF2759826EC18F64F1AB083949F4BC127411A477D4C24D7E
+0FB0C96A96A31386CC5892B398D48750FD09638BA6D62CC685688E79AF31F13B744F395984B2
+0AA483FDA558C6A91CB9AAE9053E7A5B5B8659BF0631C543F4C370FFB006290353908786BB5D
+B373233C12F3506E2C4DB0D59C1EA8EA75A7662B90C4AC1561303F4FB8536C1534FEAE4ED772
+DCB49734F5285FAFC99FBB081ABC3DBE87180D9BDE2A844B054D8BBBBEF5CEB39F5CADE252EC
+6164A74E75625050CEAB8FD8D8513550D4420FDFE6FDDCBB816E204115614FE82CEF36DB23A7
+DD31CE6FC923B575EAABEBB5820BB2739CCBB41BE2A4A95CFFEC9332DACF05936A3194AB4F77
+39E5B4A868A7CAD3B1D940056F84B41E81B072C02C0D0BDE7C64DEF54B1097F68368AC0B39E0
+DF5E5733FEACF02EF12A1CD0ABB0805C2F7E7FD7C824D9B348E893D68F3F31B807829015C54B
+8D2AA7E8DAA14A364428F3E706FC649E274E47914452704B1BC56A41CAAC736C8826B7BACA1D
+4FAEBFEDDD0EE8FE3BCB53EE291356B7A4B699C33CD7EAAC34E3B92E7F3ABC32852453259908
+74E34513647D521ADA13F83584CEF20DC503EB352BF881AAD4C00894CC581A819CA7CDE96A9F
+8DBFC22767B215141C8677BFE6F1F0DEE4254986AE871F87BCCDCC10E2298BBD90A625337936
+3FFB2B093C2F54001070E655E9C4CD389266DE373971BB763279F9EFC4E5A223990153618C66
+54B5740049A3DE2A80D613CD5AC5BACD34315C43996D1A420DDDFE7365060EAC81AF060B8344
+3FA8176CBE3F4C2EA819B493FB5B4A2E4A0039F028CAB0B47FC70F178DF04C7CD4DA22BFBBE5
+344C9E9CDF1020AC1A43C8E5B9D19B621565A6DAB2B1CB6CDE2524B33FB1DA6B5988F5BE4E73
+08A17C73E406DBCB51FEB3D79B84FF8B0284F7EA92BEB9CBA6CD5999CA7DD20EC02E000FB48C
+DCA51B8E747C0E25B28431543D9095482657364ACC1C647B2140C502623F7B9E3F335C2E44DB
+33DB82C01AE27AF66BC2284971A5249911D897263210DE4A9A65232738D83D10AEA8C5D3C687
+128B64EAE94D6FB30B7BA9105BA8E01BC9925C312CCD8BD273E904D8FF13F4DF7EDD21C23D0C
+09A32A4C90B0577ABE7AAA53E836CA60B1697621049BB36F8013026D77910193742725574222
+DDD3ADF4E872E6D57C1DED571A1636893DD7F49D8280233CFF4339B075628AB591783783548F
+17134E69EC5EC25B3B8036039DA276BA1507649E7DF1EF9E29F0AF07BEEEA346D470B4F1DF92
+5040602539BD1D8218384B53BDF16C74A1A6BA2A7871B67E06CCC015BECF2F020295E27CFAD6
+2D3EB7831922FAB24780FB158C21E769875373606E1BA9BDA9F15352EB5413FFE162EB2AC194
+4BD7D980D232A2F3DB3CD38390E0DCE3241113CEAAC83EE29B2980EA6DDDD4EF5727024E4343
+AFF44318AA1382662A78A41BFD6ED98264A6B0BC629CF924EA0A635B0885D682C26819043E39
+ED44241D4E8B50AB92256F9431A8123117D77891AFFE4E2833BC0517DE287A747E88409CC30D
+7D098A4FC80C6D91534304E7FDA873FEFF704EC1F7450226F09D5E89E245622973D9A789736C
+71E6651182BABE81ACA969C62E1458FA67A3B9D38CF364F383E719F7066D2839D95F262F8A5A
+F87DEF903EC3269466519E68E857088D318839FD0B0E51A6D358A93A543E2401F57FF7E970F8
+BB7BEB37BEACAA000EC58DF62D2064EB45A81144C146B744B10406EAC2C1E350E2DC328B6A83
+9DF820B289A84167B404BA1FC63E453DE7B58A9EF959D7E2FC1DAEB5CE90A1DD935E8C5D7DE7
+E2684FF0502901BB451FAF9ACB439F548657E3BE938E7A2B5924DDA2E7010CD26A181D84A5D7
+5294F6E56DFF88F3C207C9D457CDDBF2D3037AC9A93CE9D53FA0CAA4F21057762954580F0F2D
+47AF43D5D7679A9D44D45D682EE73493A2B8C390E24EF27C84E701C879BBB1FAD6BC8B89BB27
+959EE86BE486786D1C81612D9546AB59D5216367C027B5B0F51A41C9AE2778A04965A846990D
+1727F3F3E09AD0B913C9742371AB5669A2CF4863833A19CE69FF161B1D6BB0CD61272CF94526
+4584ECDCD290E2767F087A836F12AACBECAC49C3FB28A605C6220E8233EA2C9AEFDA87EA2CF9
+D3D52FD6D16612AD07279DDFC4F20B59C905A146B1F4A51547DB82758886E9D3609B495BD941
+616057E460B94856191791A2D16B90A7C33534A9DBAE17C96D68E009219857FBC92EBE189875
+EFABA56704CC9305DE0D32C4CA5293B306A4EE9DCBB131C128626C4171EBCB2DEE830B9BCB98
+B4FE23BC63C9186C21EB7D9CDFE2E685399D57D6D1A857C11FFE47F6D0BB79839B6C88702EAF
+6A59BEFDC8B35A03768AF411EA16C277F7EFBADA006619B31CD2EAB657BBC8CD4A44340F4D9F
+D34007ADDDF2DCAC3058D22267490E90657808CC716B7EC3444638215495A7BF077956F16EE3
+053864EBD2EAE7B210EA370D71414952F2076D689ABD98E76030D92E4D49A79734FEA3F05719
+8F8DE62F64468D06D0E6443EEE3F2677049B08E8A09907A2785D91C009F8FAF6F1DF1CC39D0A
+E11E8F1C939A0C13E49A448E89B0EDA7CCEF06166A8449B358B0C661E40A7935A6E4F866ECE4
+23CE4C978CF749F3B2B8AAB56AEEEDD498DB77143F77B4FEDF5C6502A3D2AB4D0BDB8EE456D7
+DA3B9CC800DA8D0CCAAD981DA5193A528C7B5628F065B7FD1DDB0FBC4A74C32751E8B4747206
+8A3A6F380CE2258D33FC49780EF2570FD279BBB54D4246F40CFA9F13AA9E13C6CC030DC19960
+115C2DAECF52027F917D3D9D44C60B0B2D1030EDC6BB055926CCC512AC2BAFAE7C12D8ED487D
+D3901FC2842D3A7A69117A8B82292FEA44FBD40BF6C27686EAB94A520F63B77B82D5425478D7
+4B5E4E81A8439F560B1CE7C626E51CC3EFB877A9AF37BFCC1A72D40855995DF53B3F4451CC29
+A5600CEA6B2FD2BD9DDF106FB7B6B6E19477426212F3B5C25DCB1B777B643A318046E02ABBEB
+67201DD98D892D6E13B0853CC206B62AC7E7D386A77C6C9A3817FFD5009D515EB5F770DCA0BC
+4D9DE562EFDAAACEDE34096EF6DCEE08C735DA36893C41592443E0B69446B93EE9F758EB75C2
+4FCC4E8193A1F77999F2D4395E1BD24909CB805CE3A26A47ECF376A79F480C9402DCF3A86BFA
+971DB7C977F813C21AC8C071B6F210B251695A40B735D7F8E27F9DA47AF7FDE2A6E7321488DB
+E7555BA82E23FA2DE3092227E1A21C5E6DF4EC83A0578B4E99FF377C9E655D7D6DE412CF0F67
+D3ECA45624BD1AD4EE76AAA5F99C73A1FB470C8C7EA472890E1436BB51FE764F95810DA0C3FF
+D1C3136223F6610F3B226978B8F9E35C9B09DC863C05DF439717251910A64E4AFAF2323CE1D2
+A168DC57CB1F4F2F9D24071F49444B1A5C6956F236734816FA3147656FD7C5F547748AF983E5
+529FA4787E540BDC4023377A7B7E248A37550CB0FD519F30F1BA3A323D171612F802068AE4FE
+FF8D067185F9E5211B1218656EFFB8762824E05EDBD304B71678B3C4808F7819AF193B247D3D
+7A3EE51986157E6D101C07A521379A097751CC6C53FC6AA6519E2D0093AD0CCC5145F4D788F0
+46EABE997100DEFFC6B7D79BEE09A92E34BCC15124D2405BB614B4E265378126544D041C4A16
+71E65832930D6F15E11387F39862F9BCD513CC611A9F9ECDFA53175DADF03BAAF5C32FCCAEFF
+3446E67A62D3B15294E426310F64B6509E88D3225DF909BE2C73A9CC8CC643645B394CC3F5C6
+1FEB91F1522CE9882A60504C14C69CE7089F3EE5B3202D3E5C2C2A98B8A4C8655A911EE03DBE
+72E474EFE0A0B1FB9062E474DDAE008B0ACE5016AEFBB40F157B9BF07ACBCA319380105AFD61
+5DA19C9F932BC8D14480F6AC4E607FD4A7C34AAC43CD26301EAACAB8A4DC8584EFEB56A2E569
+5E84030F39501223DF87FD3F16D3950713C483D8164FE2A180AFD985C11D55A9E22A61F0C5FD
+3A0036DC51904A84B07D409388B897FC92C1C91A971B2482E668A27386B33494F751B5B9EC4C
+5ED765A88F5A675960AA7F644E77696BEE684E098C69A8119BCA27067E52E1FA95C3E54CFA56
+8FEB54B92C3A8A2DA2CB44C9DA1DA7BAE1B05087D025F767658D885E89D654620C2827013ECC
+B38C7021F83863313BF35116AEB2669FFABD5F1F035C23BF0244099A32D2FD13EE00C09E30EA
+3BFE334227C6A143CB716A3C584B6ADD52C6370F7BA917855F2295B9DFF2BCA64A0504D0E557
+861EFB856A19CE99B64EB7EAD11C2474E79D5EC30DE5DDD094AC37D8EE50C4F4D39E32E284B2
+F347848ACACCF519272AA1FEE3000AC3A495B54385CB50373AB7B790B473D0449B7622AD526A
+1BAC985945964D6D2B05089ADCF9DB30F1032639205877D7E78DB7F9B136055C1451663CE4D3
+9FE864E02B1339006A1065FB76C6E438EB132629AF5E1FCF6022E608674E3546CB02A893B558
+F3B2C76BD0A897B4EDE61A21B8F6C34FFE820D66F3B89EDEA86E13EF5CF0E33E82BAC2B4CE6C
+DDDB572ED1C9AD69FF853ABC58C0CACFFC0D86D80D7C8D10139ED4C9DDA73C4B56E375CA70FC
+E18EB1E322F046A4A44AD7F2731BC2059E391688C03B86B305E9BD9BAB8F3D1B6EE52789D559
+A5200AC84183FEE544DB210122C74BB2CA648599DB3CD1AF261567B84AEB332F0647288F8F8B
+01D5068D74D7E89472D8DF3E901F6B523FE04C519843E0B730F403BB99CAD493201F950E943D
+B95FC52B13A3AD8CCC6478D5CBE5DD019BED1ACE4D02E09353E6E31B9A9EA9C76D89D9490D71
+3CA451693D235A0C8B0A3DED5CF2A846ECE5CAF52627ACDBE76CF57A09CF6768D0A53906B15A
+FC5183B9DE1029D19E64B64BC2E075B536663C524BFE35C9E412A7C0D23D316E0645BAA41DF9
+ABA61284F801F7CB852F49B24A96CD4C743F9B1D1A69F3E30808282C32C2C4655715D8F3AD53
+F3FDE97823989864479EABAB5876C77CC134EB66C688BE3777C74B3A87EF1616DDE5A8A46185
+997DF2FAFF5518EA7AEC3379730BC509D09C5C378B47DA67F9F5740B641DC790766896352D0B
+E0EE84D686496066469C995583EDA0BFA51178091918D2B9EE8CED4163E45FA312885A64F177
+F03E6D77DD649C7D71B47FE885D72887927AC070CC64E825917776264E722AA6157C22A429BC
+0D38B56E5A0D6473FCCAFCC17B4BD8860ADDB9BC33E2FDED66EF95205FFF084578C37913E205
+9CB3C1ECFA4142C0A2AD1781C373CB6FE9819F4CF8E5B5774D7A6BABB1FAA71D0C96175B9DFC
+08A3154C2F1AD566E0D03E6A01D3848F0C6C06755A0511948D51FE8626A32AE97CEE9C01E15E
+A61A556170E7E4D3697783BD42D586535C38CCA8D543A9AAA828C4813E89BC30B686049910A6
+C01D7FDCC55895A3F7019B0CC78C23925D8CC1207C51FA19E6B8992A289EDD5669C33186A7E8
+38D5A0A3C101C82558785010F877B05D943C5F874D0524622D43EEE25CA87C2AA4553804CB6A
+D1508B9406BB1CDF868DCFFD19483BF1D8EE2844E62A2E1CD09807983B7742A841BA2A03D8A9
+2568624EF3C504F9B2F4389E23E323D1FA1F4F0670711DA7D827400F36C9FC870EA2553C7E25
+45E2A5086FED5BF966114D5FB48721AF70E04393326BDE080D3082C292C9C251E2D82C0C3F03
+04E9A46203E0E5E76829E21A3B961F02AFAEA15397F0060E5059A5FC66A2B622AF1D62FCAC51
+6EC3327C95A0C2810EB42A7209D12E90D1D41EF442D0F3DE55493615D4135B4F44BD09759657
+58B16A8DF9D39E78A73DF41C2EFBACC2C91ABF75C849E2BBCBAD263F8577E16D60BB6BD463DF
+3A4BAC62F28B44CE08BF52A268AC27779E3A317B965A44321615891B627541C53768F33694D6
+EE76903BBED8ACC45FA00EEFD20224E09D95E93605987839D92C4E0E1853D8C3F25FDF0A8268
+B38A6B8D9286535A49B25631BF31451F81B5ABCBA66A07056EE34EC320367DCE6CFA97113291
+32E1155535F8094570639F9FC72E1ADBB4EA99EF7C7CFCEE8D74C2AC70927CA9973C4E1C4DB1
+13613466EAB58C0037BA93230A3D6EF41739122912A15319374C6A6D7FEDA8B1DC15EDD2F286
+12EDD846D8AA051F24523BF92C6920C2AE3CEED5868BDA6ECD483ED181AB69CCE78668A087DE
+0A00A960810675F75412A8EB6018C638583DFB07B4B4CA48C2D3A7CD407F552DDD7A91556004
+2B173D2DFE64EAA41500FDB64FE572E09D06BEE892AAF0CD711F3D6752302EA4F69AEA675A48
+EE69C2416805E7E6EAD9889FE072F1C2F5D3A89D277A90DC9EA38271DA1A455CCB3598FA99C5
+5A788073DC12B2265D409DE2DE24FB4399E911CA80169AD5812BCAB83BD0692C37A1B8053585
+BD7303C20B6A06BDE9873823DE9E9EDD9F403E78E7C386341919035561CB94379210A5E14CB7
+43687CD843FB306B6946D8BB1C290D802EE3F096F54D70743B22E661F81C89F190971F27FF9B
+0E6C273CE3B35E6F5A586B411F6CF55C2909AD70D348C6F6322EF1DD08EA36F1B99ED590D012
+3DB978BCFF31E5EE9EC3FB969E71C0864757AEEF1750ACD6A6F08A086CCF15E65A712ED37564
+B73DCF2A5E86E05C7725DE9F13DF59ED3E92438D9017754365735E5731853520D9771223DE22
+52388C4C6F7FF44614112780B14180C0CE01C50F94BDE65F4692CFF4B52F6D9D1FB562475BF9
+E94120A510389E9B3574C62FE0CD45E19615971BECB8C2388B4D5D095B914E6F887F3F708D7A
+65B516758CF5EEEE4DD127315FC3EF04CD5915978141B2CEFB3D2C0FB5DD64E25EEFC85CB2F8
+80CC6AD20B9C9F0C1256A9C4E8CEB2B400C8D50079E6F58F7A064CCA9FC3EEAA7F7C34BC51D6
+799520C5534EEC1A1EFCC52B9ED43E7695ACAF3EC4590D9C0BC16915769DEEF8F39BF7992449
+4888D4DCA2484053A29598DEC70C2BF94BC2494BE4841F9676DE13196AF9B9A329DA016F17F6
+2ED26A75CA3089750BE5DE919429B989EEB4C10C20AB764BA2C4035F14264B055771B6AB98E0
+D673580FDEBADD2719C80E9B8322112C9AAA9AD2329B045EFFA948AF1EF7B0038B4D3C068CDE
+62E5F808213F4A04D4979BFDFFFAC94483C546B35E965D4D0625FC01856623E146EF193A5538
+09C0D1E182E8D7759CD2B467A84254A2EABCEAF9E764A05BBB84522353B2505C56115F489E4A
+906064C9C5266F823741A1BD1695796BCDAD01B38003522EEF9FFB7FB7F79F8D6C43B6685C17
+F72F06060993C9A30F8E31AE8CAE4F3BAD51D8262688A6443CE6A07C1CF676CC4F755849E2F9
+DA19B14130FC72E31BC6E4E062C041EAC5EAC486032535FEDC0DA2F8BDFEE2B72C1BF0BE510D
+BA08E0A5700FAF1686EAA93420F20F92C0516609ADAC4F7EAFB5FB2CCDA18BB3FEE2702A462F
+8AE39A733B0699D29FDA1E821FB03964F477A2FF5580FA4874F60D6F3505A4287E17AC2BF565
+9E42FD41F257EF45798CE2D8E09C0593FE7C41E67D79316E8D61CDEEEEEEC60EFC9BF26E803F
+5C3EE7404D05ED2018F8C9DD0EBEC3BD39E20AFFB51582BD5049DE9AD7437849330674FD17CE
+6B9B6F646F9CB66CB5DE5457BD512BECCAED183FD5C5D834846E6F8BE301FB267A4A67758590
+3CE45864294FEACC65B46D604D84D846098339D20FE034B77A49DDF85718CF9DE18D10028B37
+15994C5F2571EA3DC7E98F66601C647C80839E3F3477D78584870837F653243BEF6FF49C347C
+5FE9C7F45A28F7BAC5AD9929D508628CDBBD4EED3295F06CEB89D378632C34D514A0B22BEFA7
+E090AFBE45EA64C03BD1367B63763F4570D25F59E83D344E8DDCD26CA66C1787FF09EFB314E4
+CDAA3BCAF8C94372828623E973768B6FAB1327C6CF5BEDCD37972CC2505B12D2A26F7D5AC9E3
+F623024A9370A44BC95FB17C035F71BB43853DC7CA66BBA610CC29FAE5636B21C2366F88675E
+C0EB2BE3C127BFD579CF818ED98D657779430F5C75A0CB97A52F3547907BFE2AD55A59B0B5A0
+DF0D25000907FDB6D5781EA549FA89078516665CBEF095D9411A2DD1CF6A355BC77E2447ABDD
+21DA230AA18D5E130DFEC1B75E5C1F6CB9D3C860A95E9FD960EB8D73EED1E168E357CF305786
+A8F01B63EA2D9301A6A3F886CBE4F678BF1BA1CAD67F3924B6408561A435E0720DCDD29C53AA
+53C1747BA074E6588B3AB7B66B5686AA58EC9BFE7DC107D97B8EE627C9E79601B95791704FCE
+469944BC90EC77AE5A9A5F2A73A4894712899DEF4BA334DB850A7187988BFC315A5E207AA6D5
+76741B3068F18C7AD741B6A4B6DEBF5A3C3E178D10E25FDDE0A01AFD5EEF225849E3B5BF1846
+28EE473A34303C2524D78B8E7B8D9308F1A90852C8463AC1997C91DD233CCB7E4A16E95CCAA0
+E4AD48E2C499397A4F558C23360EDE957D872238A446C39024A369429B2CE348AA5FAB425897
+EE02B71F085DE26264002AD168130598150C4F560E0510A135014E55A74F65B4CE7E1A96146C
+609280B49F0AF1830C3C8A6045BC7774D3895348962A7AEE947AC962547AA28B02608CE2F91F
+EC34848EC86C4BF8507A9C0AE9A0697699531E11ED9E85CCF52231672F0879B801860B013181
+5CCFC49012F03305D6D382E4E4565BD1D2F860EA8BD636D8582FD332972F1CBE62844355C933
+786BE37490A7EE43217854DF7797EB8680B93D9220F643DD70B2993A7A0A194159A9BE04441F
+478A77B3D2CC38302701166DEA70D72224C9481BE0E68BB6802BC6E9D131C3B3FED642779139
+5CB3393D4817AAAEDD39AFD6508C9CB4FD67FD3BC18C65F27203AE022A522C1B750960B7A745
+0EEB8718DC911D645198227B2E729B6CA4149EB9D21369500208D94593A087C76205D1046B91
+4C31FB5F5D6FA1EFC908532B27AFBF73C27E2FC9228ABF72920CE48C03E3381A952A0B1F25A9
+9EDCD216B154AE6279B33315E822EACF095C00D7359EA834885DB0E6D07BAA9091FB364CFD43
+E378ED0C06B9A1F7C3A7922C85DAF6CAC5FC111A51292D4C7D43E9773F262AA032782252CEBF
+2274842EA390B0056C3E0BBAF1DFE11D91679F6313316735FF6820166D4FDDD7E76A72469529
+1E224466ED210C82AE79C44A828E7B625F872C5A3723FF9A09E7D77D0555C9984F7EFCBF3B9A
+1B156E5047E312C8CB86D26B0E6345FCE3BCF8D0196C95C5AEDED0403733EB6BDE2F6A65CD1A
+0FE13DE66A2DDB3F912ABBFE0CD59D4A6D9299E1309CF7494C93896FE76C132FFB98E3315B28
+950E21CACA613DA51EA612678FE24DB3B04BA25EAD7E2A020318D2C79619B78BAEB21AEE2E60
+69D8470392695EDFBFE2DFBC2274D8BC8BB3551CA84E341419C7E718187260497EDCAFB7F588
+D1C7663CCBF8DDF1FE23C48D1A9B211BB0C75871CF8DE53C45A00E601F87BD65B9471CCC46D4
+481C5E83BA65153CE608D5FF6595FCED940CC0999FAFB2F44E0055E57E59C73BF3AD6FF70CC5
+A0F32A97D61CDCBEDDD34A295A3A7A9DF1EDD9169616D1F8D4C5E20A86DD2FA590B46A974D11
+45FE89D1F0664C3E0FEF70DF6D393AE7CF0B662E285C02E9C447672F73E90138E68F216C0072
+F5BBAB3943B40D24FB09841E142889A4B927E4A7F762E0ABDE430D6C4D8026F76A62B3B35BF9
+53B1EC19932E8E24EF20D2A50BD0EC86D6C0A61D1B206AFDB625353E1FDC15F96F3A48303DC6
+CDB7E4131FB3B6E7D80B1B332673F6D1DDA6BCD90F359014D59EB5445FB90E31E51D9E1962D8
+20792C2AC64E60125B0EE5CBBE02AC8BB9CA43A2961A5012E0BAFB42DA92DCC8948B043F0F98
+C522149E57FE699C9BCA6DF84D5FEB2F55C49407AA52345AF0F2B39C360876D5A6FD1C3C6D42
+82F070B8AE2DD3BB78DD78C7801A235EEF4A700128A9CFC7CC3B122CE69DBF577F6531B7898B
+A31A1B915CCACC4B3B1226104877EF805795A93A2F2EB41CCB759441A17E6B7B033094D0861A
+5A55F80D94B203FEC9582926A9CB5F8CB395C110ECE72754485D674DF6CC0BB84882BA26FC17
+01E3B2530A2D44DB5E8702DF2CDC597A8BD9CC12E95B7D274A51136B61E49C7F920BE8E6E17F
+1B20EFD1F6F84ECF575B2CCB40AD7876E8B8C7B083E2CF8253D06CC4F6CC2A5FDBBD8CE6986E
+18F759ABB35F7E77AEF16D5BB2DFBB457DA2ABDB2148EEBD4F88DE2B9B3244FF78BCEF9F98D9
+3AFEF587269D7952B9557D0EC61FB268980730EF3B6C5CF569EA19DEDD3AAFEC29D8FB9DBC80
+43E7C702920C678DEFE3017BD9791D74A6CE7A6BA312EC7407D2771A6F22E3E81EA35351C3CB
+BDA7A7A5256C67AB65C84F0193D75209307DA141DC60D87B33684BCAAEAC9047A0F3861EC185
+132A14F5F48F19E38E132FEE76B5D7C70AFD29FE30411C5B7D624BD75FBF27D89844B1845F02
+7B866433344AF2DBF37587F2144E40358096A2F6CB884595E57C3A21A1B5FD1A9E007C530FBB
+2FA384169531124511C0E643D093478AAFD5CBDEC5EB0EF47546A893EF0D04E30A89BC3D4516
+351662F937F26C80CA874E471EABA85AB541F51FE6F94E01BA628A0EA320FF000A2C3B93162B
+40E33F49C81F759B0CDFC167B5E06A6B2592D78794A4A91A03F9F95AAB96850F726DE1782B03
+F66CF1C647872FE423AB0DAD21098C19A267859AB150D8CEE49EA83C0984C348D06E99EDB60D
+797683B4B5255E3C521619DA2C26038BEEA2C6C013383A30D6155C3C6FECB3FEBF3205D291B3
+E26CB6F76AB6E222FAE350EF49B9C15AB1DBCAE734E377610A27B1013F0AC3B11E9235E952F6
+C65DAEB43581FE06E04BD94DBDD42AADE4CD6B475DA642910A0240BCFBB2848039B614F11B5C
+0DE8B157BA49EC715748F2857009BBB3A0B550B4EB88631B53A69F025F61E4F0A1BF13265E20
+78C6291C114B8ED63A7F3A2D3FA6EA7BDA7445CE3DFA913FAB9FC964D6A5599175CE8EDE602C
+7F17CC5E9390AF0D3148FBE8E7D5C8780DF83D34E4C1CFC0BA9DB11975A171928147D4053086
+BB7A29B4CB6620278E5D7D42B5778DB639D37D3149B525FA9A2B972D3F33A2E6735130446448
+EABC73AD3E00E0B2F5E774ADC1AA4E9ECA4C0E5DC2AEF0F7DAA42D37CAFBCF8FE67CDD3E7C02
+413E617562850E2EE2E68744895071D192B4505470D228C8CE86FF4B650F07E454F8DF8F5376
+8226231441DC5A026FB268E920C71680BB1426E4FFB38B27A019398C3CBBBEBA91C4988E10E3
+D873D3A7C8FC4FAA207B94A23E653BD646505B8688530D3DD734EB22AEDEAEE8274FB964378E
+744E82C76A1E65E40A60DA47189ADB7FEF7006F180C2AEDE96672B55E12700D795951BFE14DF
+F7EAFCF483E8036C07226D1259883EC8380404BA3523D786E55685878EA1CC6F9D2B32DD91AE
+126BECFDC77B9825D602E3F18EA08021413BC95E5F64A120D41C719CD786BF2EF3E1A9B5CF28
+D80F65B01191653515BE6B53E59834541465F45839682F587530B63A3BA92D74062042AAA119
+12B071EC81BF6667D22DC7302F0A5299F3F3432FD03820E43BCE1007BBF0620163A0AE9C1A62
+B6FF44204FFA819F9D85849D450ABEFF5F3EE19B3FCA8EEB405ADB8A05C4809BCA050F846975
+C56B5079AE720299A7ECC8D846776048693005704658E43640CD89E6149093B4778AB677B379
+7DE560AEB7E09DBE57D723A4AA62EE8C42A83C10418133D262E5E9CBD39532F3881662FB84C3
+8F33ED685443965795C725956506FB106FE0960832A2C292560D3A43EEB72F4355B836CF5044
+767477AAD5346469F8E4E90F712DF820A0B7183C0FF090444A994D81E2941EA3C373282BF57B
+9952FEE56B1B0B7AD89AEC79A85DC03FD2A35F5B87E061D15B65A48398F836788F6B41C749DB
+F425391D99F0B31420DEB5C800EE281A427DB0C1FF7E03105C434F95907BD74775C980B4AB46
+A88652C8D59BE6CDB3531123CB25E9AF5CDADC324AAEFB9F8DC7E1EF4D288C6DA52487B922A9
+C9526875CB3E528AB79122F9886517E892115104A20A8EB4CA7628083B24C0B0F0DD2BB0D35E
+3E1D3BD0D50135F7B7F1F5FA5349C9953C4F61F00EF5F11E662AD12E8D9F156E32B845FB8E12
+1297658DBFCD943F1AAA74F38D43EBD080C41DDC92101722D829DFD3EA37DD5120803EB06734
+6B636815A8738403DBC18BB8D8164A8E450A7273F8164031290B465A44A268CAA510E9EFBB71
+114E603718BBE415F2426ED24BA413B286C42902D8C5E483070D3A3C57058E6D640369797383
+5C78166A00C235F8B4A4D155E723010F7500A7179625D248F2DCD8A368AA5FC85600143AE81E
+BE8D901EF42702D30AA628595AD111ABF0E1E06A7939420D648F03FC840A51919C588BE0F7B3
+BF71B51EC7DED081D0E2FACC72D65C77FD6864A2A30748803D0558ED2BEC1FC3A91710CC9F6B
+2C8A66F8C4EB43635926CB75B89AF438F224DCC5A542C653790E2CB2831E6AC5590BA51EFF51
+40C5F620102ADA7E964D21ED4E7AA39B2735E67E1862227C6E1DA2210EA7080000E90162F5F5
+2677F188D75022B9A6173AA3F4E45449348EFA7A4D119A8C4682A1E205DD922BD9D65A5620A8
+D9D103B853D56B872122F3B649565C904E6284D66979793B16C853BECCF478864EB043CFB096
+42F0675D88E62AAA8088291E844F34AE84CE4A93721B4F262E0BFE50BC17184D4A2A469FFA94
+8671A565C708A79A8DA61041C5F60B1D82A50C52A6E145FEBDBC69CD0F32D81382EAB87FE7EA
+2EBAB016E169E5092C277D28A0C1197B760AE2EE5E307FE6B23D120605E03374AFA65DE773C9
+B543D6B6321732A158873823AACEDAC38B2AE5DC0DD9EC0BC159C6861C99B18722B6C84CE819
+07EA32F1D8434B6CD6C68523720859F1C1663A921B7DA0DE2A9775B181AFF992AB12E1A1F3E4
+54E7342B9947D893557DEA500F36598D00064657C8B952E299D679BA20D0583FD6869F131495
+6CF2D1D8E81A0C20556F28F8729ADC075535CF1006D8F1750E479AC6066823B31E969ACDC75F
+62EF2704DB581A7B4FBCD22ED0A794B52494A69F4D57816E604BEDB0C1CEECCD3F80B6B50C76
+065503F13C1DD3834D7DB2BF297B0C8B4875985310DDF076F0D6721FC205C9C0957E43E07EE2
+CFE21647A2BFBAB8136866C9C4EC51706D04E2408E72B6106F02085E5213C5D88BA0B90E0078
+FCD4A4214120820F0809736F4E3C06C6E0E6B4468A4089236565AD25A85730BFC3E476E5F0A4
+DE180BE7A504ED02596543DF24359B7EAB8E5CB1AF98528D4F0FA8DF2EDF90C2C6D75600BC94
+61924029635FA8E2BF07BE105288333A93A0A70A6C4A7F6D8D5F3EE677A017478747CAC65A57
+A0FAE14371CB16FD6C39BAAFEC9AEA1CEED0E66F30E5F4B5D0E8D9D56DAC6D552163270CEDDA
+49E5272BC389831BF07FCE638F7299F5C0FE332B7E29089D77B0140604B8AC0377C10C002046
+8F250B3F03BBB37DC29F5B1CB2189063B8BB0F278AFF414A86A2F8A18FF13EBEFF00B4D723E4
+90B2947195648367E0A7DFBCED6EFAA53EF849C79DEE21E5665409A44422C3A36FFB74FDFD10
+17D31C32F9E269640AC36C3A519DB5F76198F1AF12F71ABBDF8CE85E7E6C2ADABE4B47897CF2
+4A1C7B5934494F07790965C18296B977E332BD853232F2E2BE755F36AB8B1773964A689E1BA8
+48F9F7F01BC585E125F00B90576FF82BB1BF90557D064D38079520D19DAE87A298514BAF1ED0
+0B89467F5FD445762B80F1EE8E67FEBE8B5B2558B32CE738201712612A56D824983EB5403A70
+6383D135BA5F1EDCE9833B81465B34244901802B7684AB914548C88C32FE91DFB0917751D843
+5058ACBF0BB78D11118F14A0B9411BAA1A6E04088543E99B70130884BA971F4DD03F1AA3F9DE
+4B1935663AAC294C9597AE21EB145DB431FFFDBF163B23F3C2675662C37CA63569A818D47B85
+3B59983C8B6EE24560B2C7D426283995D86A7DFEC4B6558BCDED8A74D214BB6C86CFB902CEAD
+F6C5FEFFCD06777DD761F9F9EEF09E9A510E0DA31C3B847130961459642DB3E533407A19AE36
+00973E4F70EF0912C462769AE399EC9861AE5D2A243CA6538943520DCDB2A86633F3D95F1F14
+E6D63126FF361FD287539C686CA9A6E4B46154467CE9CF10EAA3DE0EFEFDD09BF305A5584C29
+DAC82DF9418734B01CCCB57666E0EB5E5617EFFA3059FBEC27D3DFF8DAAD45EEBDADBD272AE7
+9909A4CD3476F9E1275298429DDA620C15B1E229135A472B013F5457269B9682A3D41E20C66E
+EB7B874F26FA9CE0B2C8658937711366BD4BEC4F30A14BB1FECA238CE9476D66D1BF4259941F
+61A7DE0FEBA45E5002A9AC44A7587FB206277C01F479D7CFCE8809687AAED92F7D148432CE8B
+AC0AD62DFF7640554D59E88CD83022A8A42D2CAD6EC197BEFB73669DB969D468E7519943F53D
+D324F2E9795526537393C3E5298B9F4E9961A182A324DE0D8109539FD483E1C6B0588584A30C
+B5052487BA59B78E2959B3A2BF30DB1374D585BDDA52E088AA672AF40A933C94CE9B9F63FC83
+ED72B19AB818CBF269FC03F38DD982A48B8206307A10E6833B3CD33869526F10FE1C92F7D0DD
+56C163CE8F04442CB0DF0E496F2A1DCCBA88D0BF260C0EB856E081EED167C6EC1D8105B2D3F1
+73D367CC27D0F26FD89995A2EDC6D1A215F57847F7236753FBEAB4954510CA68688E51034121
+F2CD0D46C7B8E89E138FC4EE229245D537F8F5009B76D6117403E10DB46109C7B58A67E0C14E
+6347DDE8242030734D02A5C3986148528BF20973DF3D17DA67E53334B678643F09B7F887CD90
+87A6F635FA5FAD0A2EE43668A8B1973A42866A399B280787809820D0AB51787DF2A3907A564D
+10FACA4D9B6349C60852C06444FA49F8E2563ADBB0EFE7B8250142BB06FC4C93C81BD8B51F85
+86AFCE9678D4373ECF051908E3435470C360935180B80B2C03B5033E2AE1B256B426E09FEC5F
+902F7A8878B3ADE833EA39EF3D0AAC1160E1AC3FC15170DC3FAF6D17664E6292C51B268666DA
+DB416E5738176D6CEF2152B529C6DBEA6E563B5F7DEBDA3E49EE6EFCB88677EA2AAD003CF528
+6B21E648EC332F0F0579EE648925B05D50261FCEC1BD57A22E58595CF326B5FDB2FFD9B8DC79
+4C5E7854EF9EA34411546D28C5112B9DE1C25B861233341B2CC117C9C310160F612AC6F13F53
+4DFAAEC92D6B2CBD9C3F3C0CED06B910260F7A2DD09B1B9D44346CC5A7D10B4D637275D505D1
+301078EC936B96BCCD9A2B783A93019C5B769C15636CD94E9D4A24BEA9521A41703FD6F4EE8E
+362FE33E21EAFF8AE02DEBBE9D9B379B7AA0AA0FE94C3320CA64F41FE488FB58CCC5F13314A9
+F8A8428DD1D713C07489BB76A462E9C0E237FA5FCDFD3A0349B6B77067F055B7FB0F28953384
+537535177D190465C354DFA1280FB3E804D3FC0D6E2FA88A5F2829E9AE07E9F7844463AB695D
+A17806C271E20C58939A04B5F8DF439659990D8D8F885F3A7A43A4BE49C7ABD03DAF5DC78CE6
+6ACDE634AD08C33363EB642ABA7D9C34C71C74CCCBF7F4ADF9A201E203F6540BC467DB200646
+9FCA0ED2234AB1A31E73FC05E8D8D906E40B3055B3696D72C48080934CC62E8E850350E70CB9
+558CEBAE7EDDF38DFE79FB501A6EE6676F9B7697FB4A90B84CE04808434D244ED68AE441F19F
+FCB2E0E62DB832C31F7EE26D90CB6FEA5DAA44C297E51E6F9952C794562BF286BE8727262E51
+5DF58D26BD9B97A5ECB5641D517DE35941143757645D511409808347297FD5D84E4BC1595158
+9C4E272C6DB003B51628D3753DCE430C6154F4A7C5009CF5AA61D9CD61CFE3398701B65CAFC9
+372339E6642D01C461EC04840A4F37E8289A232B1C06D659AB081C25CC56DCB1B914EDF4C7F2
+3CA7598B264309A0CA15F079ACA4F69630C6AB6192EDD8A2350D3D1F239FCE30CEC5C7597971
+6E22A6B3917E8F0A05D75F8D1EFE57E71836EF46D41E4CD87F11CD8857A3821E6A7E4D596C39
+739424E37535699B423A22CB07CC47041D7B97260181794435F38CFAB11A7F571A725D084101
+07FE3E53B16CAFF56F14B35CEB1363EF20271620260552B0B9FF5ACC9E8C508A0F07A4768AD1
+77975F80D7EB3FB92B04A9AC5FCDD9738982DFE4B8DBD646D0F1035589116E961E1000B677DF
+7B598EF17FB7442E07F625CC07E7B7BD4FDFED5CBA26EF286DB92F99CED631ADA9B6E4AB3654
+C549D5539A2C6B2BEF7D9685F6C5BA2AE5273D15CA66EFC6FC14B3DC2FD47B50E6FE3678531F
+E11B861DA29708943D8914EC5B164EDBD2B04DA634314AA7EF8158C3F4311CE9FFD5973DA940
+22C33E3A69931930572FD8DA9DCF8AB915CFF613E7628C5773652D55C64E1DCEAE37C879FC17
+A35028F33B8D14731DC832193B35D6EAE7B2B5BBEAE7DAF05B3B34CA3235D81FA537EADC80DD
+C32567E15F80BB2A484CA51AA8F3C853696A740C271E1FB34D3DFA72394B88ECABC1F4E92CDE
+907A139A5B57406DAA97AEA576412937FFE4E2689853C7B86FD869270B2FED848BDB95AB3E04
+C77836021AE12BBDFB0BC68C09AA4F5B607D8B724C24CF6DCF4F54222CEE4EC643F1D4024C39
+8ABD99169DE91191911AEFA67675C21D539DB7C39462FE640C5F9C9EB684C6037315B548DD49
+F0C35252F2E9D5D4571880E66CDE49FA9653949D2F28AD44426978A2127122CD77B607E9D03C
+74D9DD7D11E4A9AC2E3457FA9C79DB76AD398AD5743F6E077C36423E0DAFADD1D391EE4451D3
+F94EC65470BC74FE2D2252F0540BED609F760145914E9437D9CAAC61BE91F76C5F1979C9C6A6
+F73E690DDADE3B1295251F0E9DC3100CACBC3EC17689A8CE1AA3089A387B2727035514F69E27
+048AAC20A38EE49ABC7928D0109D3B230B37F6092388AB62CA5B382DB76922CBBDA2D61B5745
+6880763654B4D83478DB9C0F63790EA68F5C154EA4853D02B9A849FFD65684C368E68C6CEDCD
+85BF1F041EBA86E9BDB490CD8CEF298DBA42ED4FAFD561C2CBA47869505575220B8E3390BA7D
+411C2BB7B16578A834BB1504CFE2644713BB30F2C76D9DB397F45967B8F146E7C4782B203A97
+BE20412D4B2B6D53511525292E48896BC91D3891300E48DB9B7A650DB26FDF8992063729A8FE
+4E8C6F786FF4F4BCA2018C2861DE6002A8D4954BD7EC80CEAB7DAE6CD07586E733B1E862DA8B
+1D4D2B0381058A810522C303C06AE34D5EA6F05C97B4FDB3FB1DEE799511F2EA9750D53E2A1E
+CB6058C9988B55BE1E6F1B682C689C996749691B6057DBCEEF6AB5EFCD604DF7420EB44763FC
+30B4812891FB2B67402A24DEC15BA326BC89E6C574597178EC7CC644FBDAB6493E545D89CC86
+BDF8826284E8697D2417FBC5630CFFF686E9F8F6C5F7788E975FA9F201FFD1E99B75E69C2395
+F2EB3CD74E2E61B44049DF0B65F91195233228490EA9B9380800C1B43905B862770DD378C920
+CC3EEA51351DDD3EF6C68302F96DCBE3D740F4A3E359419599817FE10E5EE241B516A7AB852D
+01B570CA085D306C75BA899A5BE0F5BD883B1A6EDFA8EA72E5F66878BFE1208151032ADE4804
+2F2C7DD0D66220F5EF66F4D3BEA1014EE7327242F8A8D948750934D22B7C36B2CBC01971D5CA
+B439BB320D7831FEF3C9785645D9996615DB538084C5072F2D20F6A8909C248AA6D34DEE11C9
+1E5C41C931DD5076C9CE87398A58AB06A1AA7A07DDAC01B730957DFA34FCD86188DBCC7C8A94
+101F09209E7B123FA9D671222BB65EAB845F7787EBF82A0F59A7EAC3CCD936F54A048AA9E36C
+983FA1376E1F825FE112D4FAC62BCE3DCB285C5138215EEADC3FF9504496AEB0C443DC9EB28C
+1C3F27BD1C449FB7ECC661697186F9C31CCB922F2B9C9CD4AFD63BA3CD71A95A52CCCD50C9C9
+BE17A47D3123DB4898A75275D93D74EADFE72B7BE3679FDD9DAD4C885196194DBA0D297F8033
+1B1471EF61A839DFB26FFF95487496B4280D02CBD88C1DFABB04F98207ACB5E5AD8B4D4D26FC
+232FE653E9B30BD50930833E2B9D72A7A3C57C9744A0992131CF0AE770788FC6376FB187EB6F
+1605CAD55B40D0B9132B1799170BA18EBB01A6B92D5CE2580E5D5BC15B14113CC32643C74805
+17AC33E95FA1B318328613709D3B05296982772B4784B762103E906EABC30A8C542598B970BE
+13D8F79EC2D4229118B8A71E708F049B728205008B75CC96661B1F19CB27320E6231644CABB8
+E8A3C07ADD08A88F5BD1448FAECE9C2E9E959FF42AB856C9F0C45B170D4BD63743867FF08D0B
+C568D473801E2B40F9E99DA8DF577732784B52FAAD05893033ED069CC2996540E9BAE9916E13
+9276031E66E1ED34CAC0228B8C7B8E0E0A8C9CBDEDFB20E406D5C2698733F1912BE83FC517C9
+268D3287C66D5059D84F52604387E0684850DA394D1F2B4BBFBFDECD45BF88738074512A1905
+70057E2275BA2803036A91F9A32E64CD7429AAAE7DD6D28C3159694901450896D483717E9ECC
+4820349ED3E5FDEA88B1F9AE1A7E9A9090DADB0DEC035EA6EA90399F3A942E3401EBE5B483CF
+0779ECA7685E8D278CDF6EA2FBD2A7CBF18314F5257756CD3E342479E3AB75A6DFD4F9D7C3B3
+5AE5042A2B7FD3CF5C93ACBC3167BDC9A7F0D25D0CEC8F73D79A98EE89A769E5A41AAFE97D55
+688F39C661B575A6601ADB6399B43DC5064D54F07E8299627A114254B11F1E8DDD1E7783CC7C
+ADB44A96E8E54CB72A448CD387FACC2BE66A5D9A4583EA6B1C0E4E7685739E22F50E52488EE8
+D38903E9BDF9CED151FFBAB79C1E159A06C11C70D91E114ADD520627460CAF3E57F77063FCAD
+E73F05C563FB50CBF0F2913B6899926A6BFD891E986FC06001C9D8073A781F0981FE9D4C4D17
+E49D1793608913238CBE6B973F9493DF8C7123702646446944399EE25B1E5A40D3AE74728879
+203E2D5F005C3955382FA450B86A58C68BDAD3FE1793D8E184CE250070CC6F8C21E277DD506D
+4C8064374CDB89D4C5EF1859FF45BCA98BB91FFF5E52BC1458991E9C296CE2F8BE62B7A34D2A
+DE95004D86ABB1925B24296C39130971B68A2B1228EBA1575447FEFF25F6D887EF14B66FEB4A
+377F60681A4B44F63B6A067E367E379628CD7342D80B79913F4797FEA6506A56D47DDD7E0AE0
+B06D1E9D52359EC8D1FFF0502D3D7898ED4642974DA2483F6D5F4F48FBA2862B9684DAD5F1FE
+7434786F28446523FA121E0445942EA29694E03F2CE367B6EF118288033B36F87CD456F566A4
+767D31794A827595EA4E03E805A5D0255463FFA40893B34EE0107FBC6CC1D25215A70FE0F9B5
+526E65C3E50376D9555BCC9F60BDD3DDBAFAECEFE4659ABCE230EFCC3BF8BD7F7AC3F5CFEE3E
+AD7E09C9F2027DD12F7D85837C9A693A330281D730982A1A2B854D5BB19879DC69A0FDD1033A
+7A858BF14C949B17D26B491B123F3DC89E67100412DD9DC767EC66FB690EA83850B80DCFAE83
+EB437F5A5F4D22517DA8A21075D6A0CB1FCA94446C8138FE3F28B8BDBEEB3DCD67E4D6C9AB24
+9F3BCAABF7EFFCF8162C37F3DDB6DBEA59D74D515BF19507880F19F99EC7AF622FD9ACE7BC07
+5D853517B494438AD1B7BA2F0C696E77543EA59F951D5B8C2D364DA095F4B174C878FAB8CE90
+B0312FC2D3C62B4A9F02166FA0EABC1FDFA7839A250BF3627D3AD5ADD5BDBCF75B271157E012
+F723A51A76ECCACCCD693F81590D99FFF80B21C7FEBAAFB921C0A91AE44E8C3A870FDB69B2E7
+7A65D13626A3113B069A1382AEA90C6076D4D4B553153B3CE24D1382117307E0D1195E39AB80
+58E44DDB927058A8D71AE41B86ADD4692AF0E852F0C1C92A6B5CD4E7C49C7774BCE30E0F5256
+4437E6553B1E6486FE7F8DC97451C934C3939EB137A8EC09486F10F2A7FC4BD3ACFF77F03B1D
+92F19A015FF6F515E9963C870DB70977F9B697E07CEB75B9AE87B03FD70CE2008B941924DEF6
+27DE71F750EF0F378CB2648EA07174E62FCA3FCBD6C6F1F91C9BA4EAB493E28751FBC57D6897
+8F553DBD6759FA9CCA70AE9A7372A70CC6CE35137CBE4C289575555D92083E92DAA3845FB214
+DAC0FDCB355A5C08A1F3647C85E3B747F1FEA12CF8AA1D2162E03221BDCDFDCAF4B74DC3ECE1
+657CD9819BC34ECA91FE1E7987FD75D3E434307B208F2077457E99134E108E38B99B6D1D8DBB
+530D3AC7CC5811A7FA92BB080D8E2A3A09CF3F6452941D063D275E2AC849E0B35B39C63551C1
+90A43F3C3564AD6F153C44F67E6D50E311ED225861B94CD108D278A4785632CF7E47E89C8FF4
+3114044CA9D48BC15C5EB1E9D1DD3965B84A20522340F81FD0EA60D7B763BDE818B5F9522634
+7A5220F043B89DBC6A41DF825DDBBBB05736F7709B752B42A1FC78B1DC61EF6DFDE867C1EBBE
+0E7F332C0BDCF86B706C2089EFCB1896B62ADBACD8E2358C75060046A54784A41F66B5DDE678
+06625477FCA24396747DB263092F82314E7440FEA9CE8630FCC10D7F4BA6821613F64A16D00E
+4BD9BCBB0EBF087C2A88720504CAC249D2B2E67A823C4F34260A7672E8D6E7AD168806779B39
+ED0847E82037AF28416AD3B5C5C6823ED9D1912A6B45874E5C67B258DACDDF6BACF5D735899E
+A6C62DE3BCF40145859A58C0D744588D070AB252A26E87FBBF2CE51E95E5AF46AF3EEDEB147F
+75EA1F698B2D3F582B76381780E2BA8F6F2AA75A0DF480A0B5BCE7C3EF61755A4D9BFD0E9AC8
+5CF716407021CC32CB84C16A90C37E83EB5F0D6B7BEB221FDCE3F9A6701F6BA690748F767AAC
+D6F886F1B2A54037AE8D8B8546E9DD0ED71C2E03B1148BC4763F95CE2A92F2E29E3820F8BC5E
+610200FBCA96221AC7CE0E8DE251618EBA754542FB8EDE1632D48C0D20E882F915BE1F742ECA
+7FFEE8F323B05EACF81846F87CF833E6FD877E01172686BF92B875FC6977B3D524E8D8BF0215
+C3D72182BF368C7F89506B058A2A6042CF86D8DE16BB8210321B5CB1CF42CC5DD52E29D82D9E
+84C957E52BAE129068A6417FAC32427F8C1AF08E2CB44F7CBF3E8B1451DEB7B2CBC772227117
+736D41FF4A6772569A4B2C2C48908A1E36FE12D950521F269A0DCC4449DB961E101D3203E88F
+7910663B7C672EB85F26562A35A26871947B14D69F7E09153F1CC980F0663644C9EBE030EA87
+1399577ECE5CFFD2B7490AC8CBC565359683207E92D072854E094E718CE9D4DF1117A46C223A
+5F095DFF3C1721B52502F7366170444898620985ADD2CD198B292433C88ACF33C022AC15E910
+E56EB3B821341BF3ADC6FBCF1CB7BA72A2318D1C6D36810768674C325CEC8B2F86E19A0CEB06
+64AEC6E1F57BA2952DE44C1DC85FA8AFBA808459222C7608842D4DADE3C8D21210F366BCC222
+BA7BA907328AF3304F9AE2A542FE84DCE9B4B3E13C23E687BC3360E578F660F31F948694ECB1
+766365C13BEABAC7B589D2ECBA799491735B417532E392D56C9DE2B503C2A49CADA4280C863E
+D36CDF747D1BADF31AA0F4C6AB910BFB708F2B3D763C041836C9C4792C8CCCF39519F3B80BB2
+0C7767314CFE03C5BE8FC81AEDF28ADA7C576135618BCE77ED1ED0ED1F8804D4DAFC126B4E94
+83E61917775578AEBC58EE5823CCE006610FF2108E5EC5E9F6EE0B7B09BCD064A2EFCDF71CAB
+DBA10D0FE3DF95A68F85965CF756B19A9664A167263B2751A9B7CA9CD76905A9A16D070912C5
+FD49959C93601DE4998FD65F6B506B9F54A16C92BB88C6CA8751CEFE60731952B2B9550251D0
+612901121CCA0D3A8A51D7F1F5D9C771EB86BDCE40ACC8F35831C9E5ED6F5D5332275D01748F
+88428E97DDD24A036CF030A8D04E3EEB7E86E6B6E6F01BBA6ECDA8B4806DB2DB9D053CA1299F
+5C6D43A64ADE6A7A6F19AC608CEC86FD93407D6BD802EA487D7C46E5190B6B34266184235859
+250E09C49583F8B856EC06E4C120A0E12E4E305540AC662E171DFE00F687EECB571D2DE79473
+E7D22FE4BDB30B9A526F8D68B4129D71FB1620CB3182FAE6B55625F9C2664AAA3FFBF9B799E2
+FC92EE7A19C5E37F0EF4B3A6A902CBED35E34E86D9B7E5E41E5ECAE9876A83B2F2BFB7038EA9
+0A232AF9F300BFB6A45F55D73BCC6B9E5852395D5CD5C77819C568741A7FDBA3A2FFC81FB1B1
+EA0D4D9B450199617FFA0BA8CE26FEAA16F62CBD663798FBB3CD164D6EE6E4F505067C0EC75C
+1C5F81C699DF4165633E0708F8CD2BE2280350C902890FADE818E5B31A6FDB45F7A6F8E5F924
+B4D670B9E3D4EFE00D2B04D6F433753454B3D3EFA16276577DE3F28D146907CB6C05570A6D4E
+DC284093A4B2588162BE6BC867A00CA1A9254234766503FCD3A0E29D9C5676EEABBB3E26FF09
+1E21CA21FEB29365A56B6960E1E76796C097D80454261FB63D5F941B66D9DEDFF932793F1569
+75004F36E2D91D2203049E5D9DE711D832E78CFA18E2B5348B74AA8605E6425D8099C6B10EF3
+E4A299FB76F028BDCAF8ADEA2E908E3535BBA4B42A905F30D13129209DF390139E3C548087BB
+BB46621E71CDE60F450A8C61B247CEBEF47B5F311B3CDC843790CA79DD6C72AE76A679AF24D3
+6D0B1B5388485F880096057CB6287845EE438CE1E6404C5BE7371EB6C060092ACC76AE336835
+1D481984240E51E33061F1D9FCE34A4C65C441F5B4E4D0781103AE0B0CF637CA2FF26182B855
+B696605FE114AB2F7DE5F016E396B5A4FEC79F05ED451EB3EA7CF718936E0CFD2F9CE7781162
+825FD98BE70C3B16123F8D9B0C970DCB545A7CF6A8CA6B4FCAA319C6C4256B10D6D7AAD98931
+40122431F2B0068C10D0398F55FB91DAF2C624A716726513EAADC369BB29FBD1B2B7DC5324D4
+08B0B02E46ACCA565D1413D1F65F545603B06E28637C326053DDD2B78DA99BF320DA2A565258
+CC9F548B2F87511C628610AA00A6C8F5CC5BA2CCB13BB9EC7F123EA7FC49EFBEAF5D7244EACA
+D013A08D3FE370767128687A488302AD3D95067AF108B76886ED16B59E7345DFD143A24CBD75
+E828AE300CA7D24437D4A5F0038DD5265D82CBF39A4F8F542D491486F5BC3566931665909986
+41510AC914312D22803F242311DFBA932BBBCA9DF24B56EB52209A5A9CC8AF2688B59F348E7B
+8FB08281143B2C849BDA4FBDE9D8819E97589EC110FA9F31FF85D07B6D58D58CE5DAC7F22D0F
+97468FC790D913622007DC8045E2D05DCCAF592A540870FB4EBBCE3B5AB9818D49B4E40FC919
+FB8FD87617733360FCE02FDBA5E57B33461D5E085569129B5B7B657DB36D29E3F87E17E9C7B3
+8F6F1FEFD369D314E329440BD0AC26697B34D4E87048EC54F7C381E66C908A658BA83A811285
+E93E32BBC6C641BF0F2412C276B85CB18FED61F22ACA7FFDBD37B994314CE4B711B82402DD26
+632B7DC376AFD3C4D66BE5E40E282B74FB120F6E4E144D90404C7A4513F2AB180E00FD410AB9
+C10CE9B1C2A8EE695E4CEB0F1472A959E70899B1A07DCCB20546431FE6B541A05291D5DDA490
+991BD3560490CAC148A2D623903B630DE49F10DDA865A74AF0866C2FCC595F6FD0A0CDC0A146
+5398818C46554C37A4CB1E543C4760E804B39564BB853400D0E1E9DAAC58D0577AE177726D1B
+9075BBC70B2AECC2F7F44D34F4C691485BBAE03E43E8BC5535CCDFB1CAD1D66F38A49001C4CE
+CBD71202FCC47BBD3B224812C677F4F9E4FD523D44EFCFB05A57E45AE2078E3E16DC785125D9
+55D3B941F4FD72FF547B069EAB30BFD33E3EFF0686FC7E582CF73EEF9866D6E62C19AA005F73
+4CD8FCC0A012F41F38107E135CE4C0AD8A8B81101FE4EF8F32065B2C279A435CF5A032DDCD52
+9628509FB6773B475DC13517625705B5D3A9D9EF6995A37DD3F0D6CE5451845CF9151C40F990
+60ED58E0F2CF5D6DD71944731CC4ED0FC72641E287E295CBB53AEEFC3FF3EC0A5DBAB8C3AD31
+E5F6B339C1748A9E58851F6CDD6BF091227B2835761B7D9A10DF0242A7B61B39AEC0A0697F43
+794FBD2A51A66F860FEA136A9D7DD82B42B61710909104E0FABABE3F5485CF1474D494B97508
+DFF80A698BFA58ECB590D8C38873724BFBA60FB1150B04282AC1022A1214E9513D27C5D45DFB
+C47631BB27CFA2806C2CBB130DDA940B65E75F956846F4E6438773C94E8EAED71EBA5E87A886
+DA7A846EE29A43CFC2D130A3FEB4762091B6AC357C973487573A230DFF74A29E203BD78B89E1
+729B747FF9B58BF1FE5FAE6DD70E9DA091A330078845363681AC2BA501286DDA2038A0FE2235
+C10656143783D50129A728B4EC2C64405B7C97AE562AFA240D35FD9E3A6E034683C60F32AC09
+968A76C775D5547D85D7A3168D6F19F12FE132DEEF497E90951A56CB17E543A76F8A526B1B7C
+481CEEA4F5FFC637DA5CE954A742BF39837F08DFD7156A4F4E4805494C1957B2577ADACC0D3B
+F9B0EFFA5860F454EC947625E70D7E4E652ACF276F57F2137F451540ADC35D501CFC1F7597A1
+502A198EA502D67E7886790A84DD9D225E83D9ECAA18FF9EFFA77AAC3AE57D034E67CBA014C5
+FE1E3403AE4277D864856FEFADD2EDDB1161E8595DB1B2CA6CCADC4253B95300ACEFFBF9C3B3
+32E1FFD71B91898CD0EF1B9F64C3969FFBA7929BAFBDCCCB943373EFDBA057003069C4ACCBBD
+82DF6ED1624FB8D0D4B3E561A05B13550A7EEE9AB35E47E9A96FE49EC2716AA68224E3A65AE1
+E96D530FEE45054DDDCF949E7F3977334E3A9AE459085F366393D232B2CAA244B029F2BC602D
+05B421E14C08563C4296D3E9AD328DC324EA5685E2FED03DFA3D3AFF2482EBB368484FF8D015
+53CB8D5686067F99C5617FA2A7F6F183F4BEA8C1AC39AF726341501AC8875104D11DBF241B9D
+C9929A8B70ED71BD62AFAB7981E452086163DA2DE543E52D57AFD080AFE373E8E321670F8A47
+4E9DFF36441F6C1A4D2AC6DA6E5C9FFC0C4EC9CDD8614C2D65D55019378D678CF46F483FA9EA
+0152D9D3A12175774B56B11BE03362D2A36BA13945979C64163A696B0A6CC760BB6111EC47D0
+A5260DFA7FD147FF35AB84DA889DCF4BA4146647D5BF8773096FAD1EC8001A6085C4F4721428
+F4D4B85F1C03C71576F497D3A5A99392C647DD42F8804DA5D33CCDCE19DF1A16C143C449F1F9
+37F6F75B05ABD0CE90E4EF696E1BCEFCD950634E414DC724B0084BCB515CD4ACD71A6CD3784A
+402C3CF3ADAAFFB763C5F7E17BBBE19172E4455923BA48869B4D9D0C1EAA623D9C728D887C15
+BB8377AC74239EFEF6389EA10C7C8820AAF857BF8EF2B64EAACF096B742ADB9B666D96715364
+CF18D88AD8DA6A0CD303557F04908CD28D11ACB9A730AA3A37B6028914674816E6AC076C4559
+A84880E82D433A5F5722531B0287F11B24AB4CECC2264BAB4E6601C990E32E1C5F9AEA52CA22
+2D2698507A4B235531C3FB7E9FDF6FDA186888A74B902A0EF3457537233376E8667035C092CC
+C3797AD2FDFE1CC8BD71C49B91E4520091922CE87856F1DC60A209A9BC9D97B0141D8820E1F3
+B86BFF25CD1BA07E5664D32C09CDAF569EC7815F41E0E8731E2FCE769BAFB3A751B3EB7082C4
+992A4FD8BA363D0888FF39FF986B80D5568CDFE1DEEFF98CC54F05B842694BE023E0E0507DE4
+7AC1B53BE427D31E0DC9CD5963BC3A5183C54D8C9046068BD6F300F4C0CDB8CB779E6828271D
+BB9EE44B70BDD1C1B5A345AF01E5E9A74260781AA473199CEFB232EE9C60D14DA8C5D3D22291
+A33E592BB7FBE5E9B28F18EF70DD0877DBEB43EBCD12F9AC95B7D46A2E0DC88E3B7D34C6FB32
+1593E7FD7C070D44037B2EB5C5E7F40C2BFA3A282D85932C19D3C3D07F5BD37C5CAB34816E9B
+008BB5988A1703DD971AC36A0F1C61DE0828A6108A1454A17E63F68FC5604101184FAF38061C
+515C0439010551A933CE9701EA75A59D88310C564CA3C4D9BAB34668C6ADA1792C550D08B029
+5E6A2AC490B06A3BA9118ACA61A951BDC06EB5EA612992BAD973AD703F5B25D1007F47CD92E7
+4D824140CE1A827616DF813898FBFE32C87E692FD324FE78FE9101B1789C8C094207BF77C290
+16ECC3734E103ADE9FC7717ED2E6979BE347F72A514B943A7F1101ED25B0AFDCD6C8374182ED
+E624911F458A5EA76FA982C3CEDA0195275DD50BE2AB3FA62F5545F802CE3784159E281A810B
+87DACB95D4D75AE2EED997DAD39BA7346083A046660F0D63D4416EC1AFBCDBFE18966B4C4C10
+9D5C9E9DD7B1202D6AA73AFAFBC169E752DB200656FA28A29A9AEBFA1D4EAED03478778AFE82
+E0AA2DB79ED37AF8C5B940ECC6A5FBF38762505235415B285C72DA21F4FF986376E407C04843
+24B3A2ACFC6D796FF53B5412A1A73DBDAD921F402308041C18C5D7FD9705959A8C0F5EEA851B
+5AB726748A6F0BAE196F879A3A1A5A87F7FC723B7A6E85189914EA451E2BE92B908AFCD4BE5D
+3D2C6C1C40984D10483A9F85648CA31977A4CD0F9781CEA0EBFB97B8B07DA6FE5694C32F0B5D
+23D58CB259E54C46DDABEAEC138EC1C5922337B8CB2741341E3DE7D141E7316B2F0DC75C1A62
+ECD7106141548C31F7B90C0F70106E4E788FCE549DACF492225530F427A6BDFF5ACBAE8913C0
+BBD9E3DEA41EE41FC7C13796A4A7D32AA56305F2420AA9BA5C0A0425861F97FC2B0D586678B9
+5F28A395FC340E5CB4D0DE633E406347BB83E56126872B389CBD57C359807E3AE6CE23C5F1EF
+746BE92625E161BAC1584CB79940DB009844EA870326A7BB6CC8FE67084726E36EACCDD1A5E1
+87D49E1CAD01037E58EEA820171B29968A2E4A08352959052EF9CA920E736C7337D85A44A3DB
+0DA96FB9BFC14177AFE17AAA27B79E1C92B4D53F4CB9C277BAB838C640EFAF3EF4D95CF7BC61
+4F3EECEED6A657E1FB361302500E5DEA28E5B5EE4F3886C23F670090FCA5D2EBA7A5E4B3ED0F
+AEEA8A7E6DC041F9988D43F645BB388FBE848EE495B391FBA4C0C3939F3B5B3203A5527F397E
+D758BEE1E0F0FFE9A379DE0FD8CA3DB83B767C3BAA6214BE3FB012708F1327E1C96B8FE26597
+A0B8403DE77750565067F42F1587B5EEB69D5024A807E98A3BEAF5FE5F88DECEF57F2FAD58E5
+20D282ADEBD2051F086B3B871F0839C71379E6A0F800C7022978C84EF6363B7A79B10386E38E
+8C7DDF0606ED85B780145FA4428DA212AE5386205BA129AD33D28BCC36A0B6CDEE13C37A6C2B
+7456F0C3402FD5B3E3DCE43B479EF0F81DC571FD102BE21029C721E4148729755F19CFF14B1E
+0E30CEFCC09D175AF0811BE99498F4A8632B85879AF0E005495FEF5548F2A1F8C989140726D5
+4BA1FB448E54549A2434A1FBD152E7DF166EA70953C6595CF824CC77984DCB8F8807B7347131
+CB727A589B651697C32E0D52BFC2B36B4C050CF9A1CE072746992EA2ED9B052DE1B2B9A21A89
+682B2BE4A1328C769DBC40BD71202D0287D1F8B909AD0E95E5D80BF8314B457A042F304CA330
+14D4578D50158EECDE6821D1B672B1973393FCFCD432EEB0EB4FB362DCD9B4B280EB5EE2091F
+A3853D779EDAC21A120FA7E03B339CED20115F404C3A086EED187281EC31F25A664811E2B712
+351528C4F0ABCE55D29BDBC1E067C01CB44F8A3E094F104097C5A36DCD1CC621E32747176643
+18D99F5F5D1EA11959CC751FF9F3739F735A12612629BD3346A840DADF0A61567D880597EDC2
+2C70DD8EE5DA9171AE46A8D1D78A64DD2E0F01042CA59FF7F83EC74E1CC0E786DC17A112A062
+7640B89D5F3EA4A57DAA15E9965A81021CF737E0108267C404ABED66D9CFFA22E05C351194A4
+1913A0D12931F26477A06773829D8AEFB25184755DA27F5DF42B23F493D024CF38C544257830
+1EE65AE593127DE8B9E0F19287015892DD881BBF034DF3C789470B567B7AE5130E821870E504
+F893CF1844FE400752C5CA00371433A36DE4C96938F6B7FC81D26DEDCBB7AD4F2519857A81D4
+F06F6A23A74825477C912968FC03B13DE8517BE24831C0E223A601AD7834A3CE0C7059822D1B
+663094AA1D7DE8C524D1E0E5558C664655454A3AA0A5034B50429C5A2AF0C3C862C6D63C415D
+92B2B720CEFCEA0D0C6CDEB5CD89EB701CB49CD568E39059E7B7DA7A85B44213F1060598CAA5
+8D8830DF46C628B18F908DE0C7360B9175F698FF66C5E4EECBCC0010F43C251001F06C45AAA3
+174C8841237E204AD5D7E1C403DFC40F9FD5F469C65625EBA0BC5DF2344228399846C285D9A9
+6E21EEBCD9EA38F25584C5D4B7893E64AF5261656E3FFA0CB1FC10CB512328E87AE3C83CA38E
+9CCF96AED112B93EF8E4D5CE7BF47E8A800E00C4A0AB624DC3C03089BD5C415E8BA33DB289F0
+8E151E5E45865E9CE2EE9E160CF3646726DD25D5EABC96B72A7D2C89178FB92F0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
+
+
+%%EndProcSet
+%%BeginProcSet: cmsy10.pfb 0 0
+%!PS-AdobeFont-1.1: CMSY10 1.0
+%%CreationDate: 1991 Aug 15 07:20:57
+
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSY10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSY10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 161 /minus put
+dup 162 /periodcentered put
+dup 163 /multiply put
+dup 164 /asteriskmath put
+dup 165 /divide put
+dup 166 /diamondmath put
+dup 167 /plusminus put
+dup 168 /minusplus put
+dup 169 /circleplus put
+dup 170 /circleminus put
+dup 173 /circlemultiply put
+dup 174 /circledivide put
+dup 175 /circledot put
+dup 176 /circlecopyrt put
+dup 177 /openbullet put
+dup 178 /bullet put
+dup 179 /equivasymptotic put
+dup 180 /equivalence put
+dup 181 /reflexsubset put
+dup 182 /reflexsuperset put
+dup 183 /lessequal put
+dup 184 /greaterequal put
+dup 185 /precedesequal put
+dup 186 /followsequal put
+dup 187 /similar put
+dup 188 /approxequal put
+dup 189 /propersubset put
+dup 190 /propersuperset put
+dup 191 /lessmuch put
+dup 192 /greatermuch put
+dup 193 /precedes put
+dup 194 /follows put
+dup 195 /arrowleft put
+dup 196 /spade put
+dup 0 /minus put
+dup 1 /periodcentered put
+dup 2 /multiply put
+dup 3 /asteriskmath put
+dup 4 /divide put
+dup 5 /diamondmath put
+dup 6 /plusminus put
+dup 7 /minusplus put
+dup 8 /circleplus put
+dup 9 /circleminus put
+dup 10 /circlemultiply put
+dup 11 /circledivide put
+dup 12 /circledot put
+dup 13 /circlecopyrt put
+dup 14 /openbullet put
+dup 15 /bullet put
+dup 16 /equivasymptotic put
+dup 17 /equivalence put
+dup 18 /reflexsubset put
+dup 19 /reflexsuperset put
+dup 20 /lessequal put
+dup 21 /greaterequal put
+dup 22 /precedesequal put
+dup 23 /followsequal put
+dup 24 /similar put
+dup 25 /approxequal put
+dup 26 /propersubset put
+dup 27 /propersuperset put
+dup 28 /lessmuch put
+dup 29 /greatermuch put
+dup 30 /precedes put
+dup 31 /follows put
+dup 32 /arrowleft put
+dup 33 /arrowright put
+dup 34 /arrowup put
+dup 35 /arrowdown put
+dup 36 /arrowboth put
+dup 37 /arrownortheast put
+dup 38 /arrowsoutheast put
+dup 39 /similarequal put
+dup 40 /arrowdblleft put
+dup 41 /arrowdblright put
+dup 42 /arrowdblup put
+dup 43 /arrowdbldown put
+dup 44 /arrowdblboth put
+dup 45 /arrownorthwest put
+dup 46 /arrowsouthwest put
+dup 47 /proportional put
+dup 48 /prime put
+dup 49 /infinity put
+dup 50 /element put
+dup 51 /owner put
+dup 52 /triangle put
+dup 53 /triangleinv put
+dup 54 /negationslash put
+dup 55 /mapsto put
+dup 56 /universal put
+dup 57 /existential put
+dup 58 /logicalnot put
+dup 59 /emptyset put
+dup 60 /Rfractur put
+dup 61 /Ifractur put
+dup 62 /latticetop put
+dup 63 /perpendicular put
+dup 64 /aleph put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 90 /Z put
+dup 91 /union put
+dup 92 /intersection put
+dup 93 /unionmulti put
+dup 94 /logicaland put
+dup 95 /logicalor put
+dup 96 /turnstileleft put
+dup 97 /turnstileright put
+dup 98 /floorleft put
+dup 99 /floorright put
+dup 100 /ceilingleft put
+dup 101 /ceilingright put
+dup 102 /braceleft put
+dup 103 /braceright put
+dup 104 /angbracketleft put
+dup 105 /angbracketright put
+dup 106 /bar put
+dup 107 /bardbl put
+dup 108 /arrowbothv put
+dup 109 /arrowdblbothv put
+dup 110 /backslash put
+dup 111 /wreathproduct put
+dup 112 /radical put
+dup 113 /coproduct put
+dup 114 /nabla put
+dup 115 /integral put
+dup 116 /unionsq put
+dup 117 /intersectionsq put
+dup 118 /subsetsqequal put
+dup 119 /supersetsqequal put
+dup 120 /section put
+dup 121 /dagger put
+dup 122 /daggerdbl put
+dup 123 /paragraph put
+dup 124 /club put
+dup 125 /diamond put
+dup 126 /heart put
+dup 127 /spade put
+dup 128 /arrowleft put
+readonly def
+/FontBBox{-29 -960 1116 775}readonly def
+/UniqueID 5000820 def
+currentdict end
+currentfile eexec
+
+9B9C1569015F2C1D2BF560F4C0D52257BAC8CED9B09A275AB231194ECF82935205826F4E975D
+CECEC72B2CF3A18899CCDE1FD935D09D813B096CC6B83CDF4F23B9A60DB41F9976AC333263C9
+08DCEFCDBD4C8402ED00A36E7487634D089FD45AF4A38A56A4412C3B0BAFFAEB717BF0DE9FFB
+7A8460BF475A6718B0C73C571145D026957276530530A2FBEFC6C8F67052788E6703BB5EE495
+33870BCA1F113AD83750D597B842D8D96C423BA1273DDD32F3A54A912A443FCD44F7C3A6FE39
+56B0AA1E784AAEC6FCE08DAE0C76DA9D0A3EBA57B98A6233D9E9F0C3F00FCC6B2C6A9BA23AF3
+89E6DFFF4EFEC3DE05D6276C6BE417703CE508377F25960EF4ED83B49B01B873F3A639CE00F3
+56229B6477A081933FEF3BB80E2B9DFFA7F75567B1FA4D739B772F8D674E567534C6C5BBF1CF
+615372BE20B18472F7AA58BE8C216DBDDF81CC0A86B6D8318CA68FE22C8AF13B54D7576FE4CA
+5A7AF9005EA5CC4EDB79C0AB668E4FEC4B7F5A9EB5F0E4C088CD818ECC4FEB4B40EC8BD2981B
+F2336074B64C4302807FA25AFE29D1EDFF68FBD0141698DA0A0FD3FE352AEF6618408EBA8063
+0FBCF58909B21CA4B9514EB27F9FC7B78FF460D374798DABAB857F6DD422BC7983C7CA213870
+1652B6C3901B98B43B641F905F54AFBE00822DD60E2BCEB957BCE7CABFC51F153F3DE4095395
+28E20DEE4B8C15E2AEAEA9A46FFADE11A3EBFA3456633B298DEC6DDA6D6CA41DAE03F5C6B56F
+68E58C0706D3A97E34FD845F8F2C6126BB6FFB72FF4005A1385A1EF92F2BC0FE7441C157B1E4
+AFFA17A5D2057DC2BA87A77C45F8442A36BB895C4FC24FC83BE3831D0588E9D66DC2E71D11E8
+8E9F110493314AE48233D708568062829ECB94AF0441975CD8F1FDF4F626E6B0DB35683B790B
+EFD89B94894C3CCC5AE9A57EDE5B4C5F71CE1A7C5F34108EF589711E2E4572D90CB501068859
+E2E333876FC9251E6A574543E1C2E7A55E186CC9A194DBDA51724FFFE506B0B754666C59F449
+3D069431CDF764DD7E62720625B3E02C1403427A93362205A4BA5AA6727E3D486795D7EA749D
+AA5A46A7C3FF9EBE73DE35ED38DE2A0E9BA7FD370B5B702E21DDD6A69A6B2E2916A5A93849D9
+24B844C3A0334A0D2C95E089BF141DF55E25620BB31DA68962DD3C51A9336EB11FCB737E6906
+EABA756BF7B55EEADE38994C5FE146FDF725AC74CCACD70BBB292DAA5B1C60CD39AC60239B12
+33579444E8846826D3983B0D6A8C5BE07DFE43961897355ED8E72CC4A4257620EB7E113EE988
+D0E8F7947CC822D8563B7BD56D69F144159293E3E2CDED7068F6E3046F14AD559D712D7FED96
+740C962CD9EBA9CBDB0B45D5DD9A05C0CE28DD27D2FE6B7169B409BD1E080B32D6D9F2061BD1
+B9292D0506D482354F59DB8BD14F8D975B8A30B212F524C8664E5BD9C170BB0488CABFB0BDFD
+D18BD44D443B08FB2781840ADDC9BD22376AB814B0429D7B0664B96E183A2675A28B68F1FB6F
+88132C796CE2AAB0B9409396552D7C16F6ABF5B85E93B397A9E1CB74F610E81319CCDEEB6D31
+EA13F95F792841402245230868FF37BC57995ACA98FCA2DF474817BF96B0ECDD4F42DE20A007
+49A91297CB25EF1C7AD56C5D87256AB41195624F1977ECF9246D7B1DB6CDBFCC654AD428932E
+5C0DEE8CBAE5D2CDA5F56C16D62BCB93B05BC6CB5E13247F59F321B3B824A73D4261C6A85609
+ABCB95C4B14FB51FA0B8826A05696617A2DB092D909FFED178BA62599012D08EE433E800B54C
+77C15DCF02086B1F04935F7B79EF163384FD4137391F5E4936EC38677BFBA1B4204F5F80505F
+68CAA8F538EB157E9708306A9745D2E2855EF01450E3D2F8BD3C4C5B4F3697A51038011D41F1
+6E4C7781B4EECCCFB86EE892AD6E9A2C69C1AB0B11DE2BF88964E5DAE8A3389F18DF163B375D
+17895F0D91D4D52C3A5BE455196251EF12B8742CB54D14611BF5227EE52BF8F464EF8860579F
+B8BB6191E9AE46F27BE34D732C2DEC814D00FB9763848F847AA9FAA73CE9053719C781C3B3A5
+F27E614187D3F00A330C2F76496BF32E924E27ECFB6C459353845D446F642061864356CCAAA2
+BF7443515645B51F4DFF4E244F8B7A556EE38389EE3BBF9E69BD72D6BC0D134E134D6FF43608
+75EB8838A885DC681004EF4383CAFEEDC688FE4735F5AAA4A11B1BE4D956AE9CBF8D8FDDBC29
+A600215C189BC812A1F441FF1CA1FD6C5F3C4013528961E676FE3C9ACA3D44B913F51DEFD42D
+D4F67BE410C4152B675731F18315030FC2CA4BCFAF5C5BCADBBCBA4664FCE78984D5C8997B40
+088F68F31C8D54D44575ED23533BA3A504C1BC90794AB111F1C011BE57696786AE25551ED73C
+35F6A343579DE01675DCFE26ABDE7A3CF73C121B7C33CD3D42BBCFCED99CCFEC4AE08EBF2AF4
+FADEAB53F6A2076F8189503DD57F84AE53CAD55D97D3734E706D9442FB175B5CC032EC649776
+00A369007A47B17569E32C5BCF5722AB7CE03EDC4DB3C1B3D31A73D3BD274C53359C6BE06BB9
+3D0026080B9D76F51DC69AF96C8F73B83BC8CEB5D788E69571EDC574E71C06B3504141D47179
+24EFC2CDD8D0CB9645A06922CDE8EF7B297BCFDC0C9D8C65A0D0CE542BAD98B08BF75D814CAA
+C3C51877584EDD5412CAF5C69599666DB2E5571E5662B3DA510358234D553A54025C8DCE413A
+CD0B4FFB252BAEE591382C0C0A293011F3649508A2C7DAC8F153B869C77D148A0A81AAE057B8
+D32CFDA1750180C98F70A8D0FC62A976F785B6F67E9665D1A54C2F591E4B9BC1B8CD0B23E6B5
+3CE5EE85995417A8199F68DF12C88173F69D45D8E6208DF7E1315CD08C9F0945FA751B9400A4
+F44F1977355C5FAE4EA84342F04AE3E785DEC832DE82B9C6D57835734080DF60C2AA44702FC5
+BEA1AF1455DA321341F3613442D63F6B547FED5707EF114B654E0DA6ED340A9372DA4A99A987
+CBE785342FA9D2E98789417B87BFAACCD46C16D11B5C6ADBD5619770810A39D74BE2620CD99E
+49A9DC91E7E6D0B6AABE9AFDFA8D532FFF1310E0FCC91C0B103340E0F1371FE7801B9EEC0F67
+A7C7A26D18FDDADBEF951FCE20EF0558B9F32C560E41A87AD4A94DD0E0F1DC333F6667C22C65
+D995B27D25371579458748E078D5EDA6ED9F84ADB3D35547FED29BE03ADB683BA50A9E1CF955
+CDA99F95EC45B6B23F43A05D0607CAFDFB9E1D830613C22F1C583A65381CA5C8A736A8B34DBE
+70C116699E3144AAD48CFC32405F67614FEAFDAF0106B39EE47B8902B1511665BE23981ABC5C
+4E148F6685ECD9575C66DD36A22E41198227E7D7433ED856151154E478D51F5B093AB0A7A923
+197864F4FD6AFA7282DA51534B0F9BD0FF070795BF954E02204BCC3B0907CCCA5F3C478F7EA5
+402556883EDA2211C394C0D6E921F502368BA96DF89C39B9A36805BC76FA3C3FD390B0B75262
+7D8774F66D18A074BBD255B9FB2A2FE94BB30A928243B9F308BB789FA83E6BA7B94946DA5B70
+A5047B8D9BD59EEC2DE5A21A7AB0A826CF02CB675CB5C2EA3B774647962CF7DEB01554CAB8A7
+B949723EB847A544E8C839F36C10E9BAB10C3E4B05CF6CC46CC6A567D9BAC1DDA8825C726450
+68690EC820633567BB2275BD1271E284193C4402D5AE384669294AF99467162E790B3CE41F0B
+BADEEE07EE77BC47CFBAA76F28DF5F7B870F95B04A8DBD85454405DFCA87B6B4DC65B3D5F125
+65BAD0D22082001D0061F10991F3E1682527EFBC3EE8F072F4BF29F3EB210E403B142B82B97D
+6AB9A5CA512E448EFA90F8043495C2FC11730F67949E0F54544094592989D7A1CEB43AFD0BF5
+0EF49C81C996469F52451CA818176ED2AA6FF8276030EC931A9CA6BA331A4B463CFE77161410
+C4E8EFAF9395F51D13D1BCB2841DF7DB65FA51ECE17B5A321B37AF3215A69E72A74C4FDED676
+7930CEA4517DF9A7148A0041F4745E4E594B0219C9AFC5EE8059BA9BBF415302A9CDC48D0460
+516A270EBDA3A6997EC4335EDC0F20FF994C69A486316AEEB8584D0DDAFF255F7FFB07C77E29
+D58D32BEB7F337E28DA97B8C7C44F8452D9C629C38E03F402824B24CBCBC6B4980559921D69A
+A48F593C4791B32FF0C6DB1546E37F831A82E3EC733773310157F50DB7AF0684981345E7E23A
+7284029CB27BBC36D2D41EDD1CF0C3E30895D9DE0A2319A746127C37B6F08BB7F9A414FC9FCD
+2C17998F7E6CE30C395E2BFC589CC0FEDFE92C659E4078DC7F83E9418B340BBEB23B52D45983
+24238EA02C94591014A4D7C12451F7BF20F3F9DD26C515877D6C33A2166A4E433A1748AA192B
+C0D33F1C4FA89397E39AB886AC737440C31FAA635676A62E6D3F194A668FD0F8FE5B6A8BA3F4
+B4BA2198C837E4B9CA708754CD0804AC78C9218A770AB3EF5765E14A69D14C3367F842B72352
+3AB69E5E4FDE7893F99C88273DF486B4080089A0DA5136C59E1DDC48FC71C1E9C8C591E8BE5D
+3C9426A657E65FF430EB154E2DFDF4333FCAFC588B61F8071F65CC8D1CB15E27A425ABBB0D78
+BC366BFC4F88122C66DB571555B5D6E028912BFD89CF3E0E56C464392A4D505A4F7E23CBC169
+CEEAAD218C7553668F549AF2CBF9A297805B3453B7C61112BF8E6325B7569E38F635B2E13B28
+AA8F7188E4C94E3E047B6A6ECC050ED9F3A43B131193D84B32C0FF1406B9B66E3627719A781B
+676DDACC16915ED237D6B1342F3A9D981D9E96A1A8D5827BF165BB901800D6C900A53271C906
+D3D106D26636438E1B5A0C9C97CEF25F0C8B4B5C037C10A9295DA210CDD608ED6E0B77CF2EEA
+C5DC2FCB7B5FD0122A3C3A03DCFF782E3C877F210425F9FF99235A969ECA67AA7AA290130D3A
+64D6165CCE3AC29C5EE3B4B86EA3AB78373C664DBF6B99949EE56B0BF0F94838701D554B26BC
+45C4DF406D9015CD0B2147D338D1C71F7738E3B922291C96DAB5D9230190FE3299551698D8B1
+4EF02F5948BF5B5E4BE42849C001CCDBFC06DEE4FF6B12832575D1E5863F1190BCE902A650C1
+BF869CE7082C9388A1DAC4CA0E02967E3937BA91CDE0E931BDC07DBD87BF028F46CD00E7A7C2
+D26362E0FC0BF267D6DD23E1DB2CF41C3BDCC785F2A8D12067CCF81E1F113DA147CAE6B729AD
+E0F85369AD28239F35C7C5CAC87CDEBA07AB233B9321055B972A98CEF27C1B41EC063015E8D1
+A2DB01AFFBF0BE01C43DA54A86F199E68432106D252837759AE1618D7008D615AA436341DD35
+583DF423EACC1B48D568FF5985145CCC285B2803F03B5B046E7514A8024FD786D3033AF60962
+0004CBC2609766039EA8B28086019E4BDA30113CC40E854A159D86AC49E50D894595349E8B37
+97239DA96F55B565D5185E630DF0BDD44612DC4E83D31BD8A4372AFD5420F6B379EB8D7373AF
+3C91C999CDBF3AD418DB84AE6629D44EB28AA5EE9583686EE4F9435DF0971A3059BEAF8651E7
+4E33E7B712174BF952795561BE53B5926CDDE509665488354D5C3E288CA7B679B9B969C9C6B0
+44AD882905663D1F5AE476951A637D4125E26575B2CAF43DFE5C6181238D78E0F41F7F798F03
+FBE9390561CFAD3F29E9DBBE20EE524344A7E3A730C529A2BD8506FEF7D571AB99A36E136C67
+897F7C38582782BD04DC799F8F66432E0D5AFCD239185E95C8B6842CFF16F2CC128B8FEFEED6
+95C85E4FD702A60553A254E9EE2AF1A0313A5D2AB5EB559064480B13412085120CB6C90B1AA0
+8AE1FBEC261077B9FE65E3FACF4DF582E89B68A4422D0460DE7A8523B51928F1416A9AE025F9
+541FB5FD5A9AB5508ACF97EA891BC25EA5FB8C7C58310720CC40B8366A806DE9E4DED30426B1
+E7E9D9C145969B2B6D27CFD7F7BB7B2265E79B4BB865B0645209728891A88C68B20E681B4472
+CD3105C2238931FD048B43400A9819425A2071367B962C69374A22A06990EA59D0FDE438D552
+2432C1BDA7A54E52B594B662740FE6923CD04DC2E7B05748A8BEC182DD5079DD44C0FDE807B6
+BF4025992BC6B6F24C2CCFF8385CCD37167BFAC7934E521BB7327D8E88B018877D690F959245
+FB26551A75A06E6AD8E5B1C2363D2493FD947431050608AB63F15D1966D6BFE4F1A5AFDE5BCE
+8B08E91CF0514B4CE56E1C62BFF778159B77A5919DA5F4619F7A580D6053126AFBD8363082DC
+12A405201442BA72742E26C7C8D3430263C9A0EF34E0205065977E7952CBE0FDEFB3902D7716
+7F088103CB7D4A508C867077CEEA5D1FCBBC1AEE5F26AA7A85FAD4FA3C0D9207AF49B373F70D
+0FCBA87AEAFC7298793693865C156FC0E0E8E7B31AFA7C473275CD08B7BEC07BEEEE402AC272
+C666C61F5BA5C1C513DE5909D2998EF7C439ECF9926DB57E82772263979BEFB72DCCB5842BFB
+BA0EB1586CFDDFEF3A63F1B4FCCE3894E981D6268A62D1D39F918D4F296381D5AB356450FB31
+CAE01FD7F36718C7A54D503EBCB479CA191D5DBBBC08723B8279F2491931D2BF54BA9A93C214
+549F66C3C314EE37B5A9951D62A6776E6C7B4989BCA05ACDEAD7DEEC09BA97A0DFDAD7429E3F
+480806EB9C7A3865B5A0648530247CCB71AA31E1F8971D9649D6A430BD8753FFD295F30E4E7E
+CCAEB12F4A5D9B7902FF57B08B3ECB4593C988758CED4A394E412FD5A132CAC5DD3DA61CA3A1
+3E91703702388EAAD89443E70F7D037C9FA28BE7C8261EACBB7AF473EEDB0645BAF01C5F506B
+A85813FD1D5164F541E0E85D228E92E60D9BF5C108674C621D38E726D2E219411759E8063C2D
+2E64120C66BB2A8F6F00289C3BFADDDFAFADC3285CD6AE1E624A59D7621276362382D2156A49
+319A5B1E2B6B6D9B9346A59E1A4E9214C66E17C3EB5A31B394EE2F030C88FEBFF5C659E29FD0
+5F57C35B8C986ED1B6FE33ABAC7334FA0653DE6A935CD0CFB4F785F80DEE2D651BE3418CC83B
+18B5B4C176DE3263ED6B4F64D4395A48C2C5CF13B8D21D63D85E2228F6373BB766D288CE9D05
+AAF98D0848D1AAA42CA0629165C7417E47906AF4ACB4353CFE396B82BEE33EFCFA2531DB7237
+9E81F0389A72E0A1D423E1DF66772732EBCFF12D3F83DDF18C46A00297345166F3C3E7B11974
+D70AB02EC9629D4AF1F2857FE14D86C9B47B79AD89044CCE0AC09FFA4621608F7AABC07C0C76
+60B96C4EE1456B998F509F7D77C9C194A148C48B48738A6A0AC12E50137764914BF6696B7049
+C8F13763949F04D6A5302B9E266EB035A11FF5EAFD296F209A3FDDBEB62F1C7064CE0C449A70
+A29012E041EDFB71C9F93BEEF2A564FF2D8B248579769A81617ED8DE4F232577E0CD2CD650C2
+DD3329069017B0B427651E532CB6D7602A81BE2626EA6AB6D0C85D69BFD8772D62DF7F6C86EF
+67C8FBD17F2D2DF34DC52256C72181093E4C876D86C9A66C91A8AB1E01285763EA93EA6B7A4E
+6131497BFC536F69B7C02D28E4645CC6FE5D061495512429A1D3752BC565F769A4475E2C415E
+8CA4985CBB329D49B8AFD45498CA630C3CE56E7E26CC0C4FA9446D3A402D66E39E3E3210644F
+C9A9E0E4445180C672C32734872703910DAE90D102252EB56864F1CB6D1FB8E4A51335136989
+08C42B718DDFC4008264791D325E6633CAC13611B10672C263BACF0820F84B7134EDC9E2373A
+61C9C8665B25AB7A583A4983D30386AD84EA9C7E021F64C9E54F3F9B3A3D3267EDE3787DC949
+BFB2AAFF21B6CECB88129DE3200AD2693B8B454B18CAB17134A471540C009EE8DEFFD2C70AF0
+A98320EDFD6909B0B17C3F4B857D1FE5D963EDEEDD8CD3077A2980FD1AB6DD9AF5B151BBF7CD
+6B645FFC9C103E45552F43CB401BD5F084116D21C958E1C1450973C0C393F4BA75A9EB1C5438
+9CF6C840FEB5BFFF673E058D8738CE2BB8C07CF0B2B5A837948FED64FD7244D5B5C53303C50F
+1187FD6B085A9BB6E5DED081B78F4E486E0E17811A552AAFC50A69CDACF0838029D3DA87BFAA
+13D89DE7960E332650E5986F940C4493102DE366D8D574776E019205B25F16B6FFED5AEA7C87
+BB558497FD216D2937452B62D8A63D5EC72AF5B83E91BB72BD04CB724B4083C60D2CA9D125A6
+9DB5D2F4212BD48BAB37FCC933C471245AB99284671F9E3E7E6A9076117F5CCC8D469B929BD7
+C4B677DE5BD0272D78BC0434B4A1B4BFF267C4FB588631B1BC3DE1DCC912E3902D96F16B2A35
+0775BED06BEB2F1B7B530CE45337F744FE08822331E4D2913849A0890434088063B0307DB4EF
+A561810F9C2073B890C67108A95CA581632553F76DFCE780AA175675B186D24379074DBAE021
+89DCDFE396A8FC790699C3ED4B7799B30F119D60EA3754549A3CA44CC2F17744DA59E11550D2
+B0604AB45A2FFE69ADE126FF2F92CC75EB1D8FA6CF2C2FA2DFB49C1D16F8074A7D7115339E93
+C09265B38789A6816B12C803178A72C7C51CF78557D3BEB2D3D5F0A4C53511158145EFD256E7
+89DF517BAE8DA9B9B4C494AE42712EFECAB7A7D5BF4668F1FCC23EDAC598CC414BEE707C4C33
+1F02821C296725BD4F14F5BC97A15B8ACED9CF5EEA5BAAA216EC582692F7A210BE4F6A41E96C
+E3A8C65AFDDBE800E035BF0595C7AC0D12B87B4D409DD6772D125249F273108ABBA0973A7CEF
+4F1ECA5C9A17FE3071E54E68507DFD8EC6B787DBC547A90C43AD42856C26324178F2E6D2CA3E
+9043188372819D3F02A9125A3BFE766E7D19027CFE5980F5E1E1A7033A5BF236169FDBBFD2F7
+3EC6D56375B09FA750EB4741E101241CA191B49DE9C681E42849E23E17B81973E903F52B9AAE
+B07855AD04C30DF51C9D9B54F718C7A11038F8DF63DCFE6C2728E69E33AD933A517CB08D3DCC
+7681F673B2E17FC38DEF47E2A2F7FE7173C3B6922EB57CD9D7988F6D3A768E56B46AB8C7EB9C
+ADDACEFC45E1E245563C0A52F719FCC81C635F159013EFFD5432C697C105CDDCDE49CB5C5696
+3CFCC2BC4506BB906910876395C8239C8E5C161471B3A85A353ECA17FC9BC12B805B05D53AB5
+BEE2625109ED742C14ED2B08C5D19E7B4D9700D6D3191358D481D2C0C74EE8BDB1B7C40C36FB
+B823E5502F9ED6367AF146BC4E07B428F90B1E42E6D470958FFFB5C863E73B1904CE37B9A8E5
+90196BF43079DC61FA5BACA8F312E8E8A9B707DBF255BC5B3DC1DF58D374702DDB45265644A7
+BE315FCA2665192E5DAB08A6BEF085AC370FB81F2267D4D1E05BD8D69BD3D01A1498020A03CB
+BB8BB7A095F10C9D88DA27301FBA0AFBA4D3B056D38EE6A6BBC532B464630BDDBD4CCBA50C2D
+B04E49AB8E596923BA3495E7566268B226353E7DCA7B11F28E795CC39F974F426149E0C625A7
+EF0B4CEF3E3A5C0A964BEDDC2AB981E564817B963022BBBEC1BE0FAE2E05B6F5F41648FC17F7
+9A65162E31A88D0ADB71557142D8545CF2F2EA1A0362E2FDE496923A87C8578D5482C51C52BE
+0852326DE3D75F2C6C3EF3024EBEA779DD63F39BB8E2726A7B49A901E3BDDF9586DE02082B13
+86FB777D9F09DE377682E14AFDDDAC3E81F485B21CB2537130EB6F69A77B87A702E24BBC2070
+6467E82621211300687F18FC809E976FD8EF3932E5213EEBDB9D184D31433B353CAC68BDE9C9
+6DA802FACDD168E79491070754E5DE227FE2DBA96C51C16D8C8F0EA9B302A398B2F9491562DF
+08AA4C97324B6FF2FAC68A5D079AAC79CF77F0249A0D1C42F441BA372744951077F8DCF83A26
+575EC5A87AD6DD4F95EAA1B7F9393C27ACD5F79CE6031E808E13A55C3829D158D1E59E177FE5
+0E87F3CB39A81F14F35645FCAF56EB49F5EC78EDB848B396C72F5D928E3561240E2DEDACB37A
+994154940F412456119657381B52EAEBD728B026E87FEB8D7EA1EE49067C5D6BDBC56C578728
+820D583CAC747F243F6F4A59DCD5B91CFF0232F18183E8E25C76A2C7D53E6823899D43FDAC50
+4221799C56EA08F26BD03501FABFDCF4CAFB9E7E2ECF335D8C25F99D40D91B8C93BCEC6B11ED
+9671985B8BFCDACFD77CBBDEA246417FFCE021DE54FD0AE4CA7AA19A9458426161513A0F5D7D
+4BE2A6DFBB4D6D060E5EFB596F76083B53EBDFBBA1EEB78137466AEC283FFD78BDB6DFFF9748
+E47A24614104CEA06D88693EF2203D8792EA5333A697E7B7CB488C01FD76AE792AF0B8F88F02
+7CD4BC3EE5D4A09B968DE6B56DC55419A716DBDDB733F1B86A27CDFB8B3AC29DA7613E6D9042
+CE9F648A058E2321DDBC10E3374366D6BC4CD910DFF41037CC909580F4650338C9CDF3EB01CA
+E0D33DD1E1B41524E0F27A77337BEBB6E91542F599C9C7A1A4551D90537F985CA14DB562DC34
+A07F072202E86FCED29D1181A2B1D57CBB62BF6E5E7702A00592F8B018A12C826E569B7103B7
+8124D887F03A935B54255DCA6A01F433308A55A71B305EF69ED070CD7CDA1AED6BAB529BB506
+970B92DF62DE28C05F21C5FAB79AE4BF3A8B2865C408553CF4CC12E3DC69A0E3A683A637D2BA
+187CC5C615056B1853B349A1B88EEDCD9748FCBDDAE70100551ECF0B897A0CEC97A456FCB787
+49F74B25168181B75AD5F523F4408BBCCB011D55B83A63A0D96052FE523DD891664A613652AE
+3A979AF585C69FC4C34CE353AB52C5DF99D6908E1CC86D89CB6A138F42FA4D472C48E334F334
+9B2C47DBD9B6B6A92004B7D3C994EDF5B17F1FDDCAC72F8EF393838BF5280CEF41B803513605
+381637E38638004FF04BBE10C46A8135E0B5DB123C0F2F6453C0B648124CD0C7E379742950E4
+B7CF205BED93FF6C0439BB3BA0DA7B9C2C9FEC48B5E49E10F944D2F499C6FFD3250F8F7AC82C
+93EE7C6B63056D1278871FED6BDDE70B1530118D556696CCD90FA33010B35AC56176D0BAF342
+AA846BF7B1A95D98FB7C05D56B4FFCE922F6DF7A09BD8802CB536ECC23C89445544F922DE501
+700910AB28C892BFB1548C48FD3D9B0BA4B5F5CA44DFE67A8E2D42FDA79F9473FC6EA646483E
+CEFFFC0254E3F930C4732C8AA392E4AB4E26064CB1A185BE4CF0677CF1706C4DC8BADF32285D
+6D02D2C4806B6E0E2C5C2884F30EBF9BFA16BD7BC9E2B779173208C156927D2848DE30A5B3E8
+622528D9DAA63E06D14E2E368FF5331279680849F8D9B5FEB448633D444CE06BA1F3C8831018
+FE7BB9ADB9A896AA75F9E489E9B88342E424DFFE90976E4700E6C6EEDAE9BF6280AB78CC5805
+93347841BF10EECEDB86AF0CD461336515CE50989396665CE975D1F1CB0BDC36B619F67CBDB7
+B090B04F447463F62927FCD0E1EFA73BA22063732CB8557E27969D5945D8E82F4A5ADE094068
+6AC760EA8FFD127653F954F0287C74109997F1B26328FA9556C42C7B01F0A810194A9CF0D716
+D252504BFE2C2707456A4422E84AD233F4B32DE1A825F72C45083C7D7742B6168565D48AC1D5
+2F9192ABB0D491A9A0A9416420474D9EAF1E146B2EF1F703B2B33838C4163DFCF8242CA6578F
+37CDFD4144EFC3DBCE88D3754AF1765E677D670ADEB2FD2DF7882A4BBA95FDBAFCB9E09B7177
+CEF80B03DE222CB6070D7D7E09FA2297EC831D561A2069F6E95E9EEA70E41B126893ACB834B1
+778BF4CF338A63F53E4828D75ACC76E29EC822866AB6C5756BADDCE0E3181837E1F7DBAB1405
+DAA2231B88E176444594000F12C8351354F3A5722E9E4C376B983CD441D6D465F3865C8111E4
+7604C61A04CC59D185CDC89933B13B3A9A15360AAAFB18008FB2048000622905641874659693
+57164FD31ABAE5FFD1C7210275EF0198C74BD7F04BC02F9012A6BF7A8B9CCD76D4F449DFB3CE
+7CAA4FDB6E04DB1099861B53FE6A8497AE454438A0099C7F14AB799B9E8337128ABF5C523F79
+49E9931D233E8466029DD3B7CE86298700771876032656034991E213CFB22FFC1DCBD88EB6CF
+20EED29B983BEFC5889A4589428151A249BF85A7F38E5F70CB6F87A706A7A057F63CF366AFD6
+AA4A481FCF7F848B650CB9442EDC33673CD98F8F895F4D82DDEC9AB457CF21EBD339769292E1
+D17CA465997DCE5A6829C57392E08C8BE708ECED1A9AE4786EDA0095A05014D4AEB167C1D1E7
+83F9EBAEA78816BCD4AFE2E5D356A30828E11A5641344B3D46A3E8AADCAF22DB74FF57EBEA7B
+779B7C5DB027D6FDECBE1B0DA2EDF3219CEC627E64CB3142D303027F74E694A983B16B33FF62
+D1B0E114CA59B30D2261AC4337DFFD0273ABC09B955E740E6ACB4F20969DA27883B3C162810F
+194A9537F13E58865F2B4611D8B9A9C4A59586E583F9BCA6E8684C982FBB42AAFEB00F6A2428
+75A8D5246830E5D9FA8B479C36225D60C79390094C3820D9D20483BD8B28C5979DC27905528F
+F829C14E346511BEFCCB0CC2DDFAAFFC69FA01F2DD592B0A554C8BB1D3DDEB53D871DE3048FB
+9A816A40A5EBDC1EEF6725B59F6EFF26E4DA46360D4BFE49BF623955485875028F78DACE31A4
+B8F4771090B36B82E0E91C9F6B63DEFCA85E751F3A1E6D47FD674B6B75D34CF5D230012A2A02
+EA49017E9AE4E22440C836923450A7CBFE44FF5E90D9273FCE99A56CB0B4AE070410144DEA9C
+75282AC74C8D426C20B54D48BF5E893D9AED7CCD4EDE4B3EBBF29320E9F98E36571E545C09DF
+06B72ED2DFDF058446FE62D7F591326F7A0405718B97692CAC9B02D77A37662F0BB150102D5E
+820309D5E1D4DBD95606111A4C5D0E606F890732383B96D58065880C679C4FCC3F4FDEB870E0
+022EAA40D367A1CEE2E43C31B0ECE28481217A77201B361541D40C4C7ECBE26EE0263FA70942
+A9C4F90B986284113943E170F7C6283447E8862701E31BB28A72DEAA7669688BEE2939086378
+99339AD8C2C1BF9558B06446864DB50526FF514EBE3122A3059BF27307F10BA5B44ADE0EDB6E
+2693D7DC2B80E1A84F635126960FDD3B6110E84922D484261C92C8055314E5A2E8FB6DB0A904
+E291714B4B1D28E2F88734343E42C06ED7DFF193B1871B028E7A0AD51249B36258C0EF6A5165
+F5B7AA3061F0ABD6BE779D7E845D6606C9576314C04E98902DFC7CD027934BFE804B12F01E9B
+5438301E280AE84371CC2BECAA06AAC7A65BB6B3F7B642207D730AEFFD55ABB33B8FFE0FE0C7
+B16356E092BB0360FB94F1E8A2FE7FA999CA66B6675025CA605A65540F6D5619887D7E1A6869
+2B76EF901AABC5A15D529F5BFD446E04E95A1BE213EADB545806854ED5E346813ACC82C927E9
+DD5B45DAA1C1D57A2B451FE91CCCDDACEDE657B9E37D605CD4D6001FAAA843B9EA84917602A6
+7519B99DFCD39DA8DC60A1DF52A0A0C8CD35BF9069C1B8A534B4EFAAA4B42E932BC61FF11A84
+6190E9BB2111D13F08570DD9C9934D0C1DB1EC459A3BACC8F10BCCAC2BC8270B7774BD3065C4
+D146548D1959395266F420EA71C05EF4D37ED0EC391890BAD4D686D3D0994B98B9A2629C2B66
+88E453167FC651BC70DCC608B453FEA208329E9B93BCAC1A7C9C5575B43D32708079AD2FEA25
+DB03A13440388F8A4BF9C5D9CE42281284C0A1FEBE6B7BF94B58257DA32011484398DB2C2856
+23803D4E578F30BAE73A57D039A2CDF56BC2A625CBADAF7FDDC7744E8586D8CAE909162D2A56
+1FAF91099DF981C72617F43F1E8DBC986A1944B370DDEEA5CEDEA04C704BB45227680EE2A7A9
+1D5F71C8B429D5A1E22C557932A19B669A6F7D60BE8B5A1A08538D5396492500E8A30D8F085B
+9F1613E18FF8511D8F4ACEBC9DBD742C6F27AF4B62026BFCE268E3239ACF3CD0C54176F1839C
+9CE2618F5680353A0D234181172DB3A14523D69A204CC7A5EA4A9CF1D78275804D60D41C364A
+8725CB1B72759A30DC5E2920B76E1B486795CCFF14FE6615700ED97A1BD4CB16090CCD430640
+36FC003368B1E949D23BE8E7CCD7F4FC6F54BF25174B56B42B505E99BAD37A9868A92C29DDC3
+29F1D5A84806B9382870B3908CA87C3F840341E45731E5B7EF5B066AB120DB45D72B0E444BAA
+AF4E948B34D354C244263505EF3FA995E2DC1177B8EBC01A6E2C7AA5766CEE90D3AE7273D569
+87BB665A43B4697A0EB98C120EFAB3C61684520E148FB5227939D6208E30CA72FE0D661B9792
+C8656B44986ECDF77159F0ED52F695DCE64595A243B635A3B4D328F73D248E1F8D8244B2285C
+B5F6374E32B2FA7F2E29828E177F81938E2AA1C70EC9226DC45840F8F7CE4A377D32FE6C6550
+61389B70C4A5AC6D62FC03BDC16B1C15A79DBC46623501D263A948BCB2747E85EC1D0DAAC606
+206398A2FC008F369B673FE9C12A1D4D06D80D625F2412FD8912D625F182307FA2731435CDF2
+0C944C2ACD5094A89530A6CF54BA8D347B3819B31ED56C55AB6CFFA8C8C3C0D3C6034FBA9FBB
+373F08C76E79F50400FCF3D1F65CEEC11C3623706EEC7ACFE84B89510867C0B2FA6F25996733
+E4CC394872726138D7456CB398052F4C03705E27BD85EE755F1992D1C6D330A95B6D208ADC76
+D4CAE80A78C75AF6AE4976E564F859429ADC4DE87D26A9A6277E14016491D69C6B9368A6DBF7
+2C68EE9B4B32CDBB6A186728B354B347DF5D5F33DB9CC2F757B113EFC0FB491ACDBCBCD70D0E
+8E22322E6BD3336E642C6C48D6DD0DEC32C39D6E786A99702B83F644E3039DB0BC3BF91918E2
+41A1D20AF0CED35FBBCF8892858762FFDF4D855DC043CF348F64B9F0EC40B0D58F1A267C6567
+8609A29E8508F0F5367E0528845F666D3DEED15A880691675C9977278FE5A0C75C97F10E201E
+97D255C40BE2DF023F3842ECCC0F474782716CC0697D2305D2894B2149C94ACBD4DB97A8CC49
+317773662D6533D2E3BA293FF6EC3BF29B897723B200DA0875803B40FAD899E953168BDEDEC9
+75D3461618652733F9F1AE97FA05454DA0C39B27308F81D6624E7ADD0E909A721B0B5B87C735
+A0F81402E1BDD37437951BAE5735BD2D9C5A201DCFC832893AA343A6E4C8F879BF7ABA330F71
+AD22AA121C49015A6E1B4DE63337C3C9B4BFC3E8456D25309AFB76665AF8D3558841D95E1577
+87426288F3A108CC0388A47FC77672F9F837AAB1BB03395208BC7800F59D883023DE8DE4984D
+3550AC1E435A4A9EBFB9024FEBB3997847FFB5AC94EFAC7E480B15F49EDC4E1EA47CA691AF89
+E372FA1D51A68D417DF4D7011D8B129191F8CE9BFE2D80FC9391E51539A8EF2FACF34C91BCF3
+C5C81BB7A3050E0EC13E3CC2D03387335B307D3CDEC0D43A6C2F348C3820CDE916070CDCB485
+D1ED73B708BD083E4653EF4F4D1BEB104167E5C53243C72B5DA52CC360602297B86B012DAFA7
+BB0D762D78D7AC49D84DB797D4BC25A89309E3715BAC2970BB31C959221EE2656BDD93B51D43
+0644E3EE633EEDA51E1AFF403FAAF247B15DF007EEE990B21ED684D260AD6B76028F80D65884
+4D4E8BBE91DB43DF55819FC456B9402805DF67958AFD45DBE94E54968ABD3AFD2C456B785092
+7353FB25A936D9D554A21262A3CAE1692F978F58BA5DB38A55548529695BC0A455AFB4BE3128
+FE733C7234154F4BA0F00CE4ABC7C240C9283831E9A7E0BECA118792AFF6CADF3FA74A572F1D
+B4789FA83E7E9881E48568814E40E4235A2ED72E8FBDE71ED0FD40D348F66D08E56256B0EA0B
+46F54720DF7E39654B4B7B23CB4863AB341CB2045EF7A71A9AB550E1C14282FDA3B60D306906
+09B9A2F535670C9F7C6062684E1062BF1B1675288E002412AE17FB3D63125C4A577D3BB97C12
+F4CD925282737CE2DA3C2E11733BA9B5DCEAE115A0EDB3ACB8BDB1AC0F687C829EDA0022D654
+DC3D051BB7325CFB66F96C7ACD1A8BAEF2BF65C167DF291DF762720D39904AE50708552D754F
+8F43FC2D5B91B632D2BAF70C67D3AEA5CE731C380333E66A149E46B32412163C743D128F52C1
+24CADFB65399355B4BBD4C0A3FA7C02DE323911051DA20124B77AB931989A74D584C0F6126E4
+31C6DCCE725FE72F83CCD0CB35F2AC901501411270FE902BBA4E6A4C1DFDF12E2E857221702F
+F0749C495E170F01578BAB3827ABAD809BFED83F6FFB243F40DBED47F896DBD37CDB7D63FD08
+673E13DC24F4052E1551BCC080685ACE8D3184AF5A1818B4D48811F32DF210C8F36FB6A20C9E
+239FA888CF0EE5BD1A87F15C3C6A3E459BD006A69D2C027A09E83541D4ADDBE98FD665AECC35
+C311871A4A67FD59EFC06B2CDAE51F00659B4C4F9F79DD824485BC073CEA94DBD45CDE541355
+F7244F5B5BCC6C76D82FCD1CAD3E2D08175A375098DD8157B3E30184658EB500E224782ABBA1
+297432CC25FB54ABC54C8CD85667DD42BFABFDE7FB7A4E83107AF3AA508F9B20650AB6D01CCD
+AD374C67F31A666BC1F505A6D94C0C94E4E73EFF7D57FF69F4F145504F60A032109AD829EA90
+EC25B66869ED39434EBD3154E4CE7E044F01AB126454339B41193FA9618AD7B49CA2A9B2B595
+684A35A5534CC19A989D5F09DBE09830284F895A4876FC5F7920061B06CCDCCF168D5022CD6E
+AFEE4D796BE4B9BA38C0AEABB4B195B81B621843DB7DF74790FB46F5C07426C8A4FD0D9F99B6
+C0A26AECA5F89E36FA8DB06884AC9A3ABB1AFF9C6889BAEAF13CADEE3F0CE80E00EEA152BB64
+85BFA7B5AA02BEE1905EC4F666449CADC026BA91B9ABFCC5C2002950D35ED46575004D566225
+82500274E2ABD691D0013343966037685138B76C4218BA60855DD1A35E4505273C2CEA443018
+DB1CDBAE7DBBD948C96F5DB10BCA8127CCCAB09705EEC19399F31F3F8AA774BD4EF950ABD0C9
+1975B346E7CEE612B6A4FAB61E6CDCCDA47B51D499337B98B0B6EE8973317DEC69E6F1564868
+A50EFDC5086C806759EA40BA0F036E86C8E76A6346609A7D87C6FB2FD5FCBD9B1744FED5F412
+E3DC55E519A941C4193F66E6E4656D04BDBFAE608110803F9C72BA22DBEB7AF2068A1425EC76
+E6574311E3E1200DFDFCB4A0830AFFAC7809FFE3404AC5EE8ED43BE8425C1A13904B1F9D220C
+9A9A6B9295AD0B13BBD63E1AF6AEDFE6F54DA8AC585B2FD53AA94B2CB65377D10EE13460F6B3
+08BB6B3476DDA5FDC5EE7DA695EF118D79051184BBAC35EE74D6F046F17166E0F12604157979
+399734F16985182FF1BECD19131570B97A817C7467520EB148C3E2887020F8C09CEDE0A54A25
+4E0311A504A411407EA89C2E916F60F32C4BF8456EC370ABF03D1B2D95C991464EC963368441
+1664CB33186BF6F897706F7C500A9D0AAADAB811985D1B741AEBB6593FBA0E07E004E86D87CE
+A653B87CAB70900D1915CE3D19BE1969312EDBA894C541F1227586721DC33555FB28E81307EC
+F93F164399A58988FBECEFF7CB8D1A751B4FEE0AD6D2638B97016B2DBB034EBD0528BF06C08D
+E822804EECCD4C943ABAB45490FE47DE7584C569F9789E8C1F213C1924D196C63B3D57DF4385
+FDB9BB4D584F6C4B736D32F0D533C3699E90D1E54C3F4ED914A788A0C364F7D5571EE6F61D85
+E5CDF8315FDEC93DF38BC0C7E5BA9DAF885F99DFC9262F77BCD3137289B43D2C433111E8937B
+5CBF3941AED5FDF09ECD0971144E020FC64656C88A01F9B749770DA845D7F690D1C12141C7DC
+8724FEFBAE909D2E5383083402BF005598FA8B67301934E98FEED22625CC852AF51E7C647385
+A14B49EAD19C2BBAF578D35943A3B8CC943A863187AA79836CB71DD8DBDE642E1813FF3C21C0
+90F3A7BC39AAA1F5242E8BF68692A567578A4795ECF926CEA68CF77CD6B6520367BA3C98CF22
+D618A2764323297D1F2E210637FB6CC84674F01C04CBAB1295558A148F7F94F64900596F834E
+E0F333DF86C59200992C77DC32EB5091B7F5E1061F75EE9AC11D4F7C18D975FB2AF04245638F
+02FC7475556CC1BAC14F33D0F36CD94CA20CD24AB4B587B03D968175388ADA63FFC99E11B340
+AFC6C97381612C825A4EF6201B13C813BF36F5897E6FE3D95BAE2BCE401CAF0F9D7F1D0729D5
+0D6496CC99DBA29E2300A5307420DB31875196A26DCE6B59453A810B704FA8ED0E654B02C36D
+7D3D870DE8CE82532009C4E9F93921A7B088EE995060AC598E84F5E1248864269A2358FF4463
+A50134F113431776066909C2B52CE0114D3391142F298974219ECF3506BA1830359D186760DD
+C7E42E376A41B17ED88E6C429768C73F52095F491784661D89815ED8B71ABEEE1922DFAAC7DC
+FB2E427C480A235F533F523C7B4CCDF7D3E3E7C73BBE89CA8B04F89BF496310792B445122235
+F55AC0660CAD4476ECAB30D3FC774ECB381ABFF4BF4E50BD0954E240AA7DDF07924D53BEEC0F
+F8DC680A30F8CBE921F5BCDB02BA1CAB4C15143898C5C6E9DB4B88818299C4CE29F78E88052A
+A3D4F68DFD93BFDD1CD6328AB1D2C2888FAEE513E922320FF0C084E617BD1EEE5442DAE79108
+B34835214A330742AE9F99ECE561D29B09F611EEB154B1498929A4A6B3F09D63461489AD6EF3
+15AF77054026DE9F8120FDE0BA8012710C75266B9C310D06A842451C5A2B1AAC9433E08CEB23
+A872593F49C0397A1AE1A6443E4BB99C1E24AF85DFF91C97D4F400B3572BDF28174C5C358427
+ED6CF1645BDC283910C47C8C5B112802E549F1D60E96C7FB2CD6F0648F2189B7FC0FA2652152
+CDCFCB1B20367A2033AD1188576017E0F1272E701A5FC7BDEF08BC4104D728074573E40C87F1
+A2520B3D02EB8CB23CBAE6449EE78BB857E3EE7FA228F91E8007B848E309B38873EF3FE1212C
+1635404DB7A0BB06E21EC03E9BB358643F9E9972015362C58BB56BAFB7FAD31C60D0DDA2A30C
+5B5FA028896FAAF05A73AB8610BC521DF0226A922DA532FED3E6619E58D9F76F3693269506F9
+CAC08A56B7EBE8F9C8759D617BF44B03C2510C6235AE30109DF7DB6A7A391342AABE9D153366
+69F98D88DFB213F19140A52BD39E2E66BE39BEFE92B98D7271917610BCC240AA5EB2406570DA
+33CD0B66FB032241BB148A0F200E3937ABBACC878C934BB65A41D01805285754E9A3FD0DFAE2
+2C434D1D86783EE2693D3FFDDD895F8FA00F83417BDDD173E11F9E1E4119AF293F58B5DECA41
+B5D6F4AD983F668EC561EBD5F446B84FDCA10865202528F60BC54003413AFE4FE3E89FA6609F
+2F21DE8D5AE7D701FD349DFAE556D6EDBB906DCBD5B67EB59B2B22AA1C26726A069F08AE407B
+6AA179E313A4856F5878007837D6771DA41AFDC5F9C341F5505661DCF8D7E14A16E9AD360685
+7F67D8E9C62E41E5A505895FD0386DA34679735DEC0E3F71385009C45C1D2B9FC124FF7844AB
+CB056798CBDD336AC5462BFA9C012966FC34D9628F962285857C14FCD4FF243AA312F6177937
+3915880BB730E4F075DC14634C01317641C7E1C3994B40BB1BEB74DD2BED0D9D43DB000833A2
+ACC8A6F297DB5E7962430CC727C03462E63C2DBAB60F6221BF5DD3FFB0DDE89EF98BC1A5C6C5
+C59E6DA88A4DFA99F5DB8BAE29F26E34B421E7E74C2C05A8457F605FDB727DC1135AB363E3B3
+9CA32B2385BA24C78A1E0C83D42C513E3383B28D9554D2F5DD6F4BA1FFAEDFFB8923C183E35F
+75C57CF48893E4CCA18087CCF8C84795F8A31839EF6F6CA25CC154F6CA3970F60126B252465A
+76B1EAE8B240FD387AB315E1E710A25B339DC2C0706DA7B1C47AD15D5B6837F7DBF5A95E98D0
+EAEC6C121598076C6BA66E471C87F9947929E01B386BE55EFA5E6067CEDE9F54B0B278ACC43E
+56987848ACD559621B05C67228622540EABE7183DBC1305FCA26654D9BBB734355ABC4AF90AD
+7A7406D123A73695F77FB049B0CDD25170D8CF8F9A892D3636FB152688153F58E333849BE3E0
+45F8E18A4EEF42F191FEA6F2FB54206C981FFCF827757A22E75A7FCF21459E7C42FD5194DA16
+D0A33B32318FF5122EEF24C81D4C3B9391DC8D209EFF13FCB43FABF1FC67A712A53756EA65E8
+1AED88C0BAE56CE5DB00F2F3BBD89AB87B9D4C12F35FF1C95D8F3DBB7AAB138E3C387C135A32
+F00FED1C25B0F96895792B4F0276C3E2D702816D4A686DB2662E06451A3E1C3A5F6AE239B240
+505ACD4DCE12BFFFE205016956C6D6B986D2163AB20EF7B02F27F9E0F3518E5E51D7B8A81B6C
+6C0CE8A32956C435D20CC226D0F16C91662A32D05ED7F66B995F3753D05B91B030CDE048D7C8
+2885174A896F22FCBE7625412362C5D6A664D9BA41504DF972B79C442B5232B8EB90DE4C29CF
+BA9EBBDFE5B37F91A630559F797C22149AF8852C5EC4AB945C8A042E5DE43080684F4908BAD9
+69F290A1CA1FA0E916B6FB802C7B15D2A54C8AE8E4EDB91D926DC622DD5E42362B4BD9266222
+21607EB032181D92A5A0666424921456F2198580910938EBEC7902B759EC3B66A10C946E53EE
+98DD1D28970D44818C30C76FE735F2BEDE5526E47C64EF7D0D74C7564DBC64298D270B264658
+6835DD7E6255EA99C66AB9817F4093FD2E219FD9E67BBACBAC0A9D3E678111BC985151D46E06
+CB7B326E767512DCE309A0B40AEBDC854EE7A3060CF8418DCDEC028CE80577FCDCE3CDAB46CA
+F8A84A66E8860A034A390B444552D669C1C1BE764711367CC71152101FAF804C36E90D4E1BCA
+D89392929F998314FFEFAAC52FF96439F19C20D2EB9148BC6CD80C8B5624CBA39D84ACCD5525
+23A42A4301C7DE9AA5637F717C46D0E57350BDBD4F0ECF575F19FE94D69C213777FB5ADD543D
+485B47F3A76851E8C57AB9574A00E9A99641279642105707D75D97FD49E4FC53B79EEB0A8689
+E88097CCB46CF8497977406081C7EF28A2E7169589F595997348991FFBBBDD8DEE44ACCB0C98
+968A5814783927350D73DBFD9AC11A9F571AF46363E6709987C46EA207622FB319FD5519E7FC
+A3DFB9F784C1ECAD5472236CC2790015D4CF9F410004EC03AA9C247483F9134E742AFF8E3D7F
+62778DC6E9CC87469D083E9849490B66FBA43769044FDAD7F59EBAFD5B07A7FE75F064CBC81E
+F7023AEB4162A787F1C4D4005998D969DE4C7ECB3A67861CC5E13F56F1EA7A4EB7521CF0E282
+F513803658CFF5FA93EF5B15098FC2941FF4E0D6E2DD9CC056BEEF2C4E15DC0790291D385E09
+1D2CC377FF252EBB7214C2CDC948A9FCBAC418A93CEDC58375E3DC347F872DF735D0127274DE
+42F4E3709CD11CBB6A0320647CB97AE4531FDC8CE56ECA5CFE4DBB83B3C71BEF715ED3E0E001
+F497042D7D9859A0FCFFA87D37FF66BBD4C420913CF0600FA055C3CDD6379C8DAF78C8A03267
+EB381B64796CDC066833EAA949F74B0ADBE615F62C0517CE582A1DB047288C316A2B501D45A3
+62B46CC674C913B8980DED11D1462B8C03EB3D93BFD47D33661C4FC89E49ACDC09DDF08B32E1
+4F876BA1F0CE782F79DF52F10671BAE136A9B6D5120A011594F22864BC61600575D5D958678B
+94D71991D55E26263141A80C091A2E356B9DFC5E718D0833309431DD80F5DC39AE470E1120E3
+0A862464C96C1957C2CAA9DDB5FC3D1873C08A7726DECB5D73711461508D4F0EE3B3D9DE4BD4
+24D60787721A2AB50ABF2F02AD9FB20E483025AFE53CCA0A54331ADE5D5859D3621820CA0E2E
+3E7591BF4BC2004D0B5F7EC9A1141A36B0F1F9E32E46EA6C6730DE24D911748F83710F8A4F02
+A7F5CD663967DAFAA7BCAC3E29D900677EB2351CFAF46A773D363CB7D48943E1E245068B8F4B
+9434EE8F820B79832A8DCE28E3E36DBA17ECD3DC93F38F6BB4505BA7580B186C818A251E38CD
+7DC03FA7EA1AB8D290514909F1AB56E1B2C6584E86EF32741B58C79EAEBDD62F7864C19554A1
+9FFA1E73CF2C75D00C903BABA7E117E56B5EF27F53C94AE007DE0FA5726174D691F0CA7218BE
+E50892C6CEBED4CCE891EFA7714804AE54761D8F0379B063B8F8037A0B488A487FA3BD0D4B16
+B34FD4B3E52646AC3509C5D4C7C191189FCEF1D1131B4DD9799DF6E8A556049E28C5ABD4216B
+6CE52A1ECD99432D8316093235BE3D91885DBF346E18FA2BAFAE67B650467D23196FCEAEF414
+8A2D9BA1F44B3B43563450F006D5767D86D942710A820EEF0BF57028B1F1291C69118901B5CC
+99907C205C919C81E80ECEB1BEBDE1A67CB21D3D7AA431E0D1EDBC1F4DEE88E91FDA97DC4C2D
+49215DD18458B42106B452362956D407C064E29048513A2CD4A534062EB007216961ED4566D8
+CC190F990662F6C60703F35F0D8D643578E8205D1FCB0119C20D43BFD046842D885885127653
+65E7A007E770CE8E8F5B20FAF8B602E8291D93A7B56F8B2E5A952BD803C196AE98C27272BEC7
+9F806903EB3D3695782940138CCDBECFCC06B8A46907159095CCF0E792EAFC60435D33BC41C8
+A28617BD5A5228172CA784690311898BFCB7A7B22CDA56A53467E6421C413689CD41D59A3FD7
+FEFE1A8420695909716B8ED59AC6C3C83F5C0207463A369C369BCDBE4A9C35A49301C952664B
+AEF8BA31541DF5C1400B708EB3653AB8F8A7DFCBA52DB26A43CBAFAAC4960E4048EA7D164BA6
+ABE831276534750D13251D9421BFBDDAC7E3A6C61948333060390FDB5DD7AB5A42CBE7B00367
+5AADF5B52D8F709E45F66593B51519A4B37F8D0408554DD87783C103C31186E170788E8E4D5C
+2D1368D35C90BFC155335AA4585F371BA0D2D36C12F70CCB54DD316DF4A5B928CD36921BDCD2
+80996FF337E7AE9C4C0DA2ACB795614ACCA8BF9C5F5A270198A99B0BA923C041E65D34D346B2
+ACFABC9A68B059FB4EDB2AA741A93D768E5FF077C0CABECB321866513057B12B25613F5B1B34
+78334FC0FB18085E27A7361092F84F475BF19FC88CB9D9BA18AADC63AC383CB8266E01374F9E
+A36AADC06168E4772D6EF439FB8FFF2EFDDBAEDD8149168F8525EB7D8260A1E9165511AB194A
+91CF9358F1DF26499505F3F2DFE1FBDC2E28C0E5CB48BBCE6D03EAC7A02AAD6DEEC7FE18703E
+6DE77A677E9C2D6D56EE24769908189E8ACE09C55979830C1DEB6D7D00F931888C2450ADDFC4
+15C25DF4787597D0E6499D3ADB097738BD599479CC4E3488524983DBE2BF7CA9DA2DF888C2A2
+4A92B597FB8CB9B285A8201AA1BD6E3073C6B4828984E3EAAA4123A0C9053813FC43CD724BCA
+03CAD9E401ECD7FEBC2C9D28363BC8F058AFE54E479D1B518061EAB166EDA2B3A0BFCB5DC88E
+BA7AD44AB66A74099007FBEA682E45DFE3E6F36ED2F18527AC2A3443897F6E1CE8DBEE7E03A1
+C2D78D2BE6A6E7C6F43B828AF56BD8A86EDF9BFFFF971E1A9D56EB626AA2F112324A53AD874E
+1B3166EE3AECEB372893205D3F147209C9DE0BA3AADA432773E150617A6B7E4EA8E636F99BE7
+60B74902FEE6ECFFCFB1E039BFA7C15E9416CD2B5F0EE6EC50B42351B95B18BC1451F468092D
+4F08477516A287D8020C67C29D0CDDFC48838C99B8166C20202D3F5B8555AD9AD5DC2CB946B6
+B97FB0072EC9165EC95ACBEB8603D7DB6760B9011A68000687ABEF5966C357EA1E0F94767E2F
+601DBD9F9FC01699BB0743B4C369B7D2B009CAF12354D81F73F1B1FBA08623B38E106CB11FFD
+6E7A2B88F1F5C5C9380EA7159FF41591EB7E67FA45E4C4315B4708A5842A75B1B9C1CB4AC492
+C26178CB5DA50F0E9571F9DDDC6E223B34006EBEF59549CC34548F815BED1B123B012BD2A6EF
+67D97FD477B31C7F626FE9826107AA9ADEF80C1A36187E2453562217478157E3B0144158A69C
+658517D4CB79600C700A2509EF75A45AD060D0294AB4BD9A5D2CD590340B79D4D8408E856958
+D0F403F696B543195888A2DC7CF4CEC3A102814BAD5C169C3C911CF7AF7858ECC33716870D2E
+CCBA716B87B796159490F25C027D3F04717F355DAFD0DA4737B7F72DAB5D1CE95D11B4A8832A
+E3563F41BE06ADA6F45B38EC1BBF9FE0525FD46F0112B5CB0E947A701DAEE6664FD426271BB2
+B63E4ABA8FC1037F8BBDBF97D3F1EC8C98DB89B3AAFC6D597EAD9EF2347CD5B3874138BEBEAE
+BB2690B8539DBD000922A141A7A6A2A74BEFD03BC165CF3C7C3B3F49552193A9B453A37D4F4D
+0D9B8DB8896B27951EA7103EF7FCD483097A7997AAAC483762FDBED0FA53FCBFC245D32740B1
+759947C74E3B19CF333F30B131A65784863F93F8DFE7B7309BD5D5887E943804C3B3B8C3C4A8
+94BC3145AB7BDA6F33A0C72D5F70BD538EB8BDFA06FFDD053E6152B10A2CA929E9572783B01D
+307B50E86A189F747E690DB2D0B3AA5590FEF074A2515F9DA7635EA85771B45EDD4A5CAE324D
+81877E0B6E5C2157C03188725BD5924364E0A12350855E3B39C414127A33361DAA5BADDD1D50
+5F386ED72E80CDAC8B0D9CD6A92C687F913D617A9295F75DC3C4EB08AE11047AB7041DE8EDAF
+E7DE24796CCB9D44640ADA774FCDEB8244C6672A4AE9B282997C5606423E149C4553B9E3E23A
+2E03501A5A8BE7AEBC3C16B079C38D2A0690ADB258C414A44C2E080FEF8198107FE7B2A75D89
+B4B097E42AA237F789EA7727B2B4BE0378D5DEC71E7062B088A76E92AB2EA36CCA35E39D8364
+70B3FB7A7A1C07F37A9F37558C058582AE3F8EB48A11F9DF0A89796785D238393580ED4D425D
+B670687973E30EA79C5F778B42BAD782152CFC55E0D4E9B5F8F57E7627EEFBD9078A576A57B9
+5E676B0CBCBEACC8C685716E7A925BB69072C9C9F94724E389D723EFEA841DAC245B613A3AA0
+C6CADEE8CDC90C7881CE3D7657B16594740CC202D4E809F38F2CA4B219B928C335B51705B957
+2459489E1C176FA365D867A723B699BE25CE1B51DADBD150A5CFC7AF8F6FA901B7F32BD2758D
+A52601332EDD0E1C2D334B5BA3B85CCE0F17D8ED535A8E4A9E6DB4F279F081F2BD2BCB319DDF
+5E4A649EA13F6702A431E9C6509AE16F361E702BD804FEE570BD4FA7205B3B2531382FF34E8E
+F8C254253584CFFC2E955CA1BEC100A9A0A42D3F1CD1DAD265F9364D1CA695DF664856D6240A
+46CC6473F64BF2608E21A184A475AA145BD925B00ED5CF2D4E845B3764797F3BAEC5FAE70C5B
+AA6721A0C0571F5864C8B2B2B782A4EE2DA6A91BE91F0A90C6D906103B07CE270FE326711A37
+F52D3971C7B23EFFA647A2131980D6825B3DC2E2CDA81D696F9F84793FFA99C6B732939B09D8
+11DA361B87FF76CD0F93C965E5292B7033870C44A584B2D2D5725F3C3CAA3713BEB980741DA3
+DD6BBB035F2B998D8CB26FF81E3FD3BE87DF7501730B30ED40A1328B8608E0F0C50733EDCC10
+AFFC4960B25BA762068BC7F64F878E2641D6077EA532761DE0DC35195DF0F32E410C6BD0227F
+737E9167FCA17314BAF216B1A8FBA2DCEA54A863C384722376E8818D723F2EE9BF382652CE2F
+635A30498688A711DBD62E9E6E40899A848BF8C35F9D5D5646510113AB8630014D640EB1937D
+94654050B59DD22BF74B0C8A116EC54A108E6A6CC82E9874B0BE04191E9FA3E7F2072EB17F72
+3FAC1BC71006597B99794AD61A993C36D1E5250C996D380090366F1AE783704041FE9BE38195
+1C34150BE82DAFC805D10F73B6D0CF5103FC051DDCFC5AA91F5D7E8CE73C39EF9B7B0699CFB4
+0943BF950B5E6750C0DB54B476CEE4719AE515E40A8EBADD57F80A6DF09EDEA191B00DFF801B
+2BAB79C5657588ABB23584CEDB768DA618BD0B5D295A128DE877606D49A12FA73BC9DEA32310
+0F2960C76E6E8B30401572527611119C3EE06D3B34CCA355B4B202682277464C8B6B197BECFF
+0864FEB01BC53792AD1DF825A73E5F92B84AF103934A985D9C65A24FBDFA960325C7A73D2989
+ECAC24CB3F8EF1C57EF43DA81D0B64A5306837F4361D8BDD4CFFD94D6DBF7A5F5342464205F1
+B5EB6D724D9409ECC3166F3518B501750E89A9B7110FD7EFD43AF3C32E7B93BE8416B7A540DA
+EE25D1497DAFBE6D30995C0643431041D5B1272BBD2CE5FEEA317B42BA7E5910F75A91525C80
+DBDD061D053815C0B251F1BEEBEDFB1567632C46D647A745A2DE0AA08EE35FCBF4D3710C8F5A
+A6A9E0DB9BB0962CBB7E4177EF3FA776DCEFB988833B0CFC39C8C6B7C89A713DD018A5D35126
+4DF859AE5903A5757D5F039B3D65614F2597650BAAA3188D1AC6A8BB1DDE7DDBAD1EF9C4C980
+3A3148F3F4AEEF706A7094175DDFDAA29B5F8A012FB8CB301450B4E78B58259DE6503679955F
+5509F5025E4C799C55F0CF271717A296B096F03105E61DCEBF5D24698A96BB364AF38BA20D11
+7D59E86030C17A30AEB4B1794A6D72E2B62DA0DF92047D6985DF1BC950BDFB38AE13E612E183
+6DCFEFE4003A0F3CBC1A7C3398C0EC71A8AC8DB32BF58969635E46788A3DFD65EE12523B8FC6
+70A727016094B8381403F7762D6E4329319927DC1534CDB25F620D3FDE4383943D9942F75523
+CCAD080F5B1CA86159B6956CE56B5FB8A07B33451BADD7FB9ABABB37A10F04B58559BCE193DF
+AAD6A9F7763B11167E0B899B5B6E4591608E6B540A81CE22AE3C151A215F316E89D2D4F0FD87
+D0E803EF412DED542C369615852466961517B5C77DB3C39ABBDE32E1F503476A8326FBB08A4B
+C9F04C202CF5A1896BD05EA8BEA583B10E5B5AD45963FC490BB9A9636381DFA47B42132D80CE
+66F4BB1BF889DF9600B08038C1FC334E69A76D7FF65144B9E48D939E5497DC67D5374C4453BF
+B1A9FA6C6685F43B7BF9AC97298A3320DC74BBCD9A432B5D8F8F1CDCA9DCA04380A2D7B024A9
+B0E2B4EE3E1325B3C0C4EB2B8A20C97D5DBB73AB15166DE381F7F83283F69479EEE7CD091F8E
+4D6DD13C2E78E12FC59042701E7A3BEE3FBEC32693FA48EAC541B85465B9C62D21E71E463654
+1395D0EC9846F16D599B28E53BC109C34F17C2A85FAFFAEAFD20DD89D53CF5638F9978618B61
+0902E38A9E5A5D6C5B00264D30B4CBBAA2D511646B2CAEA65E716F31B1EF4F8CE618D9E61DED
+2BE5D247D4E5FD9C51819F2FFBF3C6702210EE5509C942E781DB52ADB4A65F2DB3688F419447
+0F33AA11384BB47EA644E48BC508F8C4F561FDE0B5879FC642A7A9E89F94B273892DDBC44E59
+DC35EED991B4F4EBF0C9CBC525C572CCE29F3C7EB313D067885368C2EE54760A151982FDEF76
+B90F50E763271B1FB242038148631DC2BA1A3204EF1206D0AFA7B78378AB031F9069B8639FC7
+40D165EBF123F69A5F0DBEC5D7EE2016E262FA4B611C383E2BDAC77812774DE0591248C23038
+B9CCD681FCB91DA754279FE274DEF1F3810617559F2EB5EB47FEDFDE4B5E6DCD68951E685AB5
+06EFEABB70343C619507C4B78CE07D198413323BD6A4A33517EEF599D6F71BBEF63FF166D35E
+9D2DBDEF74EBB3CC0A316D11167CE2F226F9F1FFDEBD612A2452934CDBC9AD1FE8FED8406FC8
+DFF39820D6F74FFE9B4B70DAC1FBB22F5ECEFBD7591DD4365CCFD300AD9544C492A899173611
+CBAEF46FFAF6F94367BA0FE02E198290BE926B80D9B626D15A0AC90D5C0B2A28D55D1323E0E7
+FB203AB131D783F6E3F878D1AD7FAD7FACE0A9A91566A636E6FC041986FC25E6D59FD6D535FA
+42C1952E7C0AB503A57DFBCA3ADCACF5AC748583F112F3EE9DE553112AD7ADDD4C15DB76F3A9
+10058AEC9DFD32C233D5B9498C33E7BD33611EE3DCCE65712DEECF4670B51AE23C42E2512B62
+A38D37201AD34EA9ABE5F0B99B223DAF1F96C3C1D4B2EF67FB0CE63B4E1C6EDE64A5D30DD3E1
+0A6D4B92CE81C7DC1EEAF96F1F1DA540F94D6C4FDFCB72D408647A4877B54BCFA2626D4E110D
+E46938DDD15B14A4AD6F8044B7AA6371CE2F2EA1CA4A13ED372CE415ED370F5C6B2EF218102C
+1A338C8C4D6004F4962065A028E68439AB20120B5846EE1B66B4396C8F3C73B9A65754D7CDC6
+A5AA7E5B4B7A179AC0AC55346E084A7BEB4E344B817E1131C2AE566AD6115AEB56C3169DEE98
+C52EE0AD6F4DDF4B05FB7A6B4D672D1328B539DADE8945E8E39873AC6331727D144AB149BEDE
+92D7CDA9FFEDC8821A61726ACD8326AE6EBE5FC4FDC885BC16B1D1C22C757B8B594B29AFFD48
+981DB54370FDA73FCFAA30DE3ED760B144404F38A4AC17817E52B0856ABE4459AA3721BDFF5D
+2751CC876C1BB1FB64C380DB6181E2F3729F4AEB99C49B3D128D2661B2050DB77992E189DC35
+5BCB9D15A819D60E831038FFD66708F50B2CD66B62BB8092A13D012FC70C815923E08297C7CC
+FAAC8EDEB41A52F041777881D67B19867C4B766C5BA0D18551CD1471D53489D807286A6BFAFA
+46271735B699E48807BDA0C057CB88AAB5279F5E6F7ADFE5F34BDF3C81A1C5C83DF44D07CBF5
+464A1E0A8F0CAFABFDA5992B64BDB9C13E743F44C2F4AF0C9A69503B14D0BB12D467F62EF24F
+8EC8BCA1A1D2E4FBDDC856104A67946D4A87C08F38AECAA481D401A98C488E622CF8CC0B3205
+1AF70DDDB4E73888FDCE173D8F5FA75062B974794E9FBD6C3499A3333DCA75C681C38345CBF0
+75F6B8F49788DB4C4DC96B93F7A166D33BBCF7BD27778ED38290A439C1974AB944D04FB6151F
+DDAE7C736F1B0A21DDED2DAD0AEDDDFEEAD170E750F81B750ADDA463B2DA2693BA21197C9625
+1CA59938E82E5BE892C6C659605C1558A6FEF114E30F0FDB712BF1DC93F2F3D876CF694C9FB3
+1622FED5C30CFECAE5A637013C3036CDE5CB296A8710EA0141C47635B6758756CAFAB2A04B92
+05564C82BFE89649B1DB5D5F255F925C754A4C3E81D0D040F6A5CD9B28D071687377437A47BD
+692AE6867C940BB2CBD3E93EC8BAE25406DCCC2ED43D1F3906E39FB01E1057A837F70FE104AF
+10E6AF578B8F557B4522D7BA0CF1C553438B7621921D297FABBBA97103E7F6BC35E48F745AF5
+A1383F71CD46EE88A33F3989795F802F0CADD26839DF33C849032D7ADF508880B4C1252BF9D2
+3F025344BEBEBAF35333E02DB37FD3F64CA9F17B789D55C7CE6DF7512660D4033C85C44B7144
+46D9EEF2839E3D953F81BBB8CCBF7F4496E197786F43CD1CDC39602C40B402B7698E2080FB9B
+217433D390BEF7A1B637EE1902D810B11BD1CA27DD4FBE2C58640A91B0229FA8F4C45D5660F4
+72F10704E9B9970CB77CB14036C4D8603098B893DD139735CB18945BE26755506995DCC27E9F
+94D1B63659B8399E9EDC933DE2E3DF9D113C1410898E2E7A2E40736A7FB7E9979FB0B5FFDCDB
+2BF0C4D699EEC0B3D55B26A3FAA6C9E9D06ADB9F4CC1F14B0708986DD9F86601CC4CBD392B36
+6F8B650B855919C8FA8BECC44E5B1DE3DE2453FF62E0EEC0F0CF86D2E165F1145D5E8C2EFBC0
+9D96F537505EB861BE6D21E9C054C39627C804F05966EC1DCC8FB8558696EE825C11BA95CE2A
+7EB40507EA5FA7DAB4DC07BB973B935DF8ECBE10DCE441B82E982FF92264975D92C6A4C7705E
+90585A308CDBEBAC9B467522015D492B0A705C10F6C195196AE3C532913ECF9BDF3389A957A1
+D6F552BFEE7B1F9648915AC3542FBB1A528CEC05370B2BDD7542685A8E4ED35BF2B8772EBC5D
+A1FB2E09782EA61A2B8772939F13531140277AC633BB0AB6F2D237399C78CA8DE0E2E271BA8D
+DEA24B3ECDB0F551107B3220E2C842F8082A75DFFF85DA55AA2D40518D7401179E6BC7E033C0
+92E5F71D8A48F571F7C7CA5B6D0F5E4A109F39AA559CD30EF032766F692E47BF0EA5723C7758
+A1392999A28F042005B7E667E62A09CD60F807BDADF794076F23211196024A47580DD9739FD1
+0E53D04EE4EFDDF89FFD6E07F107CCD9634874E156849CCCF624FDB9C85145CA2057FDE5CE44
+8E4510EF1B3FEF2A57E0125B37DF08CF935EE8FA0BAB7CE745C8CCFDAD35CA730A284C1DB31E
+F26ED4B5C397DDBB2A741049A120AC4D8FA9A2B91D3EEA75D61B28B19FA8789DC945588F17C1
+4A81BABD6E0E5487E2BA1AAB46994D69F7E5A928CEEC73DB5317B3D58033895595A1A2188E45
+7C1C8845CD7312029093574CFE59D8C25DFB577C949A5E4E56624BF9942AE6F8970A1BAED98F
+135CA7565393E6C4F80F1A81930FC3F90342EFCC0819DD02CF88343D4955670DF65B59AB5F55
+4BAFBF5A9404241A3274A7D2C90A1E49ACCFAE2FF5D9624E708A99A4C8104B76F8EFBA7A4753
+05BF47661FFB2FBE93858CC5039B3279626A7F7B9A1E210662EF101252FA4F38DF01407F143C
+007DFCE4FD95CA4FF7993FEB03B7CA5A6C1B6C770D684037AB195AD689100484E7D044834519
+7D16231C3C129A3372574B1D261B458247A6604A8C3842EC7C6FEA54AE1EB01B6E7E922F28D5
+6566CA27879BD0EC14C7DF9562BF8F934321335C26C8AD8477DB8CF0E267CF8BE322758CA333
+7F010D2CF9C2C9BF88B51ED703E036B0BDBBFC3F92D7E0B4601573A0218552C5215532E9DCCA
+D95BDD11A0A9ADAE050C87364075B8072F819F49464E1BFD5EAF51EA922287EE507223F017C9
+E898DF5E29F57AF38DD390F93F425BDFCA14492295773B5AAB849002C613A2B8BAF474C7FB1D
+BBF6B1599EFE3EC5A49F72A3B69F1F9073A5CC06E2B29FFFA1B689BD8FDDBA766254F68B1D85
+C822EC842B897CBBE246CE8CE8BD44E718B10E0535423DE475643472152C4C607486AAF92A52
+574BF6465DD6231305CC359045D3641076DBE7D55AD508D7383E5FAE63A768AC188DE72F7F29
+4211E87A36F2F18015A3DEF4CC333A25926989AD4CBFE49FB9CF9FD2D9BD167117882F707842
+DC72B1932492BCB7062D86EE51437B696BB597F657D482CA902E779B52C727F02010A21C3D17
+F1750D4669743288DAF186CF289C59BB4E0AE268FC305ED2CD69EAC3047C1AB6A6751DC634F3
+71841623B74EFC893094EAEBF841AC1F5A160427F3D810623098C1F36E0F553E51A11B0248E3
+2E1E9B3B092FE2A6B785BFFE8BEC4F8BCFC164B5D7623C123C8C2087F256E2F9D71C363CFDA9
+D097D8CA2A02E48FBCC9BFD5DE8ACA3D8461D78FC95CF53AC18EBD48E959E44B1039E84C7426
+576CAD6FD4F07A9A328E86061E8DABECD9D87328AC532096DCDFA647DE1C049FA27EE5BC7717
+22195AAA84338E6D63507BB45B560220FB24F93DECE0FF3B043D1912B28D4D913888E424E6A1
+E139FE7A7DE79DF5DE84E31075A132179ADBEE07F794B129DE7BF93E2B45BF0100949B359CC2
+EDF8B9701B4067DA2AFB6AE00EB03B79F2C0EF420B42D9FD22AF9FA5DC68BAF29DD90BC13826
+2563BBECB07781B9A9FC1A98A53F9036B10C49123CDAD4EF342C5C0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
+
+
+%%EndProcSet
+%%BeginProcSet: cmtt10.pfb 0 0
+%!PS-AdobeFont-1.1: CMTT10 1.00B
+%%CreationDate: 1992 Apr 26 10:42:42
+
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTT10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+end readonly def
+/FontName /CMTT10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 161 /Gamma put
+dup 162 /Delta put
+dup 163 /Theta put
+dup 164 /Lambda put
+dup 165 /Xi put
+dup 166 /Pi put
+dup 167 /Sigma put
+dup 168 /Upsilon put
+dup 169 /Phi put
+dup 170 /Psi put
+dup 173 /Omega put
+dup 174 /arrowup put
+dup 175 /arrowdown put
+dup 176 /quotesingle put
+dup 177 /exclamdown put
+dup 178 /questiondown put
+dup 179 /dotlessi put
+dup 180 /dotlessj put
+dup 181 /grave put
+dup 182 /acute put
+dup 183 /caron put
+dup 184 /breve put
+dup 185 /macron put
+dup 186 /ring put
+dup 187 /cedilla put
+dup 188 /germandbls put
+dup 189 /ae put
+dup 190 /oe put
+dup 191 /oslash put
+dup 192 /AE put
+dup 193 /OE put
+dup 194 /Oslash put
+dup 195 /visiblespace put
+dup 196 /dieresis put
+dup 0 /Gamma put
+dup 1 /Delta put
+dup 2 /Theta put
+dup 3 /Lambda put
+dup 4 /Xi put
+dup 5 /Pi put
+dup 6 /Sigma put
+dup 7 /Upsilon put
+dup 8 /Phi put
+dup 9 /Psi put
+dup 10 /Omega put
+dup 11 /arrowup put
+dup 12 /arrowdown put
+dup 13 /quotesingle put
+dup 14 /exclamdown put
+dup 15 /questiondown put
+dup 16 /dotlessi put
+dup 17 /dotlessj put
+dup 18 /grave put
+dup 19 /acute put
+dup 20 /caron put
+dup 21 /breve put
+dup 22 /macron put
+dup 23 /ring put
+dup 24 /cedilla put
+dup 25 /germandbls put
+dup 26 /ae put
+dup 27 /oe put
+dup 28 /oslash put
+dup 29 /AE put
+dup 30 /OE put
+dup 31 /Oslash put
+dup 32 /visiblespace put
+dup 33 /exclam put
+dup 34 /quotedbl put
+dup 35 /numbersign put
+dup 36 /dollar put
+dup 37 /percent put
+dup 38 /ampersand put
+dup 39 /quoteright put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 42 /asterisk put
+dup 43 /plus put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 47 /slash put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 57 /nine put
+dup 58 /colon put
+dup 59 /semicolon put
+dup 60 /less put
+dup 61 /equal put
+dup 62 /greater put
+dup 63 /question put
+dup 64 /at put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 87 /W put
+dup 88 /X put
+dup 89 /Y put
+dup 90 /Z put
+dup 91 /bracketleft put
+dup 92 /backslash put
+dup 93 /bracketright put
+dup 94 /asciicircum put
+dup 95 /underscore put
+dup 96 /quoteleft put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /braceleft put
+dup 124 /bar put
+dup 125 /braceright put
+dup 126 /asciitilde put
+dup 127 /dieresis put
+dup 128 /visiblespace put
+dup 160 /space put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 def
+currentdict end
+currentfile eexec
+
+8053514D28EC28DA1630165FAB262882D3FCA78881823C5537FE6C3DDA8EE5B897E17CB027F5
+C73FDBB56B0A7C25FC3512B55FE8F3ACFBFFCC7F4A382D8299CC8FD37D3CEA49DABDCA92847A
+F0560B404EF71134B0F3D99934FC9D0B4E602011B9CFB856C23F958F3C5A2FBE0EF8587D1F57
+74879C324E51FCB22888B74F241550D7401EB990D4F3A7AF635198422283CAC1B6CD446DDBCB
+D915DB9BFF88844E784C6BF7389803D9450B0C21756A017306462C563D51ECEFAACD079732F1
+2C29315E4B9623A5752C6F1D8145869E120D910B2644887CEA7E30B15676A92537C29D3AA80D
+C30082ABA94B40990B82FB1A877E805E0C8C48F61E9F2EDAC05B944EE4D8084EC1D5CC517AAE
+EC5B3EA379DD011EEB454CECAB3AD2443C887C58278972355673E503AFFE0394FC7DB31DE364
+E4F56C24033C7DF2265C56445EC63A1D5695A6041EA1B94407E1CDB7C5635603A4FD047E6EDC
+AEB2D0DA6C9E0E9396D51A4A58E8FDC1578730F992435560A6E2D3E3687703EE2F78F5896389
+AC8470BC806169EB01762E89B6DC9ADF857EAD656620E2589AAE722C37A2ED7A2941C360B067
+EE34D8D5CA3BF68DB725614D936BCB207781F4D4EC2AC67B13A5AD161F3F059ADD7B5E3D9048
+31E31C20C04546FAE83CA93A35989E65C201756888F727B97E5313C9870EC96E4CEC3901EA03
+A5C744754485E7D169BBC98BF872D0796E189D43B712950C3786257D8BE06AB6080B9D939231
+3298327549A8A41C00A2CEA3690B4A333E45AA815A64FACAE1C2B44640860B8B8687AFBEFDBD
+5B4A541A72514EE7D3E0752AF3E96A88C95D31FA16D34BA2F02FDB0088B165844F02611C734A
+DBCC2037BF741FDEA7E8BCDC130C70C33772F777D8BCDDF4611DB99001CCFF14D7AF2BB05DEF
+C3480BDAB312A0EFF2F375AFB4E0DF2F803C594B7C93F71CA4AF861AE1711932FEF19BFE2F9B
+7ADB69D68E5A70EA4D1A3D5BD85231B16993F65EFB37A0A823F0542F8C2340A073DC1BE4A834
+7F9D3068A6435CD8278B0DB1809E8AF9664C2C989B9F16873C009449B6284B85DA4DEE11C96A
+05BA83292F0EDBD92CF674AAD6AC1A5FF966FFC37E88A66048DEED053565B55EF6BDB8C2F2F6
+7832F8939A32442EA54F13D003494D6350A2864B427A9126A9C26A031909FE53FA8463B80C3F
+FD536C9A5DD29CEB03148DBC24C0033AEE72DDD159F2E8A6FC113F428070EB36CE5A38A72ED5
+BD94D81AB4DAF08EBD42C8E5BC695622E02AECD4004E6D4CFE72534CA56291FF5F2F83361BCD
+B9489A993F663289B6DD492499DD5713227210F89370928ADA0085E2AF277F53E4CEC34D6C4B
+8CD5F2E016052A04C20AAECE8B81AF9E9F33643C0FA69A5BA864D2A173221071A965F9970D72
+93DCDE8C3FF60A86A4D3706850CBC45440DCD22F307261E2F6FAA3EE156A58069DF979C9B5EA
+A326C5A36B6E0FC0333D7B4046D636461CA2EF70648C37A953F96FAED6266EC9022753EBC390
+BE93C0CCB7C318C4314D9F6E54274C8046A8C5CC7EEBE625BF59A03F5405733ED120841560CB
+93210EA1EAAF3402ADCF1FAB986521BDB7CBA72A2353942FBEA4A0D1B67ECDE589A65AF8E7A5
+FA4B87672AD55F57D783C66DE1D11E0A16BCF32530692380C730D12834777AC6750F85131D77
+B0F53B626635CAD3BB8E9F0454FA085CBCCB0339034F5FB2E225E62CE12E8C792F5B7E234688
+D2AA8F627A4670339E646399F91E94424263E5C12F9F3D411FA44449611EA9785A20FBA733FF
+2A7892D1641F836CD42C58CCB81E41D6E2A5AE30FA18DE9846AD981923604C799B16A99779FC
+CBA11044740BBCC78116E857B4B390DE0E66921376101D621E1FA003F01AE344FEA0215F2577
+E9C92C6AD07F2F4674A00FE42AC51FE5A9186C3C1956B535FF1DD64BA514534DDD73C0C61C54
+FBD6FAC3B4FD9010FC55DF2A37A111BD1402D4E90FD8B3601DD3E9FE25634D709C289E524A66
+DFC33CDA640D397269BD9ECB9D0EE84A7D7B93A97DC522A16B6965B7D5D7790A3002341ECB3E
+80985371A5169B38133B13FC5C1DEBE2D90C43BA5D2CEC7D3B972D32AA1A932B750D6CC83439
+73FBB9972D84670AC5CAC5D0B5E75CE021F99493CE29AE90BCA0CB75058BB0A47DFAE6C8D075
+043BFD738991C2A0B80BE18386D7A6FAF89FEBC4AD142A1B0EEA8884EBFA87817E22C222170C
+B6D04BC6DDB541284E16400028EEA275244B69B033D200AD997BE7D1DEBE13CF783BE1137278
+24006CE4B5E3F34D09FAB236749D3E72C033997A652982829376DF91ABF533F0100BF224C279
+D3515176DFD56C325B3D7A3EFE0BEFF84233B5A7EE262557F84D754F03817C900945DBD5DC59
+B46BE8847D1FBEDD70799DC42D0148841DE2F816F894ADD5EB2C0E1BF19F52558AF84DE5B693
+86020DF814DE7647FD41127459D65798B06EC5D132AC0F181BE211624E97F8096C0A22E6B216
+0878909D00A918E90B435C8C87D1033E40B56B4F15752D5A8AC019837604DB9E1AF709A2EA36
+4F174DC2EB1957F0E5F477CE06A0EB78026BD1B23D76102C6862156C47040EC259FF4E89F83A
+42D8DFE53F96127C8AB4037EFEF724ED011928C2CEECB4A8A4B5A480595A2AAF93228EE37205
+2428BCCCB4685246BF3E9FFDB2845CA05DFD4902E74483626C2FEBB4E76C78B2AD6A96372D0E
+AE47FDF4B8D1F068FF0D1EED01C6860C86275A2EE3C2A97AA6033AAAC489E1A540432BF92A75
+7205428AEE30CCD48DC234C521003D7EF7B88BDA8E72A12AD36C2BEAB1177CA82BB2458997A4
+B5094A9DABAAE0A83D7ACF4F7727223303D5D8ACB9B265B3326CFB1AAC4BDB80B28E828DA936
+BCA574722A73B05D447C9F7E506D78B33F582B3BBEA37BF8380CDD32B15E74ACFEA5BD635C2D
+FC3A6090E7D96DB7E9127A3660024258A3A7DA06D08C4691B19F88D0BC719B1414E953B26F09
+6A0379BD71ADCE16DA6EB552A50EC318456CFDE8FBED1DD92200A9EBE83849AE3FDE58B5400E
+0C173E01F5E23E883119421C7BF5F12ACAE87B3C3DF0D824A67A320273D41607306B14A63D46
+2C042A6C6A31B92D54E01D7AFEE232DDAC002D012B950A71C2F065BD478196779544093A5B61
+93247AAD7970AB5E306EDBDC24EB4C6B71A174ADC6565A99EBD7EC83E01ECEA533D364C2F07D
+8A48C84C0A3941DD6B75422FCB49AE7BB79245CFE9ADC2C9B3E6B48A46867CC72F26D8C82C2B
+F5E8F60763CB9B473473F521FB016CD1D07B3216C496CDC68F72C6E9AC5B8193CB3E20EA84C5
+A7CAE4905261B554D6BA006C787658463215646AE218972219EB34A5964F0A277A1D1A20CBBC
+94FBE359573A672EFD0019B2C0A6A02F4B15D14B961383630F0CC578168F9DF7D33D3509CE75
+D272141AC8EAD6C708227A193A5542A213E6435AB543754A75D066C000A1FA060053A862A013
+799F762B5403BEF0E52C8208D3E690393BD3FF71C8EAA08C49C77F33BFD9A6F9370A88CDC3E5
+B1012FB13C784E637A4891503B5FFB4A0BEB105458413D3FC880B92671E786BFD03F158429E1
+E80EE252159C6B61079092C2035748A3C0D1B7C400B88666F94601D53C2EB3308AA791F66E40
+DB8CD2CD53ABE4A018A2BEFF566806C6CA7108EFE8C70C7E4058853019425AA8EE77D3E75973
+1A80FFFB59CDECD15D099E336A63A605DCCCAAD3FC55300B12402FB10A9FA4292D61F8967C21
+8E008343617BE44D29AA7DD755609EBEEF555F8291543623BE6CDAD4F46CA20063DDE0EC4F24
+B9052D6092BA0FB03EC7277643F178CFDD5314F597B93139183823C2049FA4FE0E1F7913348E
+B83F151E13251C3C2ED100CB9C907969669D98C5F349FD064A677FB689671C27B658C3118B20
+6AFA9478A4F0AC3E6325139045C83C046D0F81BB002757DE25E9778A4D835E6D61E563293923
+CCF415FF132B34BA9ADC441B806151561C59662867F91CDDA7579CB77326D5C34BE9149E9629
+8787F98EAE3B5A2E2190D932581F36C547680C3266770786DF978FDFBF96D7DAD68969EFC46F
+5A39567D97CCF08BD361FE650629A6CEC31DDF856640E6A2842447A87264503B7917AF46D7D5
+14BDCC09B23E7DA51C47816EF27100FA60AE3FBDC320B6E792AF15CCE9412C8C80B3A46F5E31
+E380D93EE3D17A5F674684AE28C56381892B66AA5A37B67B6E7CB9D65D359791E8EE0A36A4B6
+537315C99505BF6264B6C3BDB62A368AA4C5784409166831B36AC6241C24C9EBEE261196E7C5
+B55480CDFADA76C0F979FBFC9F3AB5A53CAC4C6DE0BC8CC9BC93221347EC17FC024CEF796410
+67DE49A3460AE6C83464CE27DB329E16605DC22D727F578F14764720F4D6BDC24E171B27EAF1
+43EB293A70525452FEE8100DBB2D7ABCC5177C7BA96CD07A8667103312BC495FD7813A5DC7BD
+37C1C96B1DDD53841B9DE37C5BE008AD67706045EC1AB4F418F60A17C0786136A5B9617CAEA4
+BF319CA20636691BCA83918785CC15FA19B4E8CB5AFFA398DCB868AE139124E6DF8BC1CA29C4
+3E4F7D57AD6D625D570B498FD8D2B3FB7080E312D95DBED16A8FD3ADCFAC9FC0EDA131913647
+6EA4C0FA1B6EEAC95FFC35326124EB2DDA055EC0FF6A304EF0CBFB3DEA094810A52D5193F041
+D99872CC6A71DFE5B46ED2EFC3F45D6560276FDBA056A78F9D76EDA2467AD4C44930558DB88E
+ED42F6C88B0C1E3DD5101A6590ECBF56E32BE0BF76B515235D00121CF0ADC12346997AB62DC2
+A1FC37DA89CC3992BC1C6D5380D0D5AB94551833B65A2336EBC9923E58CB1E47444BC6E49BE3
+042C94624373B1C34F593E7C8E043A6DE75A27DE4E305272EC9996499517F1577DEE3F9ADC0E
+3C21B61F81D165E903E1457BF33830E5369CFED65ABC46089647B5C01CD089DDCC7CB8CBBE01
+EDD7BF01C3636CE3D274A7C59B937E4547BE0DDB0FE9616E0EBC5078ADF5D7C8984C5DC85FF5
+099A00B84E44178D78B293288F664F19C7FFB7C52C04ADCF8718DBC94021C28290E2E5808687
+5C2B23EDF938C52CF0274F8150CB577FA02A7BDDD290839B69F6D5AF1B70896ECBC07CA8F1F8
+6EA38CFC5F852A5F5249BCF04A878BB56EAB61A1F53B60697DB77FEE8327166B399D413C62B7
+42870C3D77544FBF9B63511669E778C3CB1C009D17EAA536B93EEB5D15DF014673A66B43A102
+02C424DB51D501610A59B01D5ADDB4A62B7E86688D86A3786B08F14D5BBB93C63C88D7F70D57
+4AD84DE70430799DB3C19FC1EBC35D44C8661ECC763B46445AED62F1BB25A6C7D1A7E8C685DD
+1ECC9660FE97CE2CDF6D259CF0869BB93F00D98D4BF87969636FB6DDAA09FD32F6F31DA2F1B2
+47ADFE919932298D32C8C96FE9DCE6F4A75F071EEA657935F7F30C32353DC4B25819F7070F6B
+518C909BE0CEE0FB262EAC59C893DCA6C2B69CB0147206BDD4ECA2C4C8A232FE1B1DDB9C9B7E
+EE10FD8A0259364B697AB94D2481FF1751FA9782EB84DD7B481D0FE16D09AA95C00861F081C4
+04B638F1086D8C108953B5828960BE46BAC02B635F7E4290EDECDE73860DDB2E987467C70E20
+D93CAD40AE9BE998D64B3BD4D600EA6C8E2F5155A9264F9D090567FB7ABE1B4E2E1EC5D4E298
+66D289B5647146B7989DBAFEFB7AC0DBEC9DE8D12749113212DA3C5E9CF4224825F9AAA5ABC1
+662AE3B3FABD40D17408BBCB0FFAA37EA2C05569ADAE243114BE87B6421590A440036A071E70
+B77968A4A6C6AA4FB68D32417DA597F5396A4ACDB74BDB1FDEA82BAD3B998B8399029F0726C8
+F83C65AD45D14A1AEBC019F885BA60B0B6A260899BECA00C0F01E1AC25490DD78CF40924901F
+E877E66F23C977B8754623D1D0F7ABD00753C3A0D124FC297D647F78380C139C2F82EFA9C9D6
+7600079805EA3BBB31C79716E3A4DACB2BB00A21F34220BE2A202FE29265024AAE48C23B0FCF
+6142EC6587DA235577B6E57345FCDF32B83F6532023F8A3DDF97B01FBFC8B853E90536165AC9
+29DF10E253D8C4569616F297F7E09C06489E67618FD7148E6A89E249C62898E64A03D958EB88
+F6E3361F0EF2148BE4576E4D97D320B4CB7F412FEDBAABBFAE057AC533AF9CF9627BBFAED3A6
+C6CA676148B005038149259589FE227CBB4B8576810EFACA8EBFB5B52ACD96B373462336D791
+9FE2D926C0B23BAFA3024F15EA433414CEA280F1E20650F1EFDD04959A61A5C362C98B855361
+F2971287F63D512AF98695C02A5473AC45088D478509C2BA84967AEC0FC1D538654523791773
+D8A5B9D73C2EB52FEE2586333FBF6241A829811E06C2CE93EE1F0FA3CE620AD06984347CB30C
+2AEC9CDB0F97CE991ADD184ABA3783B556662C833A874E5C38A64B6438CE5348ED802000631D
+B9B3B33F0D90941BA80E92D4F00C64E62A7A0520D94E76F782CC734DE498ECFF23A5F24BCAA9
+7150F721064114CCA8CD690993A1274A5BD3F15A6D6EE5C237D7823E18661667B593FEFA30EC
+07E974AC8C6629A8DCC41F3F02D14F620BD415841709E7296D2E606D040D29D501927F9CEE38
+A4FEEC83A2FF45814700D41437C65AE671A5A6E83964EE131D909E56926D3BE03871341FF7FB
+BD19437C7A0C3FFE3D6B50479B56D774F8D2EFB59006AF71B47C7BED0DBFA8E8D95CEB3E5B1C
+65111377CB66E0817B2AF45607708868976661C469D4C1A3719B90B43FAC9BD8F0FA5558DA8A
+158B31D4866017BD8E144C630CB3FB547A0C6035D3D4565536D88D219D98FE96580B651FE0B6
+4FF75E13BFB841137459E93A0779616B9F67865F5F72503E60EA30AC387ECB6BBB2039582DBD
+891BB344D685BD7B4A44C73B3ACAF4BFD4170B2A529E8181763CF0990EEC3310B321F4D6D5F8
+84824ACD20B409B7DAA1186B998DE184C41A1C815F09C5902EFA03BCD1AC9DB7B844353B399C
+184088DA2DE7A98D789F1F7B56FD8375ECF32AC7AE6B9645C3EBD42D333061835230C4068720
+4AB8AF146DB9E945A631AFA80CD3237A27C6ADA5DF3F1E65DD74289E58048A40AB6374A4F479
+13A872042CCA0CF0BC34A30ABB0AB215BB09AA2FEF09CD664AC1F76736CB236AACB271B9783E
+1A94EF666A52B5A56A0BC90DB43762B33CECA87E1C8BC43B6B1FC6F0D8D8829A1DDC6A87A8EC
+8287A7D9FA52C848A76BF04EB015DC3C79DE6AACDF7316415280AFF2DFD989F8C7887253E6AD
+B49D6C78C8350F6764BA14AD14ADE05C76D9BC480B394753468AE029865248C2C760E3BBF647
+178F10A294506950073262EAFF3E956E7484636D18F2F4B4AC01F7F3DBA5C647209C29CC0ECB
+195764FE2AF2DB0C9086B587EC51A76AF1590D67102AD6BCEBF7B6D845FAE94D6BDF6BD0E910
+14DD679F56DA651F747FD08494A136E401A8E23772D3EC931A7524673346AC575756E278AB36
+4A1055CC920294D276373C881D8AB49CEC190A4DC921BBEB75A413CBCC503F96B862F1F446F2
+CE232E45652292A02349D7856904B46F9606D6AC8446F91B03118E28ECB7DB4BFAA9D79A12ED
+57B1F9086541F1D2AD9C55834A5061B1434BDA4F001BB74A3EBC61CE7D8353B6C57A7DAD0FD2
+403CB55B1111DB56CA38D2F5BDF3FCB687B08BA9CA70380EF03E837B95CA0C7812EB9D7D0B51
+00E052493BCFCC91B26D64B3B95BEA68F7AB187F5BC4B15CD5B2182103FF8C21D7B23FE7E302
+69E19619103362EF40128B0E1A0285299853239D28EA3EAE1F32ADCC813FA4C2D2FE80D3124F
+4BB2BC57F386DE387454AADAFF1CE4FE5769DB0B7A53B49DAF9E6B501834A117988081D2AF14
+56160BDF52CE6E1EEB12FD7B4C8B4C8C71D766C71A99F768B16EF1574583006FBA51963655ED
+C565B7306093E356B223DBE43B25162600F4E0254F9D8BF36306ABAE55C77640A63F4F7EB19F
+091F533DAEF035E5F7BFEEB59AF6A3DC336D953CDC9B527B1E6CB4E75BC0D6704AB8AFF7C511
+35EE9EC739B4DB64B145E42D7CE5C33FA78310654E0E02359BD52B49074CDE8768741ACB2922
+4EB52BABE235547A693E94D591673F5070045973D20AA8B76A525F6F3BC6E456A1BB17DB2556
+04A60A8344A7CF57411CB1626CEB4E02375AD6F549E6B21AF25C18418908ED928057525C9C84
+71F15F7EB1A471F57C314ED9EC16CA55B2D2492EF44BD9104AF9C7283FD1B192457AC32F8760
+32F204BA71A9010FF71FA0A74E6649BC382F883FA09EC0C46410E3AA49A39CD0A56F30A74233
+844F786EB37AE9E0FF1891EA5A7BA07A826D3A543462B30F5DDB9398B3618D06AEFC7221C8C5
+D1313BDD8179E2C38571CE735ED88592E1464E0A27876F40C2AC6CDC00D6B6BB2093AB39C825
+57D0DF90654D57EB09E4978BD9F5AEF16B76F80154EDC4CB61A17E2DEA5EAB9032101B259058
+4600FE5F74E288B16B41B18D42410D91E391F31FBD5B9DBC1A42BBF529F33EDA35757560AC9A
+13336809D78CA855015D9B3254F54FA9047CCAC1A1DECD2359FD6C5388A54F21C009402E5E6C
+5B2E4A504FCFD286EB6448E94012BF6AEA62AB724D774589B1818D2372E76200C1E13194A2B3
+4C2445AF8E6A63E7E270F54694CD71967FECB36CB10F9B7C7EB9C53B98128FA6A2D8171FB911
+20FA46D522C6682030000BB239F8BF8D1D9A923AF7104DE7DE2125425951040FB14466EC2B77
+E04DADC9CFA4E13C52CF0E75237E3CA0500857930D1B5BFF827AAAB103F5E220D1FA7FC206F3
+6967E00346C436BF3D15B0DDED15E17A33EF57991C0727C12863177BE68654EB63B242CE4D8A
+B2992DDB37130156C9D380F721C6B954ED6062033A11291332F32763B7DE9A35CFD34DFE9D76
+8C5187FAB040057769D2E52AFB30F7D5372165827680E85C3BC7645AF4441B11712C9DD1935D
+32C58B92709B7ECAFB1F9008582C8E0FD93FDF6BA3F93E38666F37C79DA45E8A7F0017F3A887
+A4F54923C9C107801AC9736E344693D57BA6648B44B9F6ACF6A9D940CA7960F35E0734213EBC
+6745E5AB6424B0F1FADAEB69C35319266314003C80EF00DD1C373DB42EBCF5ABE5D16142B44D
+BAD5C8E9E291C912F828D2BAF4965CBE826AC4D2081C8C382752C3EE0BCFD391A46B2A304187
+3BD2B28D7038EADFC4B031D06E4150801DDAC8B18264BE969DFA3C80C4FF17D29BAF3AF53F93
+6DD506C33704055B0AC76E436F2D54F4AA3CBD545FF1B67CD57325D48F28F3F7FC171548C106
+8AF2AF4414B92A014FAC72BB51A0279CB33B881DD767DFEAB867D0069273EE9DE19FF1D63A59
+AE534DA02495E0E4E5AA0B52F923228AC819E084F4E94CA631BD44B01B3025D8CAAB06F57D23
+1652FEFE73803221E39F284150DC944B0D2CD9A1F208AB552CA3C6A23D5ED3E0A350FBC963A3
+16B37D2CDB610A9FCC069B7669E2CB7505DE6D003D7F4F695DB88BC696AB9F87CCCB1EB635BB
+CB1978F46F4D1EE5A5ACB380BB435E424A7FE8A20F6F3F1E8745781601D76567AD9C1076FA1A
+1EFBDFF6F9969DF3C0F337B805B1AE318124274C0D7E0EC6F43299EE7DC48AFE50D428430524
+73CCA6ECA462CE40CBD2ADDCE28D3676DD125D404EB2C2706170EB35DA0FF60C1A8A9E36A659
+00C02D19219C6AF5BC3DBE759153B27658663F7C6ABA6327031A37F58F948FA4F636FA989C95
+3FA91EE86B93617C3369C51841B3FC5A533FB1754ACFB5BC80E97B002B34388D365CE95067B7
+F31DF8D6BB61DB83C0FC5C3FB54350C9B3A2F69153620AA7D2639116DB4A06166BB58FA0B9EC
+87726935BC6324D503017B679F52840957DE5C018C4F02F86D2F555CBE67568AC075877B1B96
+A759556EF292881CC358114E60A1B72F589F749E64BE973B6BF41692AA93F7604AD7D8376A94
+37A13EBE498DEE73F6E22BACC58108C83791C496773240B7BCFE6702FEDB9C4A3BEC1CE45396
+C5E88A770A61BCFE8755519D7E4007CFEE9919D528C651E40E05D7D03B28839255B7182CFAAF
+FEEAB7B7BD2DF6C56F52F7201351BA2B7705054B418E691276A78984A2EA2E7D991721C368BA
+22A7C8B738F1A9266064FF5DC036A20C8570A2CC0BBF74B25D7A691A20A1C1A5FB1400C66AEB
+CD3013C43D1328F5F5D0635631A3A21AC4884F0306623EE1C2EAE491DCB845E34D749A6CE4CC
+80B2E2049C0907249284BBBDBDE08588D5D1FE1031B2A2FF3756E7E2F670FF768F638D83216A
+2270902867F072D9E4E6735CEDE427730B942FA67D89494D959D0FCCB923A85C07EA3272FE4D
+018F1EB2A34FA95FDB6D31650AC2D6355EC338D36DE42547A6432CB847D27C74834036DB59A9
+344F59C9F610091E2D5FA6157C8BA4232937DB379D43F922E2A7581819A4598B436C60510B95
+6450A6DD2AC04FEC337B443463B4336008DB2289A8F9B126F0A998431D8E503B1781F42443E4
+0BE700D6C47D1D65EDC74E665C0EA196767E46BB11BC0ED69199F32DA3F4398342DD22EFC529
+6CB169043C3C902DF485A8B50A94C307FC14A6274570F878C6CBF18AF910EC20B0726684ED02
+1F862FD1F9273F32826D6D9569BFCD3DAC8B6D9BEC14562E22031BD61B4CFDA7B2C95F25E78F
+045E616A6090417F1DFC14A7A168B1B121C229598FDB040B336E1959BE810C03401D601A63E2
+7F8D501F830A591884EDCFED1C2A44409DAB3CFCEF74FA27D44734D071E33EC9C23A525E4612
+32135D02388D032BB8B9B8C1C8F46EDB55C98EAE149619244642D2926D3180BB66CB7D0C0146
+561E452B59FC7437D42B5F3424D5F30509EF1914E75D4B73E483701026F269169934EA1AD0EE
+3D1DBD25DE247F866E6FF52999DEFE6F5D5DDE98E974FF9DB4D9B99688652D209EC49AA0E0EC
+F73574CCC419039056CDD2D2EB3290D0784E295400ABE8331D978DE83A2B4001D35F51E39034
+E0BF49945B9B7C4EA6CA382684B996F12EC9438567A20C6C7713D4A6CCB3389B2934E45A1796
+42CC9E65199AD61C07769C3030D87E9F23E85469C583DB065691EE228FC2AF56632E9EF15646
+67ABFDD20776425AE23D22C16C3C005518590DED8A5DB841CE25BFB4C1BEDA4FA6575726517A
+269274B1517662BDFEEC6018FF525B4604446520067198FFE83C950F3D2880B5C9FB91DAA169
+91BFE63CFB48A3EBF24B7A33F43E1C7827D81CA611DF3476CACCE15A7978271C3DE2B48E1929
+B4233CE6A62F54BAC964C9ACBD1DC4B64C5CFAD4682FFC880B8B6E14DBA2234D6CE8F0494E02
+9A2123FE0D63B39DF8DC30F65969B8A659C0C40DF04B603EDAE85E81E634E58D053FB8826603
+96B30790E8D2613B273B238365F35F21631335882693410ECFA8749E23D34371FD28F3CE9AE7
+192389D7162E3F180D161B3A46B371F27E4596209057C4EF994E2D63791F32B77F9ACCE54577
+A56B50B4FA026D6C1573F45542D9B9338BBD2D4695F124C83D489606103807B66385C5E70078
+5418C29853BEC2D18985AE0640DC7F2FEE566599EC473AB3E04052BCA6F6BB26C27D6CE87187
+A3D4C69845A242FCAD1B66F5CD67D7F70422577DF10B05CC54D9F7FB036C289948F0387CBCEA
+D3A91CDEB9C2D1547BC6CB7B4A2581F39DBB75EA08A22542A723CDFFE7CFDE9D9FD926D1003B
+A3137A003FEFBB9FC84B0665D5B2DA9B37A3951A3E6EE16CE6F2216575C7C53061E5D64250C0
+9E8EEA685306DD9F693CBBAFDEE2A6A188B21EC458230E078BF9C7CAFC1FD601449F647C4B59
+B37CF7DB2B3070356900B3056B9272B476277AA35B97486585983EB96361D26F6714B49E000D
+16007B397175B0AC21D7064AF77144D1C0800689468351A1605E21FE5175320701DFEFBAF066
+2B93D79B0E5E7CCCCF8CEA636AB27E0A852F67B2C5F201081335D3C2B4EE9BC5D7F342B49848
+E6DBC3D2BC0F4274C2C6F54DF2EB4A23D2D736BF0823581C1EB35C8C0471AD17FD0E177F4C85
+A33522F002954E8BFB33C0ACE5DCF7B8310D71678C0EEB45A6F0014F0080B4DAF40BE2D890BD
+3FD44E14F04AFF9FBA9D98466BDED50680BDFA0C95011E2026053FCF08E0C67AF107D50CE001
+C7AAAE3FE75F5C3505BE54CC683FC9660425C17C9740D27C0634F04B784F758A6947A4F69010
+8FACB2D6B08C7FAE8D40A4183CC6329F8B921660E54420E2FBC44E43724E8F30196888AECD45
+5CFF68E47E28F68A8D82E0E7FDA8CCCE35EBDE0D146D120B1044A6E0BBD91B29A38FCF4DC8BE
+9158C1C698DDEE07E0BB6D0AF5DFF5C1020E8406CD1449E012EEC3A82D6CDB42F8318BDFF262
+54F3B528F01E8D09C147934DF965ECE201038EE90F5982CDA85381C2431A2BBC8DD5BA1FDB8D
+9236B699215626F78172D3B4135716D592EC1DA0F30B6EFA498CC3192847C45F2019DC74F618
+A7414DE75988D8AB737EE75A0CC778B00D6A84A647105664A6D147715C2CD14B78F261C05464
+490115BEF6A00282BF422807BA6E62E5D6FDD7D838E8C39EC86970CC7D86BB6EF72E885987EC
+8D919C37112C63FBE1993071D9B5B467E0917B35BBACB4ED99D4DD7E037B9AF008A5F7EB8308
+037E0E5C6862864C9F77CE7054ECED04E93A1FE549E1200368F3702A95B519D50AC654CDE6ED
+297A3C6A60EF1BB36A036900D4BE955EB4D72CB719B08694DCFB3125386C7CDA2DADD0AFE974
+C974E18501F4A21AEFD4E0B4A9D2124EAD0F97C5F20F67C7100921B151E8D492B0D607D0A208
+ADD6F315FAF3F054CDBB8EB9C5D39B56752B0AF1187F076A7CB7FC79DD1D01394FA6529C309A
+77F74E0614E79A84FE47A6518F74376B4E4E76A6E0BBA7043066C177BC8B979A6F5EE3EB5BC3
+16FF17BA8C4026F9BC861D524B223208CF94D89633DEDC9D80E79C0B8A620A5AF902879CEBDF
+1E0EDE231BDBEF0BAB71952B8D04A1D572EC97FCA725883FB2D4CAB5572261FAC4BDF70615D1
+5A1B79B856F0B393F2A065555FD2522EA74FED08700EFA68270627E09B91ED5D02299E75B066
+C5908A5790E45376C149AD782BBC1DD01D49B555B7F3B4BE829E3D28878F575C778D26FA2CC1
+74683854E0FA65D3969A3F9200F91258F274CF60978E45534514703BD6F1B7D69B41526CB310
+2FC836D074C3FAD523CFE04EF705552C365A82E2376D208AC859E308CB61603C59C80FDBEE2D
+15E1950EC314F2039B03B0FC16F45B2579CE2D45AEB8B978872E19E55CB9841859BC72AEFE96
+BC6CD048DD1F2FDAF87E31AD8292B7BFB9623B1D1DF85325B5F757206F8228A5F81BB4D93A77
+550632DDD41E61DECC1441152D3743A5074B6381F5842D8C9B5B468AF871978DA6B8A7301640
+323C65FDDB483A6F7CC512D523AC9A2F47616BB4847A61D187408664C758A79904D81DD29127
+9E8134FE1EE90AC55B2DA653FFD91E2D9D0B3594D19FF546DB593C8A699046C0F841B5F19758
+749A14CFB0AB686D7E17C58468E950255FD299DC7E6435A303B5100FF844DCDF52E3FCDA4A20
+8F42CC3BB0960E28B8ED5906AEE9C176BA5FDD3EF8BEF2A6C00E01D44AF23ED706E740ABA3D6
+FE39A0E806A2FAC4E5D7BDF53322682A8D0DC5FE490815F388223B0316592FB2DA05434BF842
+29DFB33DB898A5CC233102E29AB9C0DDEC5163E8D8E5FECF77C3D829FC98099C1F43A56161BD
+DE9373A14F69D5C35FB258CB96508DDB7B35A191C49ECD2A14C1907107BFB583E7B9BFCA5C7E
+E6D72F573E067990572BBC240D4C828E61F6394B4A071608637338987115F7437A65DF30ABBF
+5DED1A9DD5059610EB306071E42F46A55EB396EA11832FEFD4BE1E6F8704E5124A162CF209D9
+27F725D8D528408E8CDDA8BB494EB5EF2EF90DADEAF45E8624E89FE5080A04D2625DE67AD601
+DFB2131AF164F8169239A4478434FC2C2D882FF899721938BD643A41298DF0BFE1EE3F3698C5
+128028FF6BE57E6700B20649CEB0FB3C78B2BEF03BA238615FB8AE5201B111607CBE45241AF2
+AD6473AA54E9739E20F3F84DDDE871F1C881705E2C75FD0143398D968F49BE08899FF79A6076
+B4F283588F2DB488B2B58275E6E28739D80D0B4D18EE94EA308C01EA16F856C94C95DAAAA0AC
+A857F66E40498FD7CC3A8A98DB095BF04C6411A90A534E5FCFAFB3A2EAF29D2C9B24863F1D9E
+12A63FEF41A06F1BA5D26962C6A12D1A73DA880AD379F14BF568C90F206CFB6D5D53FF552D15
+C261F08B12965ACC6D86C25C0D1278A0F929EB931436A24875A01CC6E793EBBE243D880F9D38
+9C96E63793DD75CECD3D86895117F3AE55D9921A1968AAC765AA2B99AA4B21B203EE68F644EC
+5C1E965BE0885CEFD3FD0A2E0537BD02EB24102C8F3B365E255AEEBBC1CEDC7BC2A8DD1EAEC5
+7EC0E642A22805F2BC745A778E25A9723B420C1FFCDD3E641445E18AE18097A7A8E54E1C9DDA
+53E7EBD84CE3C18D56BBDC54C180E899D4BCF87C1CED04E10C401FDB83C6F353A28688BA6317
+D51A09250E1C2C63A6F9E8707D4B578CC61CC39E60B29EC86FE27FE12CD893C0C4CE3EC5F88E
+837623E202D5CF939AD560888684DF0A6C0BEBC5478F588F5234EDC52384895A564AF2145FE1
+E11228F9BF5106D900011F9A9A953B768B5CFDD595987C6F5A1F2031261C2AAB5B5CEDB11F76
+BED3147F301F821662B24D3FEED7A7A2D08F1009BD80593A7B885A4998E59683EC88DEC130BF
+CA01BD0A9265D74CC75A2560280FEF13012351B99176CE25E7BBB0E3CFB46BD5D7C64494478C
+87E7060C80CA5D5AC356CFE128783D6513670E1574FB06F009BB2671F0201B847460A54C669D
+8059A0056B75EAA5236216911B9FF62DB67979DE3DF71977EA93B3626961CE1D174A10B675A5
+763B8126E0E7E9D862ED49D82F1CFAB85CE6C94AED40A3E28EC2C7130C1BB420AB7DB578EAF4
+D81E4FADECC7E639F154D90E1194E1FBA01F611AAF2D634CAC03A34E9E25CD247DA54A1FB27B
+2888342850824E004B167D9EE44BCFB4541344E4F7884591622DB99132B1AF86A261CA17DA15
+FD4A2584681C7189FE4CE25B2986CDDED549BB0DA8C06FDEBF64C80B0B1A89D2585B9190EF58
+847BA4559EFB7C7BAAE64D37D95549061A8064637238FE3DE8AE31F06AE4E7FA588F85C45766
+EED78D8E2D9E8D96E40CD161D820C00CB0312463FEDE8441E6CD3AA8777F8D4FA553FE9A747B
+416A83FA728A52AC033A2DC128EFAE88808CCC435F1FD45CBCF963B263E714CD8C11715B4BFD
+8E0F5613101E11720C2EBEED9879894FC85927DD8303B990A2062198CE7F3A0A48528FE25497
+0DDBEBCA2C1A2160548C1E97EF58769EB684598ABA001EC66A278D4E353CDCFFF720AFDE2481
+B9DBCAC57EE38D9C464FC1F331A45D1CEEB585388E00B139F638BAED8F6ADF8D11FBD0677716
+AB72017C1349B72739749FFD24D00D8435AFE78805E455DAD15F6F4500A041E25E4E890DC0FB
+A5E88B7354302F59D03203997948AEF1FD05116A2856CC2A44BD0C2147C7CFE5AE9A9575A49E
+1EDAFB0FE0C7F18D1466946398B8099D3CD61F38950BADDAB531B2757395B3718FD42651344F
+CBB9AE1783CEEBD9F1AE5260AFEE7A037D195E25C673BE0389CA160BBF2D117DDFCC409DDB63
+DCD48185ADF29955FDB42537EC1C19A0B5E51D8785F06769C0ADCC90F5632A9F58F89D333F04
+623ADC50F2C78661B84FADFC524445374F394EF24EBB0FCF338FE9F86B654F112E8C987BE7A9
+A23C0AE29841F69B6F936E22507882D1A557E36B4F9F2C3D5D054A0167CF2890EDC16E5D260F
+3D48E5117E6B8758DA5CB55694862564D0060AFB15641040F1BFC982926BDD21FAEA2264C8BC
+94F5E4F882DC8772C4A0E049AD5561F0F240C28F7F863AA572E1743E27C1E9C1FD00D0C501E3
+A90E9F86536B2695B38955C97095E1892ADFC6A6BE12A986F2C79F218B1F0BE6BF3364A29B20
+3FDDE896664EACA5D770C769A36BCB8AA57083B55E9A31457EA37E4B83EA4C28EAADF56256CC
+630EC37F5CA96952F816EC04A3797A8DD0A33CFF1C4171AE5163D786105B0AFC689BC96336B5
+B28396E0F56193E684163234A361A57C826E805477BFA84F78BED285E64C5C0B0173A82EEC75
+A897AA2739DB136529C9CA30E67832981685D75F7B51360A97256CF5CF87E2A0CD4FCB59E64B
+3B506871549892DE880F4C39D40865E1A643D72B5CF0AD4A56FF0A6E68B356E2FF10265B069E
+954D2E1C5F6D0BF4633F5CA75617C42D53A35AF4EA98654303B54BF58EA419F054E4786704AB
+99B67A3F293A027B6F3D6EC6ED3AAF74B7CFE18ACEFE143F65CD7774191CBB8F00B3027BA684
+194B6CBE20796A9A85E205D774C47EDD8D68D754C8EED1211044BB4DCC0E7E14A1F1EB857BB2
+5D4191E0984EEFDBB7CD70958673AD34A0D182687DADC837139F087F94F526B93189C2AD5495
+56621F38A8D492B144881C69C76E611DEEE5606E8D9A3620B946571711ABC30BD4C2BD2153D5
+E557F53B667F996199989CB477381AAF8B554E4B0D0B3B41CD2DA66E120856DDFBE6894484C8
+8EC36E804C598C9DE38490313ABFC3B2E9E67F6E304B347F537995416CF9B00CD0DA9045003D
+7D3F6C7F358C00BCF66C9924D4D0ABF8BA9EAB1F37ABC4FC276D18ABCD2CF5E583004A4787A1
+0DD260923D86CD83BCB52B8E1A7643EC39F4EAAE5F4C7FA0B93177D273492F0EE0688F63A0C7
+765168619C5793BFF01FB5E65557D3452BDB63377DEA0462A0294114C125D79A59BAA2DB0B61
+0E9A5DDBA3A298AB82E721674656EBADAF525861D924DD0BE6182B74B548ED0912E6D0216F94
+D2DE6103F81C8DFEE4E771DA478E303D5A19170CC4CCE2DECDFCE2260A491DC221A04CE42EA8
+2AC34011E8DF80DDDBB11D5CD87C77EFEB80179BB5834D4D4F84CD7ED478DC2D5D6C20E9F666
+B5345B4C34DA11391C607CB413BC8C7169ACB9C2BA5CD27436B274C5342B2AF7AF334A2D6307
+6DA21B66E87F86F916C03AE2D514931A8251DF60C4E50780F4622279B8A8612377401411A808
+2EE7A7363381C053BB136FBEF76B96B3AD7D1018C9991A4D17CE2F3B626169F606787B2A54EE
+FA97EDA191919F4C9511ADA863E93135BE665ADBE9C523813004175CDA72A880C72FE711ABC6
+7446CBD6DB20D7EE6C0EC8CE999A4E28B7125086B0600AB0F34C5AF47892FE3FB9403AF0EB4C
+7C8E39E2229A2512A6944119F10C7136F81385372B28D39F1850E77DDF02E7A0FE4063915E12
+BCCEFA52086840D7E26B6FB8BCE852311CAD8B0FECA03DC393B896B0EF334BD4A25D80EFCFAE
+9398CE495A8176810DF51AC2C7D6145DFCE312860248C802EA7373D7B1F59BAE9A8EBC594E2B
+11C184AD793E8F9F0C03F2BD30EB454101EE8ED0FB66B9AE0594897F908273E591849F822285
+35D122BEAED330283C76080394C89B534029B637E895A8F1A36B01CCDA7924FE2AC9F0442520
+47D9979C77F4F52442A806A9CC723EDAFC8B9AE8AB884E9AC1309C9E55AE8B5935AB1F70F413
+41E718E995262DAA8716A2BE97F1506441317E556690684E040D23A1B83A32B747E7C44F3046
+58E9B8A364028086EA8BB8E654B4612BA44D8E39A1163E7103912B98894A79BD5EAE70815A16
+8229B8965DF0D76B20B081B527F16039AD39FE609510F68BD48D8B6CFE02A9784E282FE64DC3
+061AC3094BF3BE7E9E7F7EC1807F0EEBB0225CB37A4443CD9E4B2F25DAC8196ADA984DC31CD3
+52424CAB7FD0497A3FBF2F02435B8E661F0F73D21DA704FA37C69407AE9DF10DB5723CF9AEF4
+0D3A860F9027D0B1431CD2A92409E1E4D986D34B64DE243CA561293D0569648D5BC9CAD90581
+C666709DED4565C386907F9397C442A2C0D358701AC2AF50D5F376B384D52E395D52BF6A741D
+18E6AD76914D68C7E3FE1246CEAE4BFFFFEFBD7178BD8EBD239EF6D5D59F2BD71E899E763A3B
+EE734080790DE33CD9D0FE3D1289E80C3EB0C8ACAFD4F3BD4DF6537B1ACD2BBCA186CE615A9D
+0F0735048268D370AE929E84D2953882F8762D3819F61C0ED85A115C6037BCB108B66C7CD1C8
+3673914FE883AE6331BF32C3E199F7235FEFF1895577D216C8ED6E77DC5708F4CBA32CF1EEB1
+3D9C0145713A954072637DB4FCC1C1FDF0B5FE965DB518500063090DA4BEB238EF9F67F92B1B
+ABD56D2D82975D246E6AFA021E0C23E88A70554C2B5F0A328BE693E22400BA163AEA84453BFB
+05396E1C1A90AE9EE51F5C8A98EACE0A0CCDFE699B5DD368CBC7F6FB25A237FF848C01414DE5
+63BC991CC1A0A5AE840E8EC328303206D4FDC06BC7D89EB8498B611A91DC1037378AFFBF21EE
+248D15C95BC9F07A856771546E28EF1954445155DF4689527EE4B72A3F54D2F66696371B6AB5
+848A50D4A3F5534BE82FF257BF014769B253DEE02AC57A1CC3325B5DC44895D210671E7C77B3
+0C8266A1C9D9552DBEB49177A44A6F5F018C1D6DAD19F65C5ABA1F7FE55D80E93507338B0F0B
+3FEFA0565E6BF4334D98AE53911433146731E6399A8E5783BDBEFA8EF739FEC5353E07E423DF
+FE5CAA3DA0A486E4DA42E84618ED89E60ECC6E103BE8E61ED5C396EE9D800CC83AFB6E532BFD
+DD96ADDAD7DD85146F410B40C43BF1F12BC27E07982099BC4718170D8043297DB95A571E1268
+638621D6E295CAA2739F9251E7644EEA31715A42FC9A56EC891B5366F3C4F26C77AAEBDC1BC1
+FDD5E1AF4A140D6AE1EAAF67C0C28B2B4F886F0D8674B7C0FA6E7AE7F05D56457D1A9E055C2B
+30B809E3A84E706CE981107FC33D61FB6B6BBC9FE5952EFAAB183C994A2C606AEDA95E949231
+926FA1CFEFF17B86469CB504ACAB435E8CDC732380E4B887DD9E08618BB8134F4E75417EE647
+8B9BFB11DA7595E042B8D1BA639A1606441872AC2BBF7065341604565B8D266D64340B9B1810
+8B9A065E9614107C3B2A6E1E7FC4C65331D63278F113D9724A92C0AE7A1F98D5C07DD09A7802
+A77F14A551508B77316E4DF79497DA97823812A6153D81DF7F172C96E5827A5BEC3BF2401009
+E212C8AD794D49548485B72C67DB2815DDDC3055ADB819C1461DBCF71FE60F7E0D5BBFD010ED
+BDB843603BF2DBF73B69A9685CB4D282B4B5CFBD47D805B9E9BF38949A59B4DBEE9FFFD200E1
+8E163866CFB2300DC446A7F7BFD22AA5474B706573FB73336840A60CD62906CACA961B801AF7
+8DE0CEF472C0B96413847AE7A911CD28638F44BD04E6D1A1F6847A50407CA9A351B914EC5906
+540B097448B4473F56E77E568DC0822CB54B312E4F9AE5742F6E61C1A5557BC04BC08F39AAA4
+2AB36A10996E1412D7B046EBE11C4131F1859178DFE84AC8CFBE05CC3B919D5BC91DF294640D
+4FD5835CC5CDA37E9062634745E5F3D3C310CF73F810100EF5945725FBF38496AC8763E28B9E
+69566C0F8032129D569ED8B93FB794473094700911A2090A9F6D8FC5186ED4DB8648C32BA583
+65D1DC247BA2FE69FE4A42F5423EC4A8D1B9B07A836B83201EC205D158A80A8918143CAED74A
+60A4D022EFEE3C44FA24FAAFD7E0B08106AC9B851DF68C1643D9BCDDC72905440C980113BD78
+91394313840F7B4ACFD26CA6C1FC757436AE7D499801FE39594393E0FB3699AE6A7F387AAA2A
+6D955739B2729CBD00BEFFE282E12D0E938D512C451E186E82703BFAC1FC85C57957B482CABD
+8D3032CEC83C3F75D981129A6B5736577CF55C417D11F26BA143D197B53FD97B7766971DBDC2
+BE12F9EFA47A0DAF683F504EF5726AAFDF01FF5B5D941722C6D1973FF92DEFA5DAAE8554DD48
+B01FF2660B6A31A210F504BEF75C1E8EA6E243972114DB296D19C790F1806E58CEF7F17673EE
+6254A4D8D14C3ECF591AEBBC869861604E181BC8E70E19A178F0118FA307C16778810FDBDA4B
+148BA33FF3A4B38F3175267E7924E7912C52CD78352688C45644794CBB843A501F6DCB88BAB4
+6CBBD6F36E31DD0FDFE755081BF4F0168AC57D32E63BCD9E95C6C55D9E56690B7ABCBFB535C8
+0AF3825F921CF6C3953E40BAEC3795A32B04328750932DDA02B0408EB74210EAA082D7E81C04
+DEFE9E7923DBC0A175EE616161F96FEA8BC29953EC47B82951DDFD4996A6573C40220A36355A
+C3E696C07F61D6C0B16D2124F2CAC8766C65BBC7B8BC8B8B0D5D766533868A1664E319719863
+F29BB802EEAEB5D384E95FB9A784F894CE477D8A41DF73E6B560447644F54EE71741AA8C3CFC
+F40547426B5D397F873D38051A1C37C05DC2BF7C77F4068D01DBB0E5FC2E3CF2524774C37525
+8AB840929F058BB06B958E6C9157425C3D7A2C047272C387E92ED820C92583E3624E6E498A5C
+23264DE1CD9000C7B97081E40023C071EC3968D22331DA058AB5DC1A4039B0A313D70255281A
+B7CDF91FCB32A991EEB82E6AFB4313D4E236E57819ED4739863997EFBF139624F650842DCF91
+A3782B41851EDA4B45FD9E46BD4002379C66F700AFCF7B04328948841749EDC07B03277B01DC
+DF1527F14E261788FBD4D326177246589B5D6003653154D8CF5B262FFEF2BC3C5A4F2C1000CF
+1E22408F1C4C972969EA4156B3B0DE2905EDCC99326C3F72438C659BCFE4E420C643BF6FE226
+5CE6EC9092859A20C8A8D0BBEE2FC3FB0D14217E973E4C7B318CB7A8F6ECE8021EFBA044B1FD
+CA1BB763C1E37D622F833FAC366C66CCB1C44D8EDD405087D720BAB0EC695D22D86272BFD95F
+35FEBDE770C397DA6D5B212AF2DBF1A16FF5F125F3F524F53B98BA064535346D0DCDD2CC02E1
+C55EA0E0F847F766720D6A9D45B9D9776F35B65DA3D8A3C78BB235B0E5FF8819217B77B86A46
+FA0ECC6ACA8C6A053562FAFFD3350F2A056D2622A3A4D673A6A586A03042815ABA31AEAA78F1
+09410D270DDE0CC99110A420B54AD9CE4B54D4687B07EB3AF950C1D4B88B0AFC37D792407D94
+50EC4D77EE6DDFF803CFD0F67354DE749FCCBFE296924AEC3A305857E94B65E91FDD9F11B289
+CA47B191C7613DF209896366E9D07431BEA6A229652AB7FE6A210277334784C8D6627D7D8ECA
+43D4B8E75E1E6AE21651E7B9942FC0E781D502D8D51D7ED6F9576A12A2CDC40F3781AB70437F
+9D958EB6477833B9B85F391AA10201E89C70C0A6B053E5D95A550BD380809C3D9249602F7EFD
+81EF86F7BEA0CEBEE78FF7E51FFDC2CAC7BC2692E3096A1642F40687ADC3CAB1626F7311CDC3
+B1EDBCF3BC8A56153580484B30875BD19B65F77320A26A4540C1079D23B07C48FE5D69EBD7E8
+AC5C11333D9837FD706D1C52FDCC2AE9D13B3CEAD494B7D0AF602A57E5032F872EF41C71BD1C
+53896529E6050BFB85998F489CDCEFFCF9B70E5D7371422F031AC9C00D00E8C436B6EC76C9A1
+1B9F92AEF7246D46EA779C051C539A5D0B537F05ACAB9C2C22BE43EEA3D56F52CC7087EBA41A
+894CF633481422F5E6270A4E6445496DD020BD3CD846F98CB64061BC16E6C7E5430EC1BBE8CA
+2A9390EC2B3EBF282226EB70D5AAB4B911EF1347299FDE67868D6C1ECD96B2A8377068808629
+E2BEF81138EE0966A059BB6058CDB7D418CD5F217DE21C03C596471AD4125FF448B5DE9D50EF
+DA9CCF04B3D4D74B452BD00C7AE549FD0F2F1E7919DEC06ACB53D39A38E75397296A32E61A43
+5D4554A1DB7757288ED367DC6989FAE7F428A8E28E806EF90C4CE040D1478FBE47E2CED9C3C2
+4716AB2E4A138046BF7F7C5C6ADBC75A3283CCB5F9F53E1FF05D09186C8EAD24CE641DF1844B
+A76AA15586A93049EA5C279CD92F070B162F59A7023B716D9901F332C7C05DF88C27BEB76A50
+4BFB2F9DD053627942AD6F04315B51140A6DD16A9CE1A4AF46AF3EEDEB07EFF17F6BCC85BD86
+6E763C64CE25F9F9D278F04AC4B12A03EA26BE39FEC35434A1A105DD410FFFE7B99C0AADA93C
+6A834BA7774BAA5C01D2A8D89812433D5AFA22507ECE5014737136641953F6B053E93500B069
+34C25D5F2E7F45B00D78A4702A086AD89A965EBFAEDE1CCB95DCB9B8F0BC376CF29EAB1288CE
+A94F572383D358AA48EE8DFF88B20A78262813BC1A2849716F6FE7295CC153069E511281DE2E
+1135B90F14A9AF09AB377E76A38D0A8C87AA352130228BE170E0845B1FD3C115E7BCD94A807D
+0B079CF9D0A4FBA455CA2CE547F24A5AF1A58EE39CA617E2C15ADFD2AF1B6625EB8310CF7831
+EA2744FB523816373E69139B2014771C6D7C9DE12CDC486943D716B9ED76F5500455641DBC52
+D5D20D43A41D28FBD23D557AFE215ED0E7B9ABED8A5F908CC8331E3FB61C9A9E73546AF3ED88
+A024607B738849BCF80112E995BEB93433174D2FA06F12B159979743EA404625BA7448F54DE4
+46C9252A6A2769506905F8448A938EC2BF8EEF3F73BD5C7B5B5DD81416DCE2EC74AA7ED2D510
+CC6F591D0C51F2DC4B8379D06775F0C2BEF70343097C44EC7FA8F711A745F3330DF7B8BB7742
+EDE598BED07CC879A10B0B34B20335A36383A01057A53A5243363855C70AFF48F259A5B2882B
+B302D320E533225326249E426BA07FBE02C76D5193DBDAA10FB23DFFEAC7E2AD096F324E86E5
+A6B76FCD07D6129338D14A893EE8D92F71A9DE75D6195F71DBB650F0AF3989A02002DC32D1EA
+DCDB40CA3ADB7B50286F2618EC285B822EBE484E9AD72591F5DDB07F3A31EA9FFC3B26039676
+D1BB14983439F0E7517674C9E36D1F86FF8032E6BF2801ADA6BD004454BC61FBDF33A2788CEA
+419B4BA1A0AC2E19660D6173F539E7EFE000AB18CE9F724E5CC641D6052A70F994A38E050030
+ED2CF32A037B56E9CB96C149A10F34932FEB06AAF48C2BD54D25B58412CA1FEC65891DB9064F
+3CAF93D6FCC90EDCB298BCD09ED00AB7B46F5E776DB5AE0E397F8E780C4F9F19A339CFF8C9D6
+6920AC9E95B3D90F335B7B5BBEA40082EE405AFEB3397A4090BF854F0A34DDBB7D80FC30BDF6
+DA9032106C0A090004D0DAD25B27B99470796E5C4402D05D82FE0533A2FC0641E06086D5A63D
+FB4C9E35A8A6ECAA9259F93B812796C4A331895EA2547ECEA1EB254B1AB777FD3EF87E583817
+4BD6919E04FA04FF349906D4AA7AD2CE33BA754276E5712F3EF752065019563446103EF6713F
+E9ABEEB69D73A66FE463A37EFBD1A37A53B42F445D13DC40C1042C38B09478E35901501053E5
+6E98C2EC86B364594FA23DEB6EC3D4B16C41A5FE34A13B880066B3DDFE51D5DD7C74CAE27085
+9934A57FDE18D4BCCEA46CF0B05C2EDED63629700526B0FC9B40A3ED89A3718DDF61A554FAC0
+6F4722CBCC8FAABD7960DD7D733A73E820787F5AE1F5B0526A76FE49057AFAA7D42654C95B39
+C9294C20F36694DEE69404A8F1FAE78CD75FBF9F59AA7D9887DF8783775F26CFACBA6CB01B30
+602446E1754E2F6BC3CA692B4A6F078736F9FC74312DD87AD5974C45B386CDC5E64205AFAEED
+297B40BEDD7630660FF644A7A9734113E58ED8893C3B93A73F183C1CCE12035FFEE9A515C349
+16A92220D07F065436313638617BF3780BE2C9173472B8A69E9EF800CD93709AAFECC61734D5
+DFBE4DF2AA1AF855786753A0CF176BF74CCB46D2CF239BFC37B2554F17C1DCBD693786A0B5EB
+82831F9E8A4B42EFAEA6B10E7942AD1B783B1D644DBA9B5EE4B45CFC496FDA6F98881689760F
+734AA938CDEA288427833C4F24999E85DC610EF3A484587266F72E1D9EC3ED7798DD3A9EFAD9
+854133875C0F42453C21287E5A4D1854CDD50DF26F572A5933CBF0944F611366C6E6E3B80D2C
+4C44DD99E80FB8351C9DFBF38CA541892804DC2FBD14B1CB344555FE484BF649C9308B751AE3
+F27D7FA779B59C3D796493D14426A31C4825DAE251B80D462C98F287C5E60B782153854E29FC
+3BF95B2C4B3A987909ED65D3345F947DF42A7C0249602EC342404301F2D1D1DF0CB61DDC5F38
+C3A967A0CBB707EF6D2458AC4F51388F803C2D4ABAE337F604D8508BF79A9A1BC185C5030DEF
+FAC72A16CB51EA6FA8DA134DEE3EF13226FC0C5C5A00573CCC71B7F414E93442B0558A328805
+786DBAF0E9470431002F0EA58A40AC74DBD1805734CEC67FF5B8E3AD354FCF9AAA26FC636EA3
+0B026DDB98B7749DE54C37EED9B0C614C1CC5F1DBFD618BE5728772E67F85AFE1DA3E907AD8A
+BF69F6CA96E5452DDE3C047E35FC55AE164729E59AE10FE733FE1B58FAB7EBAB46120ADFBE71
+3529D6B8728C772DCF0B43D42E9D7B7DE2FD45B042DABB9D573FD68BBDAFD6E26ECA6672A425
+5D591136049F9C2CD467299EEE7766880F5B174C2CD570011824C958D102EB97BDEEDADC9B07
+33BDDF99CF1C20136F34EE2461C6D5CD1A77DA5A901A66B2E3D57910CEBB30C60AB149336F2A
+91A9CCD9C6771D4A48DF99FA4683DB39A8161B83CD29E70D51E2ECDA3DD5A34455585899F61E
+7E4FC376111D29CAB945D3FFA57E7DB12B894948A37DCB2BA9E79537E3FF095C81CDC6A4B228
+19D7E579355B281A4F44C5F475AC8F984B78A91B20D4B11EB47BE5905059A211A6696DC066D2
+A5792F6AA667BD5AFE92C81CCE1753DD689FA80010DBC4E0BC917CD4FC8171C991D6FCBE5D42
+CCD8EA0017C0DA02CF307EF321A0F883FE33731655A5528AF87F05C406C7A05DDFD4D6889654
+99A3ACA7E82F3F2D85941653AC8E45C3956CFFDAF91CEF1F1AEBA26EE5495A3A28073D190A38
+1DF5F2384D12C1FDE082378B6FCEED74831C12A54337D64A6352E2EA85E67DE10B4CB5E09E5A
+B6A356F2345EB68EDE34CCCBFA9AA7DE38B5FBFDC6973531B20F85D127EAA05DF03AD933D546
+0C50933F551493AE28544F62D126F2964E834DAA0C652C2EB4DE3B0FEF10C974FCC7C10F0196
+AB56D47E268AF927A96EAFADA234F1030E58A257163B72793D8340957515D2E7FF6153923E5E
+3EE290B6284960967479B4D81BAEB242B327D6B2D0FF46F77E43B4A0F820F66204D507E7C1E7
+BBAF0927478F9F9F7121E11CA789C0E0418217CDAF10875F96FD05D49913091B920DCA3BB373
+99A1D88109D834742524CDA2FEC84E86F232E5DD433F924E9E01BF6E446A63DC40741D349420
+26DBFC8D3888A3A834BD4AEF3F5D38000FE075AFD4CB3DEC0415EFE16FA1820341A48EC4B3A1
+086BBF729E68EC9DA96296A4C9D551E099E3D3BD8F464FAA5735B99963DE4C2AC96BD0FAEC57
+E61C59133EF494085A9DD295B45B5B86307C7FA720F7170DEE2728CC31C58BA1360EF0733918
+D1663BD355295CB8363E9C53B1F271D5CAA6D53B80D8DAA29E9B834271422637CCBE92D7D9F2
+7B3D3BFB8B3FDE5C6959CD831B09948F92943A455E911801BB69CDC4AF15ED67529D529B9915
+2AB50B8ADA7690135C54465F46AA2D6E17FBC36E92E3C9A2EE01CA9693646DDBCCB439F3405E
+A6C6FB477B56BEF0FA5C5EBCC067C959C4453046959C4A9F1B166AACE020CA94F082899CD9B0
+FEC62E8B60851D872E56D48C6CD9D69D5540D1B3F1102E0B641BC40E17FD99A9FCF1048E44F6
+ABF60352446E3C8520273DED902ED39EB7BAE21995A6F48D89A74A31C40E585D6206D90434DF
+E9E3FD3DAF501AA292BDAE3040FCE06586D10B19612590DF6D9D60C086C9BE4D2467DFC042D3
+4BC7C37C93E58924BDF35C5380B84B5BB19F3658696D32AD3E48F95A0EBD2005E50423C9E3F5
+DF1DF53F001CF6A914D3F7545531E578422D99F9D914C7D83FAB83424C583F4A78C51B194E0C
+5A80BD051BB9C62553EC3443315DED169EA666119BF3C5730391FC08EBFE0F2B8D6B18EF38FE
+726E9EB4C41E11C9A22351C374341AB728D0224582689A104A8B3E7DE0FCAE31EE8BD13397DF
+DFD04211B18938BCA715A66A1C7AEC553A14C20C909AFD757241C62DCA34D6CF7ABA262066C6
+3BDA13D3ED508F90AC4CC8F34A3C7B8596A47A24B0C048898CA14D7DBE9C48B8D1DF2057BF83
+1C0C89C470F3E526DCC94D247E54757DE9AB8516A1EDE99EA0902025818A06C68064AA4A7706
+3908CCFFE4751E161EBB1F5BF09AB351D39D0FC2CB8021B73A8CBFC7BE80FF63577CD226554F
+A9DB429B058B02314ADC063D859740747B54961512B3160EA441AD31F6DC6A0D8AE9BA50B0DB
+545870A451690DADBE35FD8BF54D32C06BAC67C886516BDC7FC91CB9B6435525073E37CF4670
+708805243C6F9809C610CCA49C7D53A638B04B15FE1FDC4F6C2C6C274D18DE17284A4A6E871C
+22D1D525C23FFD924AAD6367E6F3E576667A2766102BA4754E6E3BF0F854B328874BEAE2065B
+5984E0FD540F228BC854E6DDE07788975FA64CB562656490CD30C95D4DDBD8171E4FB1A2B5C6
+D50755375446CDD0B405B47143538D4FDBDA098AF40A06B1CF7A0565009458CD116069C86746
+DAD2C0E2F24AF45B40BE740E7485BAA6B776D99ABA9BB0A25C53E3AA56EDAAC25BCA78BA2A7D
+0AE5DC30D2D80493F95AE152DC0C07946BC5B5EEC417E1903B3ADA7D1738A3EFCD223F743CDB
+75F34A83E3EE70339BE05C352D8A8C3D3BB7B3F934A43C26EB2A849A2B390D779C9989E57006
+AE913F406998391013A463175E9E4C8DFA17ADD0A743322734CE5BEA82CD7A4CC1115FB00D1B
+212C8A340B0AFE77568219B9A3C523090ECE0515CA21C05264BF1934F557AA0197934B8D27DC
+634A30C5C325309E6E7704E97BA8C06A8200B041FCBD0D539D972FFC6B1250F047C4D6C5D549
+7B3FDDC7DFC0AE135AF47C31446D8EBB91190847F870897CD034F87F76C4AB03901B37B18746
+0A32360B86D753C9FA87EFA92B79919BC2D181A81CEA92C438E05EB257839443FDB5E96A4CC9
+898801D4D69EABCE3B92AB3427930C462290300E334EC1DBC9E54453F466B9CE2374CAB66535
+DCF6312784A708A25165D6667088BEC143F05A827EBA0A9F6AB536B69F8EECC44CA548F7072D
+B51B6A189B4260ABF269B0A1869763ADA330A595CEBE655FAAD08D62415ED6587B393360DD36
+6E5350EBBBC3098317B97581BE36742DCC36CCDBB3B42420C791A20CD92FE82947EE6144787C
+4C3A6EAE1B13EB6BCF4D0BFDCF25DC941B47FEEBDF2D49293DAADE949AE1CE74037676E01A39
+C2AAC54ECE35A8630A1756AB03059A7456E1048033C7F1248324643395FA6FACAB5E915F76D4
+40CBF009E1AB1F39E87D9D5F2B5F6BEB9034A987A18F05A558C173B145BB865FBD5EEEAC935C
+70E207BFCD63C514FFEA2250B6EBB33EAFCDA4CCFD0503E5842D6B1E27E546BE5FBED519603A
+EE73CBF5B83C51C1BAE439A559477FD7BABE6B33AFF69EBBA394355679A1518928FBEED5A751
+6488EDC265BE1C1BAED666E33FC9CFFC35347FF8834489A916F048B25E96AD4E8DEE3AE05C75
+D3AECEB30547329D9FFC69BA98E2FBB7D1D78FB6355CCDA87826AACCE1AD13C39D718AE32310
+14EEEA3A5C79309FF453C8461A4C66C3751F1CBC06CB25B9DC60BF3583B142AFB8334EE23DF3
+C69F8AC7C2CBEE75CD7F4A33DAB9C8481B6282FC58ED195F1780E493541C208686B71EAAD9F5
+358C0DE284D54F0B6341807BE697E3D737BA6D7796529FC73843722507DFC1598C1B808BDC6B
+12A4259862FE387617B2E189B194D96AC95DA4DE3663FBB4770341BCEEF13C75D76C655B40FF
+EBC66713A3416E7BE641F5F8875D36495DE4E94A8B6508E6F3EDABAB9FF52829CC674340DB57
+B248864BB9365AEA3A6C84B6A1D0D6928D275B5A79ECADBC1836F4768A715556B98FAF6AB81B
+289831B71AAD06F5217610CD7BF4F92B48F7681EEC635B26E9DA602962E4BB9B3FC4E561E629
+767C0816DDF8073E7E387A125FD81592A714B58A03768A8309BFFE17F7BF45FC0C0820F0137B
+398E2DFA6376F9A7808E9F7987F7E8D4898CC8D16500BF4BBD6BE2B9A166DF05DA84AAA132EC
+B88A11BE7929811EAEA87299F26CCC439A374173B6AB3CACC2645781F787F3EEEDCE87427F6F
+FDCE837946A0D5171769FB3F150A51E16448C08B8F8D78CFAE3A98D5F18F26E745CF9DC64403
+91AECB0B61C713978EA17623CC5ECCD22F4BFA6E655BD0A3212B9E2ED3BA6E85D61F099983AA
+1EA8CF1D1D852C03B2BD92F0F51E09C154DA9EC5C879CF489BF99923DB4D9B68A6EC66EF1D37
+B8A1B27D50CB931B87E74B65A9130423C162E66AF90B61A32C63B1C92F9A01C4A3917407FE69
+A2F64FA60C808EEDD1825A02C9AC689641B6AD379D64F153D063CF3664751B06FAE88D17014E
+5E0B0DB0D41A5817149DF3773F81541EBA95093B338EA9CA58ADEE6578A540B59927384F0F08
+536A57686AAB0AD877E29AB626E9B14FA7B1C4710300583DD5AF73098E1CF1B807D647149523
+E1B64427E7E5D1CE78EE1E7025A34041E87D9F6A97CD1B37BE324571FF184EF3DB86EBF77894
+5F7277D0C194419CCE2546727552660115002034E6DA52BDF3FA669EA30318BEDDA7E7C02588
+8C1DEC52925AF96697919C162167E3746FDA83CBFEB79DF4D2E8576C8F186C31ED02BB428817
+B0F8BDA82D74DB4903CC1F7B18872EBE75C7EEF577BE9309DEA7ADA7565B6943A28BAB624C0E
+7FD1783314A82C41097031886D8D70FDF368E95BAD9CED5F620A11031ED312FFC1C2A587BB5A
+6570AD89CC3FFF6F5AF56C361BA367A5FAF9C1E4D9F2F799479730FAD7DDE0F1557225054646
+9C9C64EA50DD1071701D2E0CF69F227C2400F01B5ADBD34887C95CE68F26A6879CD224D2B1C1
+8F11E02E3CD42E35D3C3D30084688F798FF91EB3D0A82F11AC9212B2F7D9E135BD3411CC7188
+76775573497F2E5D97F5FD3D0C8AD2FEF53654D0E016A39D4E5717D09CCC87367E1F3193A4ED
+5714F783794436403209E50D8B96533F76CC66151CC6124CD63F33BD572D25FF824AD44D5163
+7BBB017453E4B3B37C0140075422BCAC441047654119577EC6ECFF0B580655C21772F99DE072
+503A7688E22BDD7723AE7E7537ABEDA2064A1C48424B0BFCE52607CAC741B762622E6BDE5B27
+794B4989FFE55F4F2EBF290B0FFB53C62A2BF670946C8CFD089242341637B237C37269FC32B3
+E61A27DDEDDAF2897844A3AAC99E2E23AD7EF3010D2AD92EA14FCA6D68448E961212AD79962F
+1608F0193E7C301F5117C3B7CA92DCD9613F4F90FE4235916F17598AE3CBD144CCFE9F2937FB
+44CE9CEA13CB7298B02621DDCDF2CCEAC48D2A22177E244592FDB96BC75B0D4D9C2108DE86A0
+1D197E13FDF277FEC5D59A04380AAEE76ED736324239FE2103240000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginProcSet: special.pro 0 0
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
+@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
+newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
+closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
+/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
+currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
+N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
+neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
+rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
+scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
+lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
+ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
+/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
+pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
+restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
+/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
+setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
+moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
+matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
+savematrix setmatrix}N end
+
+%%EndProcSet
+TeXDict begin @defspecial
+
+ userdict begin /bop-hook{gsave 200 30 translate 65 rotate /Times-Roman
+findfont 260 scalefont setfont 0 0 moveto 0.8 setgray (DVIPS) show
+grestore}def end
+
+@fedspecial end TeXDict begin
+39158280 55380996 1000 300 300
+(../../../texk/dvipsk/testdata/dvipstst.xdv)
+@start /Fa 25[48 6[33 24[63 17[22 11[22 11[48 4[66 10[63
+3[22 16[44 29 37 18 26 26 1[33 33 37 52 18 2[18 37 1[22
+29 33 29 1[33 23[26 4[48 21[17 6[22 21[18 13[37 3[{
+TeXBase1Encoding ReEncodeFont}33 66.4176 /Times-BoldItalic
+rf /Fb 138[22 22 22 22 2[22 2[22 5[22 22 3[22 4[22 92[{}10
+41.511 /CMTT10 rf /Fc 214[42 7[42 32[32{}3 41.511 /CMSY10
+rf /Fd 128[21 2[42 2[22 22 30 22 23 16 16 16 22 23 21
+23 35 12 22 1[12 23 21 13 18 23 18 23 21 12 1[21 1[21
+2[31 31 3[30 23 31 1[28 6[15 2[27 28 32 30 1[31 3[32
+1[12 2[21 1[21 21 21 2[21 2[12 14 12 2[16 16 12 4[21
+3[42 37 1[32 30 21 5[21 2[12 35 1[23 23 12[{}65 41.511
+/CMR10 rf /Fe 156[18 18 22 71[24 25[{}4 41.511 /CMMI10
+rf /Ff 137[44 44 44 116[{}3 41.511 /CMEX10 rf /Fg 152[208
+103[{TeXBase1Encoding ReEncodeFont}1 415.11 /Times-Italic
+rf /Fh 137[42 1[23 32 28 1[42 42 5[23 3[37 1[37 10[60
+1[60 1[51 46 2[46 6[28 2[46 51 60 2[60 6[23 58[{
+TeXBase1Encoding ReEncodeFont}20 83.022 /Times-Roman
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -225 -200 2331 25 v -225 3108 25
+3309 v 325 -77 a Fh(D)m(VIPS:)21 b(A)g(T)724 -58 y(E)764
+-77 y(X)f(Dri)n(v)o(er)g(F)o(or)f(PostScript)836 238
+y Fg(g)-225 695 y @beginspecial @setspecial
+ 0 36 translate .05 .099 .95 { 27.4 0 translate gsave 0 0 moveto dup
+90 mul rotate -10 -10 rmoveto 20 0 rlineto 0 20 rlineto -20 0 rlineto
+closepath gsave dup setgray fill grestore 1 exch sub setgray stroke
+grestore 27.4 0 translate } for
+
+@endspecial
+441 770 a Ff(v)441 794 y(u)441 818 y(u)441 843 y(u)441
+868 y(u)441 893 y(u)441 918 y(u)441 943 y(u)441 968 y(t)p
+485 770 954 2 v -180 x(v)485 811 y(u)485 836 y(u)485
+861 y(u)485 885 y(u)485 910 y(u)485 935 y(u)485 960 y(t)p
+529 788 910 2 v 865 828 a Fe(a)12 b Fd(=)-7 b Fc(\))11
+b Fe(b)g Fc(\000)-6 b(!)11 b Fe(c)p 534 846 900 2 v 534
+880 a Fd(the)17 b(phase)f(of)f(the)i(mo)q(on)e(m)o(ultiplied)f(b)o(y)i
+(the)h(n)o(um)o(b)q(er)534 930 y(of)10 b(angels)h(that)g(can)g(dance)h
+(on)f(the)h(head)f(of)f(a)h(pin)f(while)534 980 y(the)18
+b(ric)o(h)f(man)f(threads)i(the)g(needle)g(divided)e(b)o(y)h
+Fe(\031)h Fd(or)534 1030 y(some)c(other)g(transcenden)o(tal)i(n)o(um)o
+(b)q(er)-158 2836 y @beginspecial 18 @llx 18 @lly 577
+@urx 814 @ury 2796 @rwi @setspecial
+%%BeginDocument: mtest.ps
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.98dev Copyright 2010 Radical Eye Software
+%%Title: ../../../texk/dvipsk/testdata/dvipstst.xdv
+%%CreationDate: Fri May 7 14:06:17 2010
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%DocumentFonts: Times-Roman Times-Italic CMEX10 CMMI10 CMR10 CMSY10
+%%+ CMTT10 Times-BoldItalic
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: ./dvips -D 300
+%+ ../../../texk/dvipsk/testdata/dvipstst.xdv -o dvipstst.ps
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 1998.01.01:1040
+%%BeginProcSet: texc.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: 8r.enc 0 0
+% @@psencodingfile@{
+% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
+% version = "0.6",
+% date = "1 July 1998",
+% filename = "8r.enc",
+% email = "tex-fonts@@tug.org",
+% docstring = "Encoding for TrueType or Type 1 fonts
+% to be used with TeX."
+% @}
+%
+% Idea is to have all the characters normally included in Type 1 fonts
+% available for typesetting. This is effectively the characters in Adobe
+% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
+%
+% Character code assignments were made as follows:
+%
+% (1) the Windows ANSI characters are almost all in their Windows ANSI
+% positions, because some Windows users cannot easily reencode the
+% fonts, and it makes no difference on other systems. The only Windows
+% ANSI characters not available are those that make no sense for
+% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
+% (173). quotesingle and grave are moved just because it's such an
+% irritation not having them in TeX positions.
+%
+% (2) Remaining characters are assigned arbitrarily to the lower part
+% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
+%
+% (3) Y&Y Lucida Bright includes some extra text characters; in the
+% hopes that other PostScript fonts, perhaps created for public
+% consumption, will include them, they are included starting at 0x12.
+%
+% (4) Remaining positions left undefined are for use in (hopefully)
+% upward-compatible revisions, if someday more characters are generally
+% available.
+%
+% (5) hyphen appears twice for compatibility with both
+% ASCII and Windows.
+%
+/TeXBase1Encoding [
+% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
+ /.notdef /dotaccent /fi /fl
+ /fraction /hungarumlaut /Lslash /lslash
+ /ogonek /ring /.notdef
+ /breve /minus /.notdef
+% These are the only two remaining unencoded characters, so may as
+% well include them.
+ /Zcaron /zcaron
+% 0x10
+ /caron /dotlessi
+% (unusual TeX characters available in, e.g., Lucida Bright)
+ /dotlessj /ff /ffi /ffl
+ /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef
+ % very contentious; it's so painful not having quoteleft and quoteright
+ % at 96 and 145 that we move the things normally found there to here.
+ /grave /quotesingle
+% 0x20 (ASCII begins)
+ /space /exclam /quotedbl /numbersign
+ /dollar /percent /ampersand /quoteright
+ /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+% 0x30
+ /zero /one /two /three /four /five /six /seven
+ /eight /nine /colon /semicolon /less /equal /greater /question
+% 0x40
+ /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
+% 0x50
+ /P /Q /R /S /T /U /V /W
+ /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+% 0x60
+ /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
+% 0x70
+ /p /q /r /s /t /u /v /w
+ /x /y /z /braceleft /bar /braceright /asciitilde
+ /.notdef % rubout; ASCII ends
+% 0x80
+ /.notdef /.notdef /quotesinglbase /florin
+ /quotedblbase /ellipsis /dagger /daggerdbl
+ /circumflex /perthousand /Scaron /guilsinglleft
+ /OE /.notdef /.notdef /.notdef
+% 0x90
+ /.notdef /.notdef /.notdef /quotedblleft
+ /quotedblright /bullet /endash /emdash
+ /tilde /trademark /scaron /guilsinglright
+ /oe /.notdef /.notdef /Ydieresis
+% 0xA0
+ /.notdef % nobreakspace
+ /exclamdown /cent /sterling
+ /currency /yen /brokenbar /section
+ /dieresis /copyright /ordfeminine /guillemotleft
+ /logicalnot
+ /hyphen % Y&Y (also at 45); Windows' softhyphen
+ /registered
+ /macron
+% 0xD0
+ /degree /plusminus /twosuperior /threesuperior
+ /acute /mu /paragraph /periodcentered
+ /cedilla /onesuperior /ordmasculine /guillemotright
+ /onequarter /onehalf /threequarters /questiondown
+% 0xC0
+ /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis
+ /Igrave /Iacute /Icircumflex /Idieresis
+% 0xD0
+ /Eth /Ntilde /Ograve /Oacute
+ /Ocircumflex /Otilde /Odieresis /multiply
+ /Oslash /Ugrave /Uacute /Ucircumflex
+ /Udieresis /Yacute /Thorn /germandbls
+% 0xE0
+ /agrave /aacute /acircumflex /atilde
+ /adieresis /aring /ae /ccedilla
+ /egrave /eacute /ecircumflex /edieresis
+ /igrave /iacute /icircumflex /idieresis
+% 0xF0
+ /eth /ntilde /ograve /oacute
+ /ocircumflex /otilde /odieresis /divide
+ /oslash /ugrave /uacute /ucircumflex
+ /udieresis /yacute /thorn /ydieresis
+] def
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginProcSet: special.pro 0 0
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
+@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
+newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
+closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
+/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
+currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
+N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
+neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
+rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
+scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
+lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
+ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
+/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
+pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
+restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
+/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
+setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
+moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
+matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
+savematrix setmatrix}N end
+
+%%EndProcSet
+TeXDict begin @defspecial
+
+ userdict begin /bop-hook{gsave 200 30 translate 65 rotate /Times-Roman
+findfont 260 scalefont setfont 0 0 moveto 0.8 setgray (DVIPS) show
+grestore}def end
+
+@fedspecial end
+%%BeginFont: CMTT10
+%!PS-AdobeFont-1.1: CMTT10 1.00B
+%%CreationDate: 1992 Apr 26 10:42:42
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTT10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+end readonly def
+/FontName /CMTT10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 92 /backslash put
+dup 97 /a put
+dup 101 /e put
+dup 102 /f put
+dup 108 /l put
+dup 111 /o put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
+38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
+D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
+EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
+A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
+F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
+4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
+6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
+A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
+E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
+1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
+452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
+8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
+5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
+DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
+BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
+741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
+E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
+E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
+D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
+C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DC
+FF798F2ABFC4F3539392985C4CB324B0007229586D1E0321559F67C057FD7902
+194490A4C133DA790FF3BF23A13C2B1B69EEB75950F9106F2BA1E3CA65C90FF5
+931DADF03DA48AFB8561FC2E710087251BFC42B80B297A3DB0DA138A7622A931
+DA293B0C740987ACE9F2A8EC2DB98F85783C01623FD3612C7E4A84FD93446770
+C3DD7431F955A5F3734F6931BD790F0A45B8D17CB74BDAA4BFF6DAB5380CBF61
+72F37CB67A909E2842E0AC5D9D07D01A4BABBDE2AC70FE5753460D7E1A708B7D
+0EFB2B5FF55F9E4571C466AF1F91E545585845B09D855C3A01F713C1BF081EB2
+7E2A0E598708737D475BEDAF60BC100FD0A0628C6001A203348CF6A3AFEE6DEA
+A2EB57E35599FAD0B8A52BE1B77757E92EA2F51BF07A285E26A452F417D2751B
+3D54B875B02A026097A3A165328322752746417C65AB1B4F59F97F2A13C267EF
+F9D7CFD1A202580A25AC5E687976650821E6960CA91E6BD946213FEC6119B72E
+7A1E745CB4426C0B58421A76F7F4C0C7733A6FEA4BB288C0DD7AEC8D6A3452F2
+21D0151ADB4DC2C46E2ED92D563CD5E4578112195B3850FAAB179C83E9E6183E
+CA0F2784611B128DDFD3B8061FEAB76A8540964848F46093F44A2C3E1C69ABED
+00F6FCFBBD94A05F164820C0DDDDF3EFAB051A5D28691216A819EE9447D744DC
+CAF7CB4058BC595C664580FF97584BBE6CF595DE4DC41FE94A3E453767B683E8
+739F5115F0754FEEFD47443B48CC50CCEC35D30F9F7707A202BF3FD3B15068CA
+AC946FCA5A6A65D6E641CD24E3386ABB55DAA03413291775B8A35065128C31B3
+1E402A25B92AF23A2E45CD5227DC8E75DD1981D2DE20BFE8443EA9F932837043
+F13B09D5F9CA23860DD59A552CAD11FAFEED97CE9D99FD6DFF88F23DB24CD33F
+DA99E52E45C2D8B290B667E643F7BE5ED111C84009FEEBB1443FBE53CF8A5152
+3B7CFD9D90EBF447CE616DCE81893E0119192C79E64AF719DF01C32007B56B00
+D93FBD986700B02FA75FB2C87C170C3F2672C1B257F87771F8E8F704F948A2BF
+98226B630B9B5701449F22B479DBB74C0A393CC539E6242A51878C6FF5E19A11
+E9D6CA044B56F6CA8C52A0F05D75C47B04352DB2CE5FEF6A747C9D527849835D
+4C40007CF5AF6A6312FD152294838CF871B2EF62D049B9D88094F7F2AFB1558B
+278A955718607D6154B1FF998B699A14D9AF2954E75A07F8FB5FAE7861ED3997
+442BA78FBFF9731826B9D3EB0F6AF739862FAD6FFCE419E7B3C8CD278FD14981
+6686B788E74B063EA849732CA901F3826B116087AB46AF4F55A9C64BAA1A0233
+EE37A4FC4EAB32778DC855E1AB74E9D830D18B77BA25DA4F72C92F189AA4D79F
+72322AC38B52BEE53AD1E9AE27C50E7F635290BD73A52620D7B8AC17D3221C6E
+55FEB7AFA436BC59373939C196BE6C46E7EB8447F5D59673EB5DDF23A0399A83
+3065F2D59CB0A184ECE339407F248EFF8B85D60106BF986FB14943462D605955
+4E36E6D2A0AD906ABCE421EE2793DE72E0A8BFE060C82E3EA46EFA72DD96D94F
+26FDAA164C481D2F3D895D223C9BDF78DDF5E3E31BE886AB8DF56E6D32E839EA
+8D45D8EA74D58BFE4637C591B954E763466422C8AAA4ED233DACF4570F680624
+9FB3431A2CC3E3C8EEA2EC638E52280BCFF391D904B1D975F9CFF5FB4A6F40B5
+B4CA74BEA299CD2422661D8BEC1F6E5BC793364620029B240BCDE2736634586C
+F488D24FD23065835392350F49653E4A54BD3733A1B740CD73FEAF6F465D3261
+4E012C4A800B6C10C9DD6A5C387A3590B4FC83DF3D8F40F09772009D7B984CA6
+8BDD6A82D7D3FF1066A3F682DCED7AF3FE02F7D3F2A44946423FA595A273F489
+A4364543C9F98E4C6F4FED2B9B225C466ACE04E82383B656A0FF43EA736436CC
+3A50C42105313D1EFAF28FF1C13BDC8A8301ED99809686E53E90A3ED5178D63B
+C204FF6A3D40F84229081715563AAB5AAD8E4356BC45F4B88B9DE0581E7A3846
+A8EAC6D8A8DC6D67E1BA8956E1E1EE45019BC0A6E50DD4FE6BC3E61D78477EA5
+CCFA401C134486C36B93021C109CC145739FD3D78FF30776A54C6A902AF782AD
+B37ACEE163BCBBAA0CD6081AE6A71200EC9225FD4ED17399869B84E2AE6B2620
+A0D998FCA2DEDA4A5F063468E39A7DB4B631A8A4AF9B7EB5C639FEC13A5D9F96
+E360AD4F668BD019C1303D0881D70B5BDC1BA47C9BD79E415CC53889BA5D2841
+DEEE0F20FDD842995E13C3F247C327B51F6874EB2709B23C2CA4B01FEBC2C420
+66CF75BC4C023F15602A180C6181CF18414000C5E3C050E2EB618793A4EDF896
+3D53DE1BC81EE1677DED14C464520139EF21FEA3368297A88E6EF48E1919E485
+35EDCF222334FFDC174BA9EA94A3D1EB83782AC1CDE4239BDBCA371A27F0BCEC
+EE3F9633D075DCEE8FD162A70CFD0F56AB10ABF063F372D7223C2CBD355D7FFD
+350320F9483803D47CE51893AC165CC8CADD662C99697505CEA88526E36B7A37
+80685060C9346C0675C2997710E714417C78A8CCEF717ED78252EAD23A6B640D
+7F4607125F77CD07EE38A912F5CF8E91F62E023B3FE31511495A73AF03779108
+8C8C9B20A0C5312BBCC54AC48844D667976FDE7087474F490505D18E52AF5B58
+65D4B4FD5DF824882AFC69A9EA2E3F992223F25A53E29599BAD25F95F020F477
+77C8FB079A10836ED22B4D82A71087C0C50D1A6DFC4AD4DC5FADF6F5F757FFD2
+5D91C1FF7A4CB16FC9FDEF3CCC4861049F4CD3927287729DE465C5265F24BF80
+3ADA07327839C8337C3B95239F2AD99DD867FA336D2669F269BCA4BAE23E2F07
+43C5B8C39054
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMSY10
+%!PS-AdobeFont-1.1: CMSY10 1.0
+%%CreationDate: 1991 Aug 15 07:20:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSY10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSY10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /minus put
+dup 33 /arrowright put
+dup 41 /arrowdblright put
+readonly def
+/FontBBox{-29 -960 1116 775}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
+7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
+A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
+E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
+221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
+27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
+5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
+0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
+DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
+71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
+4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
+515DB70A8D4F6146FE068DC1E5DE8BC570317AAEA74A842CFD26F9591866F5A0
+9B4EAD7395F5196B36997F1D59E88165C94739E74C2B40820F8C972B175ED79D
+87C9E323C3CDD5C2BEE6409017767534E19F45AFCE2C6687733451AD2E75D112
+42040BADFF90F5FCF0677E04D0E99358A8268147FB0BC093C9E6B3A686D273FF
+8CAB1B38C943D6756EFF83760A0822AB4C2B5BE81D64C1AC67B3E8E667D6F1FF
+8533A43741F7EEBA4F86D9C805D5B0D59E7CBC1E6BCD384DE24DB7D67EFEE2F6
+00A1A7A4A134EA64D9D1484459CBD70C13FC27BD779BB5B95E9C0307F9DDFFDB
+5EAFB43AC29488B09B607AB4C84373326CDE445A132DD4663AFF2DE925CE5AD3
+1127927EF2D74A47A2D4A77E95415677E6E2CB6EC819F07ABF3B4E9C2C5E047E
+BE3BE01B785307EBE6F05D8D9BCFFDDA175631DBA328F49BFD39D00DB8618522
+85F3076E388D451280D1F3C714BCCDB231A1CED5BBABCA193FE0677BA667A0D9
+59DF3025C5095F6F1A9D9C61F940218D59F8D772A0F1A4333B4E63422F58C19C
+AD564EC3212C9A1A13CE2394DB0944CB1FCB1AD9D595832967918B0D639D5077
+E778C16FDB0ACF3E24FC76799A57B8357EEEE1DD10C16FF5F38C974997053B6A
+57F77E9203C9F088ADA045F98E0016A00120AE91CD0B7C0BF058EBD19B1C2BB8
+DA8278D76910BD5400457BB555E930EAD253EF34C9D961ADE76CA22F9ED0E916
+BF00EC80FF636FD2A51E5D5889BAE77295D3D78431725DBF4CEC743A00
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMR10
+%!PS-AdobeFont-1.1: CMR10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:52
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 12 /fi put
+dup 13 /fl put
+dup 15 /ffl put
+dup 16 /dotlessi put
+dup 19 /acute put
+dup 25 /germandbls put
+dup 26 /ae put
+dup 27 /oe put
+dup 29 /AE put
+dup 30 /OE put
+dup 34 /quotedblright put
+dup 39 /quoteright put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 49 /one put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 56 /eight put
+dup 59 /semicolon put
+dup 61 /equal put
+dup 65 /A put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 73 /I put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 88 /X put
+dup 89 /Y put
+dup 92 /quotedblleft put
+dup 94 /circumflex put
+dup 96 /quoteleft put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 124 /emdash put
+dup 127 /dieresis put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
+92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
+295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
+409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
+4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
+2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
+0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
+B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
+24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
+43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
+D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
+5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
+96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
+0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
+B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
+AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
+97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
+FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5
+20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4
+0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F90A32C4175B6BFB279
+024EAE1B04D721A6C54FD623E38A7F3F8BCF859C78E546BBA7FCC19854611A6D
+807792A9BB489C26149D05FAD3B703CCF8812EE946670180F7711831F3260EAC
+848FC9328D91FCBBF00DEE2C307796541CCB663ED2825617AF8D2380278FB9B8
+E12D20F039463A8BD2900681702C48B26957CC339B20A07AE87DFAA9E9A35C9E
+793A1B9400027E5D5F3921B971F6B6E7B41DE05722D7C98D7AF71AD4F9A2270C
+93F54869098BFB46FC48D365AFA882CD3DAB79E62BA5C3D0DCB573C959BD809A
+5D50B74A264E3BE5594E45ADE87DC8D7AD29DC25C14065D013427D282B07510C
+3A6A9597B5C69D8943C8936798FCAF1AB4CFD1799A16772F79611D38C429C5D2
+4FDD48BCAF025912ABFE4FC77845137F1A68A429E09A9B7AFDC554CC6B2F7DAB
+D244ECAE9137087CC14ADDFB5E222BD75CD440AC80988AF042E78338BBC54369
+1590E5E0F8B101D4DD8E99CEB625B35E67E359C111A621FE322F246F898AEA1A
+7E66E26A45DB7AF659D2C0BB3C58AE5527E4C5A0CB74BF1B5AEECFF673807918
+70D73E5CC43F457F912EAC1FD98EDDDFE90A8454551BF9047BB71EE344228516
+4996CD000671173E48D4A90A7DB5437D587EDF76DD6E9C7B5D8E16EB4F5B81DD
+222C6BF19D8EF0CFA6C89F08E56C9637125725BF8CAC5473F8755B70B3376251
+E80A93FEA61864BCFA907DA7513A5D5AB90477DEF35CDBE85C92A7B0ABE4D5CF
+76156F109C74B0D17FACA01BBEED50FACCCC757F2E899110A5E83A248EA17D5E
+D2E938A41D2D0BEC8F58532BF23D7ADB430557D9A576A2D64099981124E128C9
+BF55A787AD12D2ACC5CECEC26D94A05AE74D7ACE96E533B3A197F2F5E3F16FDE
+A469F813742495C32ACAFA6E0E81CFE82C47B4EC6D48F3C60181B793757CD287
+1CD89B161E015DD3FD766354E4C88D710F09FAE64D0DB16BB038FAB72D384B06
+3CBC46BAAB56BF4FAC1867B6EA2F20009E1EDBB43F59E3EA3818FE430035FBDC
+38EC851FA6C8A4012904C10444712B9A7564AAE4250DD63FDE67B194E0C85D0B
+B4B3D8D1BAB71109C9F4DF5849BC24A7E6E6A9EDCFF44B575EC0664DD4E38CE7
+E9E4B041289EC759CE8FB489B5847AEFB05D758CA82184C4763E9AF7DBA244DF
+2663935BC91CA74850F02B962930D3D0C3AABCE7BF840A7A035F2CC57E1F80C7
+3C373AEDC7E9E8EBB300140059C2DB3F71D60BA3576745F6D17B9F0E06E5FDEF
+ABC0A23ED95449D6862B5FDA971B6C484DF4DA28A8D051F2FA12C4C14E2F22C6
+AD8DFF966E4EEBA04BDA48A31C08D9C4E318AAA88EB4DAEC6273612F13108DE3
+31F3A1A6B2F426D79D19EA9EFDD47810A0FD1D2C64F071A7CE510B233B754E05
+C61AA3F24441DA88AA9E83A2DE0FA580D25EB51433BFDABCC711820896D5E85E
+DBD8227DBC490C394AA1682E7625B3888BFE9356AD421C6218C453AEC42B1FF6
+B8F42D9022DB94C3D5EE98B5990C09C1EF5398E252907045E9984AD71187BE78
+6C12C1A5ACE30573556D2B2AE6F34E9D792089409A0ECF4003FE516DF68D997A
+6589CFED34EE928D42FA3433D1DDC5DFFEFFF8024A22BA3291DEFD9E886D077E
+93AD547927BD8F581C95550B4076FE3C71C4D5C12E5303BCFB8E2C5C9537EE32
+AE4C578EF0D1F20A7F24697ABB62E6BDCDB3AD86B487891DFCE40390BFFE3A18
+A6BE497D04D1CA70CB2C284B4652D0D2C0327381490713C2A92C777ECA9C0278
+FE2637E7DA2A0443951BDA667EC63AA2F8C0E29D962210BC6F4F73AF1F2D57C6
+25C1BC5D192D587566DAD00055973DAEE23D136EF5BFBABAE91524EC3FCC5B67
+B76C5F6FFF17778EE8427FC185B0C1197FA7EB0398011E29627D928B15AE6109
+94FA3BAD74DF9996F13272E6120B33DF9F7D2B4C0633C0A27B298CC3DD48C49D
+3B55789656BCDCF6A9AFC53043F9401C7F4D3193570C241E8D9648F135A50CEC
+D30CEA6582B6CEF83816CDFB3D829ADD74A0B1460D253496EFC48DDC15D4090D
+20E4EE0009A10080079305824B2E24FD22CB805EE76FC05A6F202765999E516B
+14602BC640FEBAA52E1C3AB0CAF26022627BB169E631836F7655DF2C6BDD13D4
+876181D083106B25983E50E5DC14C9B44B3057BBEEACB110DD59B8C38C7A01D9
+3F5852CADD6F080DC7A6F537A9D2FF8B0EF0E59B9D8286AFE3F930DBA48E9587
+C69677B876CA70DAF758AF11870358CBC4244FF4562E85BA5C6748A29517A1DA
+FD4BD9EB6A3C63FBE4781B880D636442A3C4AC2BE7409BAF0C3EEE78B77BBAA1
+E91E7962A0A24DF886DC5513E897E662AC71615A18B70C51DC861C5CCE4F7360
+1F0C1DCFFF2D069498EFC3CF185687DD08620740FFE69F0A8055C8EFDA09639B
+3DB4369CE16CF1ACEE4AF24D5AA8FAF9C9047D281C6004F24074E4E08EF57B49
+C1CA84C9C1870358DFFFC16496797B53C5001E3B466A409FB8A9E0A758FD49C7
+8B370C3535AC824C6EEE70B8439FF282E80C577BAA215FC7892991438D9EBF61
+BBB158EF232E076CEAB9C1A9217E0036AF3C1E17760EB482902565575B623F3C
+2660008E5E4F9D8E72A3B3642509A0DD6C45C91C42BA9CDDDD6DD2DEFF2D1642
+E5AAFB0DFC641665C0F855AB7E396F1FAE5EADB5728F103E0DA5179171C9E893
+50E855F58CDEF065C4590FE34B6BDABEFC9B6BDCA75F91D606A277A26DF16BE8
+C3A17D349CCB6EBD641FCBD38AF15238157FE27E17AA09FDDCEAE25623C76E68
+10987FD7327B31B05420629DA63CA8E304B7081D2FD2391064C313E2AC8AB700
+2110995C3AEA7B5B17175AE54ED73CAD02E6646A7320B84456AFE81F83F8868A
+08AA05C993D0EA7867B3968F44B7529A4A261E6EF39055453367DB9ED74396DB
+54CD02A8365D8DEA611AAB9BCC24AD6993D41EE5FE94ACDD3933CC4685F47DFE
+9015F3D758DDD6F64B28B6CD39F6DB36BAEF76A3B4A26020FB328C5B435E56F7
+8F52EBB7F17B994808F529859E85112EA13A84948505C055D221E779F53E2F75
+DCEBECF78D5CCCB896DB67548CC48E0D49FF5F6A4F658CECB9FF9AF634DED9A4
+F94E7646F19DAE3CA2DA649DDDAF8F7849D5125A0731677FAFFDB3C3B05FD8D1
+A2E084A2285785A19216F145B801E2675226B8E403FAE381B7BB0BB2611AD624
+FB9DD3D976E8B6AD6E2FE3C78CFB912ED2C2B393E0CC9846ECA42C58B3FF8B54
+F6B35A4B961821785FDD9F4E0449CF7FD1141BC59E99CBB32B53D0CD4837AB25
+CDC744FD25D37D0A5843E20B2F332F8EC158B0C13E0E31053B9DF109E7CEEE60
+61FE7911DAAE7C591BA4B437458173A0882A84DCFFAFFED0EAE54F0ED33F5302
+856B7A73A3A3A1F341B3A5E56EB5F6832EBAC6C4AA37F9D42DB903737A61EC28
+53C1BEFD0E5F0B81F5FE099D2B2C7F61FC81CD15FB1A58DBA441AE91F3FD6973
+BA37F8261DEED05164AF333D17A8B5D5E418F7DA619F55D464C284E50B471ABF
+B5E5EA42FFBC948B30F589EE9456607F1FAAF4BA46E378ED0C025DD67339D56B
+32CC499FF7E2D227F570E808EA925FFF98422452BCFBAAF488C405C90CFDBDFA
+368C10567290703FEFCDB8EE4B3DBEF9B0B079F60D004858F73FD160496DF329
+8F4AD50388DA010CFD9B2719E55AC7232465A323F846E0E6E4DF8B372DD98A81
+07FB2463F1DE900D0F7BA873C479D106BF77A04E5E26EF8814BC8C34973E35CF
+77A22B4364B24C87E2EFA0065E860F16C8059D2EC3B3686D85DF2363447D4E31
+A087B1BA7207145227F5EA8523F91977E1A8BF1965F4E12023B30CFEB94024CB
+5E90858D28C8ACE22BD451589EB67BE632FAEC8DD7B2703D1D5E51D7A309B72E
+6358E7E0A5DF7D668A6177BC96CF1C2E7F0E179E323B55BF75EBA26D65CA7131
+73E8E7F74742EA82CDC82E3CAF14DDB2F940B5AFCDA3422BC1B7C8634119A463
+0E1F743A2A903F815530B7930D5826FBDFE13ACAE2F0D665E3CC2BA0CB8DE1AE
+39CB2C0A0632474C22454EC0EA602D67E36FDC5EB0A16743D76D9FA17572F752
+47365600A28CA1078D8E62B311FD56C87462A67FE09729314086E56B1F17F84D
+A5A27DE5E12AF504757B2172B2CCA2197E405440FF30B2F327842B1328C55206
+707BC71517BF00BE4FA366C73212506CE912C9654965BF682B5A5189EDA4A855
+31D501693AD24D313FADC4442955C2DBACCA0626B59DFC0137BDAD696D81A2E3
+20D2A123B881E19202292DAC29E53FFAB3A49E4680901605F1AB2D06F1420F26
+F07DA957DFCFBCF6211E6A5B14FCA025FB3A3D0278FA7F3397916A1B3B30BE92
+7E21AD33B692E3CBFC509308E10C92BD188E00974411B422B3B5F09E0DB6248D
+B5EBE423FFC29C730FBEA103B64D975D1847FA93E0B77110C9059C765A4A7692
+5AE0EE29CFD3186EFA81CD6626DD1E68E8A4B5941DC3F9FB3CA9D1597AD8E82C
+13AB953F4E8FBA0EAC41C4F4935950E2346265C55A228487FF0865183C15D7CE
+5C65729C12FDE3895682C992E7ADF372E4BF89B40D479BD92DDC78E600E452B3
+903F0E4B516392BDC58CF3DABE2849BE0E2C1441C19B778881F40D4A5BFAC13D
+F1B8FEC7B5177AD4A38A959EE03B19D885938D86C8C770239310969195541C12
+1CCB45E4A90F2AB992F46EC1EAD1C53DA02D844FAC2F0E5AAFC830F5BAAC52C6
+D37AB6F889ED1D4082622B1BC00E38C84CA7479C06FE7B2F636F344A4FC32FD7
+3097709D8201DE977522A58D8D7422A95F1A8A110EF3E342DB2CD1B0A477C124
+1D0ACD51F855AB737CEC022475D28119DC7A860975D446D9A68D40A9F2F456E3
+D39FA95586F082B4EBEB54DD6B2277A86854014B9D68742CB63CA3325F1B7A0E
+54478187485416C944DADC21D6E3E5D6AA1C4F942D7BA4893103638F64CF638B
+391CBB09FF5A392CB649FE8E33599AFF104F32021A261E43999F78B26146051F
+5E09BBF2289B217A24A4C92AFEA9E2C53350866729AEB4D02D95AFA2386071F1
+3E722F378E86CA2835A09F98AC6935F9915250AEEE45CC8DF477AC78D596761E
+E19EFE87A0FDB2201AF839BF9ED7BFAC9B0B425012B10C94D19FED3241D1C9B7
+1190420792613F91BA4EE4840563ABBC5A6721C8EEDC5617D139864D17DC77C6
+98AFCBFE1CF6DC1AAE3C0FD13F5367BFAF80E587B601C9271CC94A776E6B2941
+D0ADEA4D3039B67E6AD195391D4505EA64DC0238B010286F7DAF07403F0AC5E8
+80DB9F3B8AB2C1425882B7AB1FF9754DB86C5BB1FE11AF7D0A054A832B3142AA
+B446FD79D2554EFE1F5B2D5726B592FB29E8354DCD15265F33ADD1200F30E023
+C09C6A3546BA0A766D11832E2E99634B5E763C3CFF2619776B6B656748B0ABDA
+603BC0F594944AFBDE9045D1F3949C9EDC43EED5C0A831D6AE50D7C60A5B190D
+A1B8463434860CBC9F9AADEEFB247DDF8408D61842F25AEE46159E2C96421352
+A35A0D395502ABC53522EE75116CA9EA81AC955AE784FE4D8709A5316880B9CA
+6FC3A7A93F6E9AE3C1C2BE8831610DC791CFC720D1ADB2668B6C79D5B488218E
+932570E0E0DB7412C7BDF4C98DE98F9227552C82467978420C07D7764EE81E02
+B5110C10104BC2AA16F00FD3C9EC2E1527617B568C60A9A95515C28AA9ABAF43
+DFFE76DFD6C03E5BEA99AC66DF32C4362034AF96AF0C39AF3A9072CE64CE154D
+4D63A43CAAC4621FFB99DE350365F646C9AC2A248064ED37C20C3F9A4692FFB1
+2E0D2E8D419B255588D458620E7BD7BFDF4AD2B5F898DA34A360E799452CCF0B
+1361ADE7875F75981B03D1F64C0C66F60E1911F36EE3EC9608F10DF0A86DB268
+10DA174E36E94289CE7FE7C7C237013AEA60F9CC3075F5A1DB9133989245305C
+640A288DA355D081D6E03F3C6D20B46B16E52E0605919CE374283EF201B1DF04
+D05C797AEA6AD9A10CE067846C0242A000E1C38BC2024DE1F5D72D13622B23C0
+991E08FA9542A4F0A3F80BAF04818DADD81FBCFF9DE5CCEDBBEF069E7B2F4878
+3CB225DD2DBD8CFF8BE996055E838E81101083441895A257D52FA21A2D1E2B83
+45A9AB908549ACE1F307ACD8DA75C78B852C3AB324A51C1B846C00C3EA8063D9
+B2968ACBCB8C779D8A880AA814E1D7F4D9177F32D5EDDE9A5DFE5709B211F602
+D3ECE773D7421B33D1224D9A1FE334FE1EBAB361FAFC915156925FF9A26872EB
+B27E09813EAF27A603478962BD4E841A5E3D87E7E3AF932D372D57E16EB1062C
+CE6915D6FA23FA2757F45E0E6DE9226AAA4B53AA9A92694FD43C14D416CEBFCC
+9647C713437A0E2C70746FA464ECC25C6B446F641CFA9490ED8C23F9C1ACE09D
+FA227C62E963AF8B4DF1CD6075A09347DDE8ADA4D8F3F15F921D6C3D9BA477D1
+B1EFA0D931F3A9C0595072A497BE9E79D2CDEAB35C2C4F91A300670BB1022F5F
+951A477AB5EDF223A4D3F521461357C0C60F5E7614E7D74EB016985F0366E288
+106E4A92A9DE0B6AD542187EC75034A80C7AB1751B77D55682590FBC354BC62A
+E20BB135CDD4391778956F2EBFCDDB2E013B858F00510D1FDBBD08A68F276359
+1AB4FEFB720F50CFB9EE67A6A424533D5D13A55541B89B8ED1F53E8BEF62CAA8
+888CBF259D47752EBB996BA1970589C5613DE25918FBCD6541C6CC504362FDCB
+00A94B9B56C4895674B87B5505DCAEF94440EF57C2D3FFA97138A308DC243BBA
+147053AB12209BB8C42E3AFD8168EF544CCF08C74C1C67B99C81AD98F51421E7
+F9B48FD368BC3440A42685AE339C0844D1614B02EAB00D918137D8D59A8E49F5
+8EC039DDC57A21EAADFDE3D33F10C58A10C340CAA5B862419D5E49F2854C241C
+4D0F0AFD85B321F7F95A8D2F0248286C0E0E2071DAE91E616D7DBCCD2D1E57F6
+2D2FB872231877E23D82C300677DF4EC977F9C78D5D5028F084151D6B05023CC
+B0FF5668D35871320BCCAD41FDBF370EDAE33A651EF0ACFFFDCE8FFFA10EF128
+4D230F296AB2B21766CF00992EEBAF6E55B30799C4A3B18390EA388CF3C18428
+BB2A1A341FE47D3C631F7930DC09BEAE38C54277F8FDD4392B2F5C3C7774D434
+B97EF89A1CE35A9B30CF483154703DBFE3DED4E86086698B6E41361AB6996C57
+9850A37621F73AD3964E7E69D7F51F4688061C97167E378BA340C739441F37E7
+3FBA9AEEC2817C2A96C787B88D838E4E1E172ABDF2AD67FA4F05549F57BD7928
+8E6E883BBF34639AFAA9CE2E5F7C4E1420AF65A14C0707B40944C968ACBE8451
+07C0564C57C0F6BB632E0B89AAAF0A9F0B96E9E2B1AB5B21196CC9ABF8866451
+860FFB3F451777E628C464E01699FA883039CABAA343477E1B2F262E7D896C8C
+EF10C66BE57C5F37E24489C7125F43CEB97EEA2E0A667E712A25D1E607DAACA5
+BA7B1851BED7B5EEC4E0CA2733197B43E952C124100923361A7F9E033050F895
+16C259DCF64AC82A13925108FC8C298187CD690EE435DA33F8AE947558205223
+FFFF05AA6B946886DD11E47D3A2C63C37957E885C336888203F00CFC151F66C4
+EB48825E84596D6192D51F7302D6B8AC176E6792C6EFC0E7377AB3F261392665
+8D62FC4D2B2E3E7C98C34D095418D317BACF8633C86E65CB21F0334476DB7278
+DB74CC13696978683A07DFFF7307492BFF2762B80D720AF9E7C85FAE38946F4D
+C94A8C9CDA123B7C4CC9A3106CE55841B0E3935288196C0C7CCA03B8948753C8
+206265FC45CA79D21CCE24ADE4C2FBE74B1A94C488819766D03538A4150459DE
+3ABD0AA491EEE319E4A797A5E4D7B2F1DC42F67534E5187C418B482E08D502D9
+38174EC2A39ACDCB903031B2A1B4E4135B79208FAE581BFB6FA9CB5A81518A18
+665DE696E3061D82DF55F4B9A852ABE70C13771C928F6F3ED4C2BF6A6A5A92B6
+187E630DD03EF046138F541A564B168D960BA243CB0944215F0F786CDBCAC6D2
+59FE1DC30CC445301745492C395A8070B5213556A50D05FC3CB9C71BBC51F0C2
+7A6054570462B40A7983FFAA48E838924AA1722ABC558F1BC5BCEBACC53CCDB8
+0956E4FA3932C433120EACC66D2B1EE15C49FE4C6E3A66918EAE8C907B2BCD17
+2702B4D8B5D8EEEB00573CF628D93BE0B49CE97302FCF282B3DE2357D5479DCA
+B18BDB744AA9FFE6D445E31ED1B57CA3DB4E11864828DEA37B54833084278E88
+A497BAE8A7929799415B2C13D2F5EABBC25310676A20745D0EABFBA2E5B96FEC
+9F3ECD61A0617AB04A5329185EBA16BDFBD4BD5C2628FB8932EF45BD42B7874D
+DBB10B113F07963DFCBE4D738B9E8F9DB94C8DD8DB45DC00FD5F3B72918A956A
+2FE0861FAFD4706AEAC53031E69CD8A1544675066E33447DB48756C39C150B55
+9D21D7B1B7CBA504B46F8366AC6673F2783930A45CD869A8580597ABF129E411
+F72BEEB5364DF72BF3AB107165375164231E2CEF5A4A5DA6FDFC54BE3B144C9A
+48EFAA9E9D36894641DF13F5E0018E018B6F43CA21F1504AABFEEB73A540C288
+9BE94801A2094C44FF677AF42100D0266BB635B14F2EA8766EA774F3AAA9275F
+B7821AD29F503A84F8314F5EED4C6E1EEA9BCF010EB77427EB811E8B303084DE
+FB060BA5BE9544B12E8B302259EEB8A6ADC4611B6376A8B2A6DAC912E7342B1E
+A7C45EF55DAD1F350BA5347E7838BD7C806D84FD6053614D1792E5357813F1B9
+4E10EA06B0B4BCA33E25566B9356C01C29BAEE70B15225A777B2FC3F172267E1
+FD961A682A90FA194C1CD0FA821DAFFFABAE989605640FAFCD933C209C1F5515
+4B203F37AAA8F3239502BCC107FE0A0F046B7F8C92349CD90F96C8B903A339E8
+A63BC86D9B3A90105E62A8609F455A6FEF32CC2B6B369A31B7EC6D4819884604
+C654B6D9A455F372F132024F5F9CC92CF343BDFAD3F9A962671D00DA22E3E851
+9D9E6F9E5997371A194F712A2AB8EF90DCE1EB7332411F8AA18993C97CA94561
+10DD5B3E303A981D1394917CA9CEA0BEEE71B58349AFC2D310DF3324816AF6DB
+8C726098E308195B06C21F726B04A79942FFA79B1776BA2D42F39D2BFDA3B66B
+C81A3C00B5D21AAD640BF79F8B62D5B94FF2B4E574566BB7FD2F043FE78F00D7
+A664897F6022F3AD1DF5FE76F6FE4B60D53563DF6F019B8475E28C73208EE5EF
+BBCD53A41F5569C26EF64BCD3740466051C05C322E1B34D7DCCFFBBC9D63333D
+47B5928A4B1ED21E59D6A2F1E51D422818870B31FE0809DF823CB6BEB9183B81
+64EEFAB67B0B8046113DF8BF09BFCA5926253774C720BE6B4AA65AEDCD02176B
+90C17C24AE11132C2B091C5DA0B456DCC20BD605592A5528CE13714AFABA91C0
+49BC61EF5CC5A1F532E117AE64B95F8F8AACDD3E682A15218F56695F237E564E
+A5B0A8D70D006638DC676DF1DE25806166EDFCFCBA8C133282E8B29A8DB3AAA8
+4AF176A111641236EB5B355EC1E3506C0D7C394C4147F972107D95FCA5394DDF
+3A044DD4488C3DA3CDD49B0851A6EAE06FC64EAED599E0D4FB98DC0A2B8A44AC
+DBD8FC3CA91CF74DB878A1A02C25BEB3DC08AEF57FE40CFF1B1E1849184DDF4A
+A5F8926E6A7CC7AAF66EF16442EB1A4DC93A7616F055B2639CAA46369F620C57
+4701E8D1F177BB896A63F92DE149C5E421812B98BBA4465388EE68EC9DF4AF0D
+7CECC0F2824C4AFDB25E2CBC213B9A3B48542D553F94164F8B177FEBAE64E8C0
+9C6084F0C622125BF55CDF2CAC85481D55B0C77BC6EADD5DF7C921BF25B424B7
+F1DABC5AF04E8A6091A1EAB28C18939C0666101A2BC892ECDFD47C2159AB5D9E
+113268C8AB6FF8DCFCDFF27A99CB0E5FC47873861B900A055D6479055E968B42
+1CCF51EE98B7D67DE709781173C8EC7E746AA733F3FD5DF0E4281E7C4804E889
+2EBFB52171776BFBF582002BAFC95BD115DC50FF6544C790D1DF9E0AFCF98CCE
+009C644822D1CDE4AFDFB21B4D923425D334F1EF3A5F37B48F404492CFC73264
+E92326062E1DF70C126915B12CF1A03DBDB0C534BA02F74349174B314C8B914A
+53F1A7AFFD2EEA7170456E230190F07927A4948BAD8272A8C7A4A72C51F770F5
+96387A1337ACF333DB7DCA3048A5ACA50CEF5F03711A4365BAC81464A82A99F3
+E2C91AA72B85FC6F1BE8C532DF88005582023C1B6DA806BF54CE9AEBABCE8CBF
+AFF293725BEFF9C7196043EC6DCFC4CB4ABFDCA4575EBA24BBB65DCDBC55362A
+97477E5F989D32F4ACAF24B26C6B2B907C91803834F3E43A978C7987B6861AE3
+1A3268E438FE4D8D8080116B373937A819099A1780AC94115720DDE3BB6D2595
+3A84538EEEA3FE2980C5E42C7167029E1D7FEAAE25395EB4759199669C80162B
+FF143D809A1B6A9D6F33B2EE6C7196703261BF929E698854883D30791A9AE37B
+01EEB39E1B5B7865D76B3113293D024D4C23B8AECC2CA075689883ED61DA653C
+151F38D20434C95EB2BED3904AE0F9DC61EF6AA45570D0C98304F54DC78E1640
+FD0E06EEB7558806B6B776E84C64B2C2C5C2362DBAE280FCA03C0DD3E2E4956B
+FB0E05AD42C72E572CAB74577C5B99431E2B13AD0CAE128BE7BDC6B13BC16530
+D550D5CF24843466857B5ECAF2980835B2993AA31F60704A541E5FF9A103ABE1
+1C237CD13A86725C39DCA1B4AAA3E8760BFC85B58FDFC5C832057CB466CEFE66
+6F3E925B8E28824901C2BF28D72A156D543A6A3299B125D398851A87E090712E
+106464D951C07E1222B76BB526D30C5CAD1A454739E288AACACF72B0BFFC134A
+B21A8E8DDD304BD485018C5C27AC020050A6F22EED7AECD99A903112EE1CD2DC
+E402B398B6CDFC66CA8B6B15C2E3B0F0BA9A41E3BD167D625C04F26DDB61B4EA
+0A3302B2CDD093DB34BD1E59EBDD7B6E14583B96DFC448299B6C9B3805C1390C
+31B07AE240C7961DFF7B0658CA5C81791538A246CF92DAE9002B0EA5DD54B9DA
+5F7FE621C6A2721ABC0FD6023B8B7BF87E6B135D1DB9F1124CE7CC15DAF53D70
+FA87CA8914156A2660D7A39BC9ABBF3438B25C791F1C66BA4234E9F34AC11C16
+8B3ACB75C21454446FA8358034AC8BF792F0EEB23D33DE1936E61EC2F4544583
+9D39F0B3693495C1A9125F4BB13B85A93EA79990BDD0A68DFE76104901358560
+789FE0F8A32C9340EB4E376658B5226A2D8C7889F6D16EFDC2238901B0BE925B
+14CCEF1241CF5744C1CF2A0FC17976FE1DE61AFC32FEA400218D9217C994D734
+A8D2061BBE9484583076D7C83F3BEDE88BF37DC3CE10E5ABCBD7F23EEA63A72F
+B18423DB01DF007A4AE06F3CA6AAFBC9971DDD6E1BF14994399B702A8253202E
+4EDBB0B872DCA33AAC714F4A828D86A4CB39FCD7C790FC46AB2049FC7D030C4C
+CAAFCDAA08A51B18F64A71F2F9B678C18984C9767444425D6693DB1FE95E6C8E
+7557B9E3C36248B3568D2295D62BB87FA48F0BE9710CA7469B25F67607FEB9C6
+3C78E363A91EE117A4C20152D8F5EA697A72B19BA9688047A1B7FAF148C28AD9
+213C1BFA108B7939A4AD93F8821D76775B311507906E09D777674C022A012529
+762AC3E7A743661E6BC69E077E50A3F922450D93657679B772EEE4E3B3452760
+676AB264FFB0A6D2F6F266ECE0B3CEF615A0756309537E772E3A553D10D646E7
+E33C8520AB299EEE8326264F5AAF1F1C8C5BB53D0101CD3EA395E774FED3BBA3
+ED82D5C602AFC1DE5C01A393AD65CCFA813F1B7BCAC7204794A9E7E3C21C86D2
+485CD7D487E66916AB812213DAF2B48A3C18F1A1400A0470434F3921E059B7A6
+260B0993C5890D65BEAA5359942E235084ECF86CA5ED9FA7A887A6C97A7F3E9D
+15BD35848B69B21E06270F4A6455E8D4625EAD1E198325C3EF6591D0F106C106
+6DC6A8A024DCE90D98EA41D9A314220474DBE673E605BA51338AF4FAE235E912
+32EFE03540A41FB8486ADB8872D29ED6C4ED407633C3C23C3233B1F8A4409F7C
+2BCFB1161A76C75AAECEF42BBC765EBB1D5914A3E2856498B0491771FDF1D2E0
+526723B040B19782633383FFF2A2CD68D6BA6C1EDAA5BD864392BAADB9F4A48C
+0EAB19567BCFED42D17B651A4E25E8995961787C859BFD3BCD0862A6A3B3257D
+5B109CD32198AF949BE2E1C7F27E20AFE55376E59D70FC2C4F5300DE43EB7B7E
+88C574A7C5F9A4FE693C28612E7653E0957B0AE0D7B39C89188A00075ABFC41D
+ECD99E99EAE002A0113F46F36B95C8A3BDC9F66BB71115FA8C1D547C24B6F73C
+90CFDEDEE23D1E22C106A006C331CD7A63A107E38E955478F01978A650271A81
+C284B8EF00FF4B677D9CA4B561DF9ED93A5366565D2B96544E8CD4938EEE534B
+4D2D90ACB82CE5138AC3E6B3A4C4B7E09DB62FECA817D1074E11A15C80F8310E
+68A1117FC99872FE9854B9D7A64E11BA9823BD35612F163F3974DC3DE214AF5F
+B5AF46DB5E0DC32F589A6CE8519961EE512F5622AE2ED5414000C5937B706987
+145593B0FD24DC175B19970CCC0B30A9973F32777BBD749C8C2AEB3593803C95
+6983ABA1639D808D64420A82E9322237F4E1AE756C5D43C7CD25D8598104B0E0
+8E5F9891ADFF60377E074974F151522E90E5331C04558D1578F7D88C3E8630CA
+D60B096EDF29681C76587F5A7BEFE405D41B84EA0417A63E6CE104A75AE5B392
+01E5B7329986D7C5A207DB9BF961DC311DF26C7CE7EC1B9C6D3C950220B86654
+AABD1FBCC32560DF604BFBF9E1912D63C41DAF097EB3ABA459FE3E843AFDAF72
+16B02735662A420A4672E28C8B1ED8C8EE639DAC60D99D058999FDE25821CBBF
+C696430151B43EB10B65049FDF84B5263BEAE8AF727A07C9A9BC8CF724D6D9AD
+EEC2663323D648D9772A833CEF6BC36FF0388E725AE9357CEAE8CC44E659D216
+C4F096BAD2057328446D78EA87478D6F9A7F692EF3313D1557F99FF7924EC1F6
+FF5F808BA6E296CDFC8979AB9DBDB275390FC293BFDF70330981042D36E8594B
+954318F3C43756DAB756C820E774B0B6FFB7D00270C2453C22AFE8ECABF590C3
+4A76E15AE4F8B9FBE2095ADCB78D544C9E7BBB15F268534DEAD899810C07EF50
+D36C20616FA079AC4F57C30E1E6DE8B929D1C9F3E692370DBAA3A0C5249E3B53
+78AD9353A893EFD006010A490C39EC1BA9D4B33C75A603E55C9D18DCCD48A498
+669D4832EB328F40DB4B35914922DD3A103B8250DBF409D96922504A6EB6F488
+0731568217A23186DD4D7E0CE483A6F9192B5BF414DD65BA3D00D05DDA5BA346
+2DF1AB3E909ED409A21CAF43F09007AAFA7BED279A28946429DEBF4C43EBF8A7
+EFF4972A62F022F42D104F60FF175842BCDAB4FBC99B983A9D98BBE63A32B245
+D66123D9BB5CEDCBC224B20959B3DAFB8F0670D6F4217CF22F7C34E8A1548B08
+D44EB282D5E31A3D01E2FA0080195868C665CFEA67B3EC1F6D47DB1C2754E86A
+03C3D61ACD33E9D98CF222E8C4D7E4319AF62E8501BD2E84E2E30BF12F92ABFA
+2395ED4ACD6F600A17A315ED8AB4F8A649DC0D7B7736D5D8B657ECA525E617DE
+A69655736272156199D3CAADC41069EB085C7E18E9018D93E15781BFE4CE179D
+FDA27F2175A94E6FC48CE589C16FFD5C82A23EDB9F552BAF281B0D894369FBE7
+5A156EA972B150E879645710C75BBF437340E844919B8C98A55A8077CC4FC458
+7FD6DD0AE59DD3A3426717EEE0AEFC16AF02A798026E0F7FD5068E611D0627FD
+8CA0FDE1A0DD55FE17A19A7D3BD8D464BAC571CD7423602DA09A67B8C4BD54A4
+EF3ACB1736946FCEBAE8DD070EE33BA708A21A34EB78A06521DD42E772E5AC0B
+94AC03C9267D0DAD66692CCC6A1DEDE8D06A551A37FDA589E516EF907155F26C
+33273F8D52E5DD93D455CD3A325D232D97A7ABA92D20C9492A84C14B002B7DCF
+090926F0A371EC66FBD71FB710E01146523A8804A861F773913363C73FD7E0A5
+8217D76A94BE80B3D2DCEAC97438B737DEE8531D2B647F74292781A9A626A201
+24062E1CF1C9AC22E56F9B6274AD0BABB88D5261D12A15CEF9C4DD00067A9A47
+9B25FCB2DD2D90FB1A9983E1D5B72AD063CD23C67D0130EC69367D41E861AA4C
+DBC23854A42BE0422B59A08368DEB2D6D24A6377C0B7C8009A6337FA503C0966
+9F28AC5E36B6CC44E56E521A437A2E234E6E5C84C6C35E61A51C7C3A4178CAF3
+2C431C6B347024FDD1AB91CFDEA9B3005ABCCFC19EE20E916ED8253EE32181BA
+9B86A2D3BB2969552985BE6B9342D25B3828CB0971109BB80D26B2FB3BBDF3EE
+09E6501087911EA72DA6A8B1A237BE3307CAFEC928B6DE06BDF39382B5DB0E1D
+52A7A3835B6B43B3BAFF3122F5C8FF5D9F42DA34AFA147070862827F52E073D0
+CFEC51C6C093C0FA3B505FF099D1DB1BF5133A3F7F6C98E9C83700AED4716E3D
+4B8492ABA8DFACDFFCC49551E57D27B8C060B5101BF9AE54433FE3A6A8B3B0BA
+AF32A60BE0AF146B6BC0DC547D7218CA109BCA7A7D80C6AE80CDCFCC4E89B3D2
+8AF2B414F6DE196D72C7E9ADD877ECE8C471500551BB14C56DA61AB3F7EB602E
+9025D915033667928D240D4BE8F9B8017D11DF3617A4D09F3498D8E73F877ED3
+C9DF08DDF98FE2C21F0476AE2B3B0D5E4AAC53E72C83AE5A0C5D5825757D5501
+52B9390C59C6925661656E23C090B55E9AE1131569CDF35F19A8AA993785F0B3
+470D068AFEDE8E11694A3BDAD98EFE77F12584E55ECCF6AD9B6399D9EA3B4321
+D6FBFD92D747BE969C1308DAB64198E97BACD3AEB3C3C57A16C01F88506B1ED0
+173A79106ADE0C9DC86F01D3D548F5A49079650A16C291A26F66D2F6B211668F
+02F021F864003D078ECC5801CDFF4320A52D469BB267211E74CFAF2857F4BC5F
+E3CF44F090E828271EE0C4812A5EABA59E0C1F7A631F0420E5DF4CCC28B10F7D
+5A0867B2BD8684C4BDE5F75A3978C2A0BE0162C2769ABCF5DA1562161B1FD81C
+9D480A0EA74B1F11201CC44CB14997A471A46725ECEE791559EBEB4834C44645
+38023ED6479473DC01A025B28B09A961BEAF25C5CAB2239B6C37F3DACA63C3E1
+6BBE908D84314738A0D7E2070A8F0CE53857B7F2D16F6AD79D71B42286FD1364
+5AF12A49F7C992ABF9BC7606134FD86701EF128D218E0AED544F8AAB4BB9A93B
+A821AEBA870383EDAFEA34D5633C6B9966C6CD4F890312E52DC6B4077ECF7A1B
+BA26EC8F0EA1C025FFC61F61B942B9A2ACE0EDBD25951928F9C28DFC55DCFF6E
+23B0CC9B091158FBF767D7655436C66AB4999B2CE839AE8734FB3180F23F1F9B
+67A39C641CF73CE1E3B1AA4A7F2CB960FDEEB49118FFD6C3BB2370D8C980E5AE
+0C119A529EBF111BDE8B81AE02317CEDEEEC4D6621930C2133C52C59CAD5F99B
+2D1EB3EC663E42F971C7CE809AAF8659004753DE688C104167C37853A4E722D7
+D5F034D832F0998EE4B35343548AC33CDDCA81E40723E6800E36D36DDBF5A20E
+AFF91B6CD905C66CE3E4B26D9F2324F7CC0A533781260D81DD290959C9381625
+5CFEE341A15E899C0E2ED21F91325949B54EA0E7C2D310B3A4DB9271628CD493
+CD88485181E8C3B9695FF4D8573AAEE39223B2CFAA9FBA43CA335A50A7BCBE34
+F43E07065A082F9C03D451DFBAE8E87032C64D3C5013872EE7863B8560E1DBA3
+120108C7C1E0F67B876718497246B683620807D5BBD7775E39348D35527DB218
+9F2877644F667692750F3287F309BD221C47DC8EDCD7CDA14E77D3D3149DBF6E
+572FEC4F85B43B3DE3B85E8B16D0434CE54AA528FEF9187319332183BE1CCA49
+E7149D6D1F53A178E503F3E42F1DD32939D6DFD826BAB7F4733722EA4ACDCA27
+02C5357BB7DA5A76D5B0949F7E7DE6EAB10D29F8596D3EF4EC3E1EA921517C51
+0400A227B83EA425B6581AB43D66174FF24CE46F32039E7620D9A8A5D8109EA7
+A91B5C5CFD62DA90EB11E4AF290E2A47F9184A029DA8BCCD08D1B5C8CD0AA068
+0B8D29B875FB54126FAEF1C3F566D959C7A3840DF85D38938AD8902078640253
+7543A879805FC87FCC77F766393BD5EF65CD07D63CC78ACFBC01361E38EB19F5
+1FB5A2D1192CC62FCDB2A1F5AD267320157E8D2B791CEB17B6BDBD73763B6D4D
+131FC9E017045369D2EB9834426FFC0DC165BDB98450EEE98CB9A44B11D87626
+D46A57C3784418E1BCC9581724D6E8BC8E07AE5E92A6C10A2793885BC3C10837
+794E97B98C3824AC33BFBA16A2B92B2125537C7E45B4EABFCE02FCD8369FF20D
+134C2E981EFFE7075E5C43A24EAA0FE3C570236318C9F3816E466F396D2D3FC1
+A4E3D0E72821FAD511B8DC658637C1591737B2964CBBB4505B38C9A72363A779
+9E20EC461E461CFBEC238016A9BE12651F87E40FBA599468DC574415D906351B
+D830B2DA736714C33583F1C87AF29AD29CB4C78FC54A028932BFE028AD056A97
+B5E443AF1E50E029FA0D7359F86EA37FBB65D456392D0023176FA72F3F11DBFD
+9CD96F2FC59D0337EEE495A5D247C5EAA4F83A4C60348CC2EA604C8AF35B0632
+AC422191985A11EC38AA780BE26EBB11CF64893B6628658B9C8D2E9BCFD4447A
+6777F03002F2D8F84F19D346D1A65CA5ADBEB4060681182A5D62812ADE5A688F
+02FCD465D82A9AC8F28D721AE4169C1B0CD842D0DC92FC41BE78B863468C437A
+
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 25 /pi put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
+990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
+6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
+DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
+59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
+D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
+8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
+6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
+1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
+03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
+95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
+74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
+3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
+47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
+AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
+42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
+40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
+B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
+9560176671A33FC55340CD04C2DE46FD812FC2711A85E6184AAE1B43B8B0A13A
+D8A6164C4C9C67695E1FFE93E69320554A74F70BA2E3168A45458027FD102D11
+B6239022DCAE461D7ADBC03A5960E7741A22F6373497765AA72FD31663F42DDE
+49B0537D9EDDB009E071D62C23E38DDA31C1B9EDF73BE2FE534F364C6291EB7C
+A98E432D701938898E1CA06C500C2B5A9080E63E4DA8C2E9612653701502B6C8
+C51E42F237BE7B854BBF8D7BE3B97E9511DA810822397B43122BD26BE92B5A10
+691434D7157DE034A1366616817DDB4270BF13685F38BD7E33B01B15B2ECC8D2
+E6C7B329D5CA976CAEA54EC23CE09669CFDCA1F3D99B117B9CB36434BBB8CF83
+2A60ECD80506B56BE09E9C860608628D560BDD7C1FB8EB5FD86D1F0FF176D419
+14F7B946CC3C665904EC5B5ACC102F54A0FD2CED13C05EEAC54F124FBC8E9A06
+0D847C135E98B98D4748E6D07D8783C4762C47E29ACE9EEBDBF31925F0A1D5FA
+D4993D43B363695F4D0D4B5BCACD8011E9A761C67C2B2F97F2ACB8EB2FC39A48
+6A32FEB289DD0EBDE728A097D63B3973FE73AC2D51B4ABD970A25EC97B77E871
+63ED02458E2AE9AB924AADC20F058C0EBAF3644EDE70614645686A205761377D
+C10477E0A8606487489FA3F870FA8534ACE3DC57B66F2B2C93C73FA988566DBC
+228748925C4208A84A7E535C39CEF2B7C6F53652FD2DBA170C5D6B7C036D51E9
+49637907BF7E596A5CAFBB509348E32D0F52A676FBD4D1D91EF919ECACED6BE3
+45439CF7CCBA81A52C05A35245B7CBE9B789F640A5C087A04A9381C4A5741964
+6EECCE1C11FC9CEC52D0AEAE464331DA17D784B0CD75FD3DE3DF8FC7BE58A8CD
+7172FBC9CA39AFAF962C884FC7BA55742A782BDE373D47723029AF9BBD898BFB
+312A66463B52ABE8FDFB0AAA43FDE0BC96CF51B6A2DC5D5A491F6A4F6B501E99
+042105B31CF1CB4936E05BE3F86FA014436CA041FA698F1665214F6D568A248F
+519080321F25A4BD7AE12DBFAE6E67D51759A46FC98A4685FD34085A90BB3C1C
+40DD3ECD638D53C708CD91E8F6BA2D33638897261C14D451B387D49CF7E6EECD
+C203F1E04125DB5DFF17E380ED20BBBB3EEB301987C05D5E866624518962809E
+E0C337B635013564279DA7E7BE39F45578CD12943B135AD7CF788F420FAEE875
+6446AC62732070536093CA84D466D1117378FC5C0CEED1225DA895CE6BB3978C
+EBAD72
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMEX10
+%!PS-AdobeFont-1.1: CMEX10 1.00
+%%CreationDate: 1992 Jul 23 21:22:48
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMEX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMEX10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 116 /radicalbt put
+dup 117 /radicalvertex put
+dup 118 /radicaltp put
+readonly def
+/FontBBox{-24 -2960 1454 772}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF5B8CAC6A7BEB5D02276E511FFAF2AE11910
+DE076F24311D94D07CACC323F360887F1EA11BDDA7927FF3325986FDB0ABDFC8
+8E4B40E7988921D551EC0867EBCA44C05657F0DC913E7B3004A5F3E1337B6987
+FEBC45F989C8DC6DC0AD577E903F05D0D54208A0AE7F28C734F130C133B48422
+BED48639A2B74E4C08F2E710E24A99F347E0F4394CE64EACB549576E89044E52
+EABE595BC964156D9D8C2BAB0F49664E951D7C1A3D1789C47F03C7051A63D5E8
+DF04FAAC47351E82CAE0794AA9692C6452688A74A7A6A7AD09B8A9783C235EC1
+EA2156261B8FB331827145DE315B6EC1B3D8B67B3323F761EAF4C223BB214C4C
+6B062D1B281F5041D068319F4911058376D8EFBA59884BA3318C5BC95684F281
+E0591BC0D1B2A4592A137FF301610019B8AC46AE6E48BC091E888E4487688350
+E9AD5074EE4848271CE4ACC38D8CBC8F3DB32813DDD5B341AF9A6601281ABA38
+4A978B98483A63FCC458D0E3BCE6FD830E7E09B0DB987A6B63B74638FC9F21A5
+8C68479E1A85225670D79CDDE5AC0B77F5A994CA700B5F0FF1F97FC63EFDE023
+8135F04A9D20C31998B12AE06676C362141AAAA395CDEF0A49E0141D335965F2
+FB4198499799CECCC8AA5D255264784CD30A3E8295888EFBC2060ADDD7BAC45A
+EEEECDFF7A47A88E69D84C9E572616C1AC69A34B5F0D0DE8EE4EDF9F4ADE0387
+680924D8D5B73EF04EAD7F45977CA8AD73D4DD45DE1966A3B8251C0386164C35
+5880DD2609C80E96D1AB861C9259748E98F6711D4E241A269ED51FF328344664
+3AF9F18DCE671611DB2F5D3EA77EE734D2BED623F973E6840B8DAD1E2C3C2666
+DD4DD1C1CECEDA9D8BEA4AD62BA3D1CEC6121BD58420C04FA69FB3B339562AFC
+6BAFCECFFC5C8C780D2C95919B6B3D1CCE932EC07458A1DC640800F7F138B2DA
+72E3453FD3E4DAA8176E5E594B138EFC4C0597D85B391943F580B7397FE336A0
+F26F611AA6289C6B4636940ACE7AF66676DB1BFD0BE816D660B7440F6E75040D
+6FD16502293D02B6E971B766DF74D25CBB3E3893D09204744C80FB1E7AFC02D6
+ED85073D0E3AC024272B65CB18A9F648710943CFB503721FD86B99C8F656F672
+645DA97296D522FBF63C258A0D0DCFD1425D5DC635C36CD684300047E26C526E
+75031C8E68CE53A7EFCFCD3257780808054C44FD1BB0E2D6CEE793DF4E4EC61B
+999EE7E565B4AC741FADE15805772A406ED0CC325B1298AF6BAC84E92E4822DD
+D947ADF2E63C179BAC2E72A365FBF5F869E7D7EFA68AB399A67781652BEEE071
+F5C06ED2813D497084760B26DF06AE2FE8121C36AB0EBB0B11AAD13185C274DC
+F8980F8B3D407EEF700CA06AEFE888723282FE3955CF6D704A3F5A8BDFCFAF7E
+51B1B79EB5DF940A468200581C754019F833422D803421C9CAC13B9D957C2392
+35E1EEAEB8E6
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(../../../texk/dvipsk/testdata/dvipstst.xdv)
+@start /Fa 25[48 6[33 24[63 17[22 11[22 11[48 4[66 10[63
+3[22 16[44 29 37 18 26 26 1[33 33 37 52 18 2[18 37 1[22
+29 33 29 1[33 23[26 4[48 21[17 6[22 21[18 13[37 3[{
+TeXBase1Encoding ReEncodeFont}33 66.4176 /Times-BoldItalic
+rf /Fb 138[22 22 22 22 2[22 2[22 5[22 22 3[22 4[22 92[{}10
+41.511 /CMTT10 rf /Fc 214[42 7[42 32[32{}3 41.511 /CMSY10
+rf /Fd 128[21 2[42 2[22 22 30 22 23 16 16 16 22 23 21
+23 35 12 22 1[12 23 21 13 18 23 18 23 21 12 1[21 1[21
+2[31 31 3[30 23 31 1[28 6[15 2[27 28 32 30 1[31 3[32
+1[12 2[21 1[21 21 21 2[21 2[12 14 12 2[16 16 12 4[21
+3[42 37 1[32 30 21 5[21 2[12 35 1[23 23 12[{}65 41.511
+/CMR10 rf /Fe 156[18 18 22 71[24 25[{}4 41.511 /CMMI10
+rf /Ff 137[44 44 44 116[{}3 41.511 /CMEX10 rf /Fg 152[208
+103[{TeXBase1Encoding ReEncodeFont}1 415.11 /Times-Italic
+rf /Fh 137[42 1[23 32 28 1[42 42 5[23 3[37 1[37 10[60
+1[60 1[51 46 2[46 6[28 2[46 51 60 2[60 6[23 58[{
+TeXBase1Encoding ReEncodeFont}20 83.022 /Times-Roman
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -225 -200 2331 25 v -225 3108 25
+3309 v 325 -77 a Fh(D)m(VIPS:)21 b(A)g(T)724 -58 y(E)764
+-77 y(X)f(Dri)n(v)o(er)g(F)o(or)f(PostScript)836 238
+y Fg(g)-225 695 y @beginspecial @setspecial
+ 0 36 translate .05 .099 .95 { 27.4 0 translate gsave 0 0 moveto dup
+90 mul rotate -10 -10 rmoveto 20 0 rlineto 0 20 rlineto -20 0 rlineto
+closepath gsave dup setgray fill grestore 1 exch sub setgray stroke
+grestore 27.4 0 translate } for
+
+@endspecial
+441 770 a Ff(v)441 794 y(u)441 818 y(u)441 843 y(u)441
+868 y(u)441 893 y(u)441 918 y(u)441 943 y(u)441 968 y(t)p
+485 770 954 2 v -180 x(v)485 811 y(u)485 836 y(u)485
+861 y(u)485 885 y(u)485 910 y(u)485 935 y(u)485 960 y(t)p
+529 788 910 2 v 865 828 a Fe(a)12 b Fd(=)-7 b Fc(\))11
+b Fe(b)g Fc(\000)-6 b(!)11 b Fe(c)p 534 846 900 2 v 534
+880 a Fd(the)17 b(phase)f(of)f(the)i(mo)q(on)e(m)o(ultiplied)f(b)o(y)i
+(the)h(n)o(um)o(b)q(er)534 930 y(of)10 b(angels)h(that)g(can)g(dance)h
+(on)f(the)h(head)f(of)f(a)h(pin)f(while)534 980 y(the)18
+b(ric)o(h)f(man)f(threads)i(the)g(needle)g(divided)e(b)o(y)h
+Fe(\031)h Fd(or)534 1030 y(some)c(other)g(transcenden)o(tal)i(n)o(um)o
+(b)q(er)-158 2836 y @beginspecial 18 @llx 18 @lly 577
+@urx 814 @ury 2796 @rwi @setspecial @endspecial 1090
+1185 a(T)m(o)i(run)g(this)h(test,)h(remo)o(v)o(e)e(a)g(\014le)h(called)
+f(m)o(test.ps)g(if)g(it)1049 1235 y(exists.)36 b(Then,)21
+b(run)f(T)1429 1244 y(E)1452 1235 y(X)g(o)o(v)o(er)g(test.tex,)i(run)e
+(dvips)g(o)o(v)o(er)1049 1285 y(test.dvi,)10 b(sa)o(ving)g(the)h
+(output)f(in)g(a)g(\014le)g(test.ps.)18 b(Cop)o(y)10
+b(test.ps)1049 1335 y(to)17 b(m)o(test.ps.)29 b(Run)17
+b(dvips)g(o)o(v)o(er)g(test.dvi)h(again,)e(this)i(time)1049
+1385 y(prin)o(ting)9 b(or)h(sa)o(ving)f(the)h(output,)h(as)f(y)o(ou)f
+(c)o(ho)q(ose.)18 b(\(Including)1049 1434 y(the)12 b(do)q(cumen)o(t)h
+(to)q(o)f(man)o(y)f(times)h(inside)g(itself)g(will)f(o)o(v)o(er\015o)o
+(w)1049 1484 y(the)j(virtual)f(memory)h(capacities)g(of)f(most)h(prin)o
+(ters.\))1090 1565 y(Some)i(things)g(to)g(c)o(hec)o(k)i(on)e(this)g
+(page.)25 b(First,)17 b(the)g(large)1049 1615 y(rules)c(surrounding)f
+(the)h(page)g(should)f(b)q(e)h(exactly)f(one)h(quar-)1049
+1665 y(ter)i(inc)o(h)f(from)g(eac)o(h)h(b)q(order)h(\(assuming)e(a)g
+(8.5)g(b)o(y)g(11)g(page;)1049 1715 y(for)c(an)g(a4)g(page,)h(c)o
+(hange)g(the)g Fb(\\afourfalse)d Fd(to)j Fb(\\afourtrue)1049
+1765 y Fd(on)i(line)h(16.\))1090 1845 y(Y)m(ou)f(should)g(see)i(a)e
+(title)g(at)g(the)h(top,)f(and)g(a)g(large)g(italic)f(g)1049
+1895 y(under)f(that.)17 b(Then,)11 b(there)g(should)g(b)q(e)g(a)f(cen)o
+(tered)i(ro)o(w)e(of)g(ten)1049 1945 y(b)q(o)o(xes,)k(going)e(from)h
+(dark)h(to)g(ligh)o(t)f(gra)o(y)m(,)f(rotating)h(slo)o(wly)m(.)1090
+2026 y(In)18 b(the)h(`equation')d(that)i(follo)o(ws,)f(c)o(hec)o(k)i
+(the)g(upp)q(er)g(left)1049 2076 y(corner)g(of)e(the)i(radical)f(signs)
+g(for)f(alignmen)o(t.)30 b(Also)18 b(c)o(hec)o(k)1049
+2126 y(the)c(righ)o(t)g(arro)o(ws.)1090 2207 y(In)e(the)h(recursiv)o
+(ely)g(included)f(page)g(to)g(the)h(left,)f(note)g(ho)o(w)1049
+2256 y(bad)g(the)i(bitmapp)q(ed)e(fon)o(ts)h(lo)q(ok)f(\(they)i(are)f
+(the)g(ones)h(under)1049 2306 y(the)g(radical,)f(and)g(indeed)i(this)f
+(text)g(itself.\))k(The)c(thin)g(rules)1049 2356 y(ma)o(y)g(disapp)q
+(ear)i(altogether.)23 b(This)16 b(p)q(oin)o(ts)f(out)g(the)h(resolu-)
+1049 2406 y(tion)11 b(dep)q(endence)j(of)d(dvips)h(output;)g(this)g(is)
+g(an)f(unfortunate)1049 2456 y(necessit)o(y)23 b(of)d(using)h(bitmapp)q
+(ed)h(fon)o(ts.)40 b(The)22 b(P)o(ostScript)1049 2506
+y(fon)o(ts,)13 b(on)h(the)g(other)h(hand,)e(should)g(scale)i(\014ne.)
+1090 2586 y(Finally)m(,)c(at)h(the)i(b)q(ottom)e(of)g(the)h(page,)g(y)o
+(ou)f(will)f(see)j(some)1049 2636 y(tests)f(of)f(the)g(accen)o(ts)i(in)
+e(the)h(P)o(ostScript)f(fon)o(ts.)18 b(P)o(a)o(y)11 b(careful)1049
+2686 y(atten)o(tion)18 b(to)g(the)h(w)o(ord)f(na)-5 b(\177)-16
+b(\020v)o(e;)20 b(there)g(should)e(b)q(e)h(an)f(um-)1049
+2736 y(laut)e(o)o(v)o(er)h(a)g(dotless)h(i.)27 b(The)17
+b(text)h(should)e(read)i(\\Ic)o(h)f(w)o(ei\031)1049 2786
+y(tats\177)-21 b(ac)o(hlic)o(h)15 b(nic)o(h)o(t)f(mehr)i(als)e(das.)22
+b(D\032monic)14 b(sou\017)o(\023)-20 b(es)16 b(ha)o(v)o(e)1049
+2836 y(no)d(r^)-21 b(ole)14 b(in)g(na)-5 b(\177)-16 b(\020v)o(e)13
+b(\033uvres.)19 b(|\035sop's)14 b(\036uvres.")100 2963
+y Fa(Ic)o(h)25 b(w)o(ei\337)i(tats)467 2962 y(\250)461
+2963 y(ac)o(hlich)g(nic)o(ht)g(mehr)d(als)i(das.)48 b(D\346monic)25
+b(souf)o(\003)1729 2962 y(\264)1725 2963 y(es)100 3027
+y(hav)o(e)18 b(no)e(r)363 3026 y(\210)357 3027 y(ole)i(in)f(na)595
+3026 y(\250)597 3027 y(\021v)o(e)h(\234uvres.)24 b(\227\306sop')-5
+b(s)17 b(\214uvres.)p 2080 3108 25 3309 v -225 3133 2331
+25 v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
+
+%%EndDocument
+ @endspecial 1090 1185 a(T)m(o)i(run)g(this)h(test,)h(remo)o(v)o(e)e(a)
+g(\014le)h(called)f(m)o(test.ps)g(if)g(it)1049 1235 y(exists.)36
+b(Then,)21 b(run)f(T)1429 1244 y(E)1452 1235 y(X)g(o)o(v)o(er)g
+(test.tex,)i(run)e(dvips)g(o)o(v)o(er)1049 1285 y(test.dvi,)10
+b(sa)o(ving)g(the)h(output)f(in)g(a)g(\014le)g(test.ps.)18
+b(Cop)o(y)10 b(test.ps)1049 1335 y(to)17 b(m)o(test.ps.)29
+b(Run)17 b(dvips)g(o)o(v)o(er)g(test.dvi)h(again,)e(this)i(time)1049
+1385 y(prin)o(ting)9 b(or)h(sa)o(ving)f(the)h(output,)h(as)f(y)o(ou)f
+(c)o(ho)q(ose.)18 b(\(Including)1049 1434 y(the)12 b(do)q(cumen)o(t)h
+(to)q(o)f(man)o(y)f(times)h(inside)g(itself)g(will)f(o)o(v)o(er\015o)o
+(w)1049 1484 y(the)j(virtual)f(memory)h(capacities)g(of)f(most)h(prin)o
+(ters.\))1090 1565 y(Some)i(things)g(to)g(c)o(hec)o(k)i(on)e(this)g
+(page.)25 b(First,)17 b(the)g(large)1049 1615 y(rules)c(surrounding)f
+(the)h(page)g(should)f(b)q(e)h(exactly)f(one)h(quar-)1049
+1665 y(ter)i(inc)o(h)f(from)g(eac)o(h)h(b)q(order)h(\(assuming)e(a)g
+(8.5)g(b)o(y)g(11)g(page;)1049 1715 y(for)c(an)g(a4)g(page,)h(c)o
+(hange)g(the)g Fb(\\afourfalse)d Fd(to)j Fb(\\afourtrue)1049
+1765 y Fd(on)i(line)h(16.\))1090 1845 y(Y)m(ou)f(should)g(see)i(a)e
+(title)g(at)g(the)h(top,)f(and)g(a)g(large)g(italic)f(g)1049
+1895 y(under)f(that.)17 b(Then,)11 b(there)g(should)g(b)q(e)g(a)f(cen)o
+(tered)i(ro)o(w)e(of)g(ten)1049 1945 y(b)q(o)o(xes,)k(going)e(from)h
+(dark)h(to)g(ligh)o(t)f(gra)o(y)m(,)f(rotating)h(slo)o(wly)m(.)1090
+2026 y(In)18 b(the)h(`equation')d(that)i(follo)o(ws,)f(c)o(hec)o(k)i
+(the)g(upp)q(er)g(left)1049 2076 y(corner)g(of)e(the)i(radical)f(signs)
+g(for)f(alignmen)o(t.)30 b(Also)18 b(c)o(hec)o(k)1049
+2126 y(the)c(righ)o(t)g(arro)o(ws.)1090 2207 y(In)e(the)h(recursiv)o
+(ely)g(included)f(page)g(to)g(the)h(left,)f(note)g(ho)o(w)1049
+2256 y(bad)g(the)i(bitmapp)q(ed)e(fon)o(ts)h(lo)q(ok)f(\(they)i(are)f
+(the)g(ones)h(under)1049 2306 y(the)g(radical,)f(and)g(indeed)i(this)f
+(text)g(itself.\))k(The)c(thin)g(rules)1049 2356 y(ma)o(y)g(disapp)q
+(ear)i(altogether.)23 b(This)16 b(p)q(oin)o(ts)f(out)g(the)h(resolu-)
+1049 2406 y(tion)11 b(dep)q(endence)j(of)d(dvips)h(output;)g(this)g(is)
+g(an)f(unfortunate)1049 2456 y(necessit)o(y)23 b(of)d(using)h(bitmapp)q
+(ed)h(fon)o(ts.)40 b(The)22 b(P)o(ostScript)1049 2506
+y(fon)o(ts,)13 b(on)h(the)g(other)h(hand,)e(should)g(scale)i(\014ne.)
+1090 2586 y(Finally)m(,)c(at)h(the)i(b)q(ottom)e(of)g(the)h(page,)g(y)o
+(ou)f(will)f(see)j(some)1049 2636 y(tests)f(of)f(the)g(accen)o(ts)i(in)
+e(the)h(P)o(ostScript)f(fon)o(ts.)18 b(P)o(a)o(y)11 b(careful)1049
+2686 y(atten)o(tion)18 b(to)g(the)h(w)o(ord)f(na)-5 b(\177)-16
+b(\020v)o(e;)20 b(there)g(should)e(b)q(e)h(an)f(um-)1049
+2736 y(laut)e(o)o(v)o(er)h(a)g(dotless)h(i.)27 b(The)17
+b(text)h(should)e(read)i(\\Ic)o(h)f(w)o(ei\031)1049 2786
+y(tats\177)-21 b(ac)o(hlic)o(h)15 b(nic)o(h)o(t)f(mehr)i(als)e(das.)22
+b(D\032monic)14 b(sou\017)o(\023)-20 b(es)16 b(ha)o(v)o(e)1049
+2836 y(no)d(r^)-21 b(ole)14 b(in)g(na)-5 b(\177)-16 b(\020v)o(e)13
+b(\033uvres.)19 b(|\035sop's)14 b(\036uvres.")100 2963
+y Fa(Ic)o(h)25 b(w)o(ei\337)i(tats)467 2962 y(\250)461
+2963 y(ac)o(hlich)g(nic)o(ht)g(mehr)d(als)i(das.)48 b(D\346monic)25
+b(souf)o(\003)1729 2962 y(\264)1725 2963 y(es)100 3027
+y(hav)o(e)18 b(no)e(r)363 3026 y(\210)357 3027 y(ole)i(in)f(na)595
+3026 y(\250)597 3027 y(\021v)o(e)h(\234uvres.)24 b(\227\306sop')-5
+b(s)17 b(\214uvres.)p 2080 3108 25 3309 v -225 3133 2331
+25 v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Build/source/texk/dvipsk/testdata/eepic-nan.dvi b/Build/source/texk/dvipsk/testdata/eepic-nan.dvi
new file mode 100644
index 00000000000..7824ca8c733
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/eepic-nan.dvi
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/eepic-nan.tex b/Build/source/texk/dvipsk/testdata/eepic-nan.tex
new file mode 100644
index 00000000000..3963245f22d
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/eepic-nan.tex
@@ -0,0 +1,15 @@
+\documentclass{article}
+
+\usepackage{epic}
+\usepackage{eepic}
+
+\begin{document}
+
+\setlength{\unitlength}{1pt}
+\begin{picture}(300,200)(0,0)
+ \path(100,100)(150,150)
+ \dottedline{3}(50,20)(250,180)
+\end{picture}
+
+\end{document}
+
diff --git a/Build/source/texk/dvipsk/testdata/intoverflow.dvi b/Build/source/texk/dvipsk/testdata/intoverflow.dvi
new file mode 100644
index 00000000000..9f53105b652
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/intoverflow.dvi
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/missing-image.dvi b/Build/source/texk/dvipsk/testdata/missing-image.dvi
new file mode 100644
index 00000000000..0805a1f8210
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/missing-image.dvi
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/missing-image.tex b/Build/source/texk/dvipsk/testdata/missing-image.tex
new file mode 100644
index 00000000000..1fcb69f2ed2
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/missing-image.tex
@@ -0,0 +1,6 @@
+% $Id$
+% Include a nonexistent image file, for test-missing-image.test. Public domain.
+\nopagenumbers
+\input epsf
+\epsfbox{missing-image.eps}
+\end
diff --git a/Build/source/texk/dvipsk/testdata/overflow-color-push.dvi b/Build/source/texk/dvipsk/testdata/overflow-color-push.dvi
new file mode 100644
index 00000000000..02e40625376
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/overflow-color-push.dvi
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/overflow-color-push.tex b/Build/source/texk/dvipsk/testdata/overflow-color-push.tex
new file mode 100644
index 00000000000..6a68e925cc6
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/overflow-color-push.tex
@@ -0,0 +1,17 @@
+% Andy Nguyen of ETH Zurich. Public domain.
+% tlsecurity mail of 28 Mar 2019 18:20:48.
+% File "dvipsk/color.c", subroutine "colorcmdout": "s" is copied to
+% "tempword" without length validation.
+
+\documentclass{article}
+
+\begin{document}
+\thispagestyle{empty}
+
+\begin{figure}[p]
+
+\special{color push aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a}
+
+\end{figure}
+
+\end{document}
diff --git a/Build/source/texk/dvipsk/testdata/overflow-epsfile.dvi b/Build/source/texk/dvipsk/testdata/overflow-epsfile.dvi
new file mode 100644
index 00000000000..0d7e5429aef
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/overflow-epsfile.dvi
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/overflow-epsfile.tex b/Build/source/texk/dvipsk/testdata/overflow-epsfile.tex
new file mode 100644
index 00000000000..5ae2cd13d63
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/overflow-epsfile.tex
@@ -0,0 +1,17 @@
+% Andy Nguyen of ETH Zurich. Public domain.
+% tlsecurity mail of 28 Mar 2019 18:20:48.
+% File "dvipsk/dospecial.c", subroutine "dospecial": "epsfile" is parsed
+% using "sscanf(p, "%s", psfile);", which has no length limitation.
+
+\documentclass{article}
+
+\begin{document}
+
+\begin{figure}[p]
+\thispagestyle{empty}
+
+\special{epsfile=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
+
+\end{figure}
+
+\end{document}
diff --git a/Build/source/texk/dvipsk/testdata/overflow-ifffile.dvi b/Build/source/texk/dvipsk/testdata/overflow-ifffile.dvi
new file mode 100644
index 00000000000..00859cfedc2
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/overflow-ifffile.dvi
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/overflow-ifffile.tex b/Build/source/texk/dvipsk/testdata/overflow-ifffile.tex
new file mode 100755
index 00000000000..aa6d95f7b55
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/overflow-ifffile.tex
@@ -0,0 +1,12 @@
+\documentclass{article}
+
+\begin{document}
+\thispagestyle{empty}
+
+\begin{figure}[p]
+
+\special{ifffile=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
+
+\end{figure}
+
+\end{document}
diff --git a/Build/source/texk/dvipsk/testdata/overflow-keyword.dvi b/Build/source/texk/dvipsk/testdata/overflow-keyword.dvi
new file mode 100644
index 00000000000..0df5740c803
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/overflow-keyword.dvi
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/overflow-keyword.tex b/Build/source/texk/dvipsk/testdata/overflow-keyword.tex
new file mode 100755
index 00000000000..f3f6f31d280
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/overflow-keyword.tex
@@ -0,0 +1,12 @@
+\documentclass{article}
+
+\begin{document}
+\thispagestyle{empty}
+
+\begin{figure}[p]
+
+\special{aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
+
+\end{figure}
+
+\end{document}
diff --git a/Build/source/texk/dvipsk/testdata/overflow-psbox.dvi b/Build/source/texk/dvipsk/testdata/overflow-psbox.dvi
new file mode 100644
index 00000000000..56ddd5e5b23
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/overflow-psbox.dvi
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/overflow-psbox.tex b/Build/source/texk/dvipsk/testdata/overflow-psbox.tex
new file mode 100644
index 00000000000..f7628e27e3b
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/overflow-psbox.tex
@@ -0,0 +1,18 @@
+% Andy Nguyen of ETH Zurich. Public domain.
+% tlsecurity mail of 29 Mar 2019 22:41:20.
+% File "dvipsk/dospecial.c", subroutine "dospecial": "psfile" is parsed using
+% "sscanf(p+13, "{%fpt}{%fpt}{%[^}]}", &w, &h, psfile)", which has no length
+% limitation.
+
+\documentclass{article}
+
+\begin{document}
+\thispagestyle{empty}
+
+\begin{figure}[p]
+
+\special{postscriptbox{42pt}{1337pt}{aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}}
+
+\end{figure}
+
+\end{document}
diff --git a/Build/source/texk/dvipsk/testdata/pfbincl.eps b/Build/source/texk/dvipsk/testdata/pfbincl.eps
new file mode 100644
index 00000000000..4d30904d9fa
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/pfbincl.eps
@@ -0,0 +1,11079 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Adobe Illustrator(R) 8.0
+%%AI8_CreatorVersion: 12.0.1
+%%For: (len) (ams)
+%%Title: (condensation-of-zeta-functions.eps)
+%%CreationDate: 4/25/07 1:33 PM
+%%BoundingBox: 1 -186 347 124
+%%HiResBoundingBox: 1.40039 -185.0195 346.4609 123.5684
+%%DocumentProcessColors: Black
+%%DocumentFonts: EuclidSymbol
+%%+ Times-Roman
+%%+ TimesNewRomanPSMT
+%%DocumentSuppliedFonts: EuclidSymbol
+%%+ Times-Roman
+%%+ TimesNewRomanPSMT
+%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
+%%+ procset Adobe_screens_AI5 1.0 0
+%%+ procset Adobe_typography_AI5 1.0 1
+%%+ procset AGM_Gradient 1.0 0
+%%+ procset Adobe_ColorImage_AI6 1.3 0
+%%+ procset Adobe_Illustrator_AI5 1.3 0
+%%+ procset Adobe_pattern_AI5 1.0 0
+%%+ procset Adobe_cshow 2.0 8
+%%+ procset Adobe_shading_AI8 1.0 0
+%AI5_FileFormat 4.0
+%AI3_ColorUsage: Color
+%AI3_IncludePlacedImages
+%AI7_ImageSettings: 1
+%%CMYKCustomColor: 1 1 1 1 ([Registration])
+%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set)
+%%+ Options: 1 16 0 1 1 1 0 0 0 0 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 2 3 4
+%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 -1 -1 ()
+%AI3_TemplateBox: 174.4004 -118.9033 174.4004 -118.9033
+%AI3_TileBox: -114.0996 -478.4033 461.9004 274.7168
+%AI3_DocumentPreview: Header
+%AI5_ArtSize: 612 792
+%AI5_RulerUnits: 0
+%AI5_ArtFlags: 0 0 0 1 0 0 0 0 0
+%AI5_TargetResolution: 800
+%AI5_NumLayers: 2
+%AI8_OpenToView: -198.0996 457.5967 1 975 750 18 1 1 72 73 0 0
+%AI5_OpenViewLayers: 67
+%%PageOrigin:-114.0996 -475.4033
+%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
+%AI9_Flatten: 1
+%AI12_CMSettings: 00.MS
+%CLEANEPS: Wed Aug 29 14:21:48 EDT 2007 for ltd (cleaneps v2.2.3)
+%CLEANEPS_BINARY_WARNING: yes
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset Adobe_level2_AI5 1.2 0
+%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
+%%Version: 1.2 0
+%%CreationDate: (04/10/93) ()
+%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
+userdict /Adobe_level2_AI5 26 dict dup begin
+ put
+ /packedarray where not
+ {
+ userdict begin
+ /packedarray
+ {
+ array astore readonly
+ } bind def
+ /setpacking /pop load def
+ /currentpacking false def
+ end
+ 0
+ } if
+ pop
+ userdict /defaultpacking currentpacking put true setpacking
+ /initialize
+ {
+ Adobe_level2_AI5 begin
+ } bind def
+ /terminate
+ {
+ currentdict Adobe_level2_AI5 eq
+ {
+ end
+ } if
+ } bind def
+ mark
+ /setcustomcolor where not
+ {
+ /findcmykcustomcolor
+ {
+ (AI8_CMYK_CustomColor)
+ 6 packedarray
+ } bind def
+ /findrgbcustomcolor
+ {
+ (AI8_RGB_CustomColor)
+ 5 packedarray
+ } bind def
+ /setcustomcolor
+ {
+ exch
+ aload pop dup
+ (AI8_CMYK_CustomColor) eq
+ {
+ pop pop
+ 4
+ {
+ 4 index mul
+ 4 1 roll
+ } repeat
+ 5 -1 roll pop
+ setcmykcolor
+ }
+ {
+ dup (AI8_RGB_CustomColor) eq
+ {
+ pop pop
+ 3
+ {
+ 1 exch sub
+ 3 index mul
+ 1 exch sub
+ 3 1 roll
+ } repeat
+ 4 -1 roll pop
+ setrgbcolor
+ }
+ {
+ pop
+ 4
+ {
+ 4 index mul 4 1 roll
+ } repeat
+ 5 -1 roll pop
+ setcmykcolor
+ } ifelse
+ } ifelse
+ }
+ def
+ } if
+ /setAIseparationgray
+ {
+ false setoverprint
+ 0 setgray
+ /setseparationgray where{
+ pop setseparationgray
+ }{
+ /setcolorspace where{
+ pop
+ [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace
+ 1 exch sub setcolor
+ }{
+ setgray
+ }ifelse
+ }ifelse
+ } def
+
+ /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
+ userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
+ userdict /level2?
+ systemdict /languagelevel known dup
+ {
+ pop systemdict /languagelevel get 2 ge
+ } if
+ put
+/level2ScreenFreq
+{
+ begin
+ 60
+ HalftoneType 1 eq
+ {
+ pop Frequency
+ } if
+ HalftoneType 2 eq
+ {
+ pop GrayFrequency
+ } if
+ HalftoneType 5 eq
+ {
+ pop Default level2ScreenFreq
+ } if
+ end
+} bind def
+userdict /currentScreenFreq
+ level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
+level2? not
+ {
+ /setcmykcolor where not
+ {
+ /setcmykcolor
+ {
+ exch .11 mul add exch .59 mul add exch .3 mul add
+ 1 exch sub setgray
+ } def
+ } if
+ /currentcmykcolor where not
+ {
+ /currentcmykcolor
+ {
+ 0 0 0 1 currentgray sub
+ } def
+ } if
+ /setoverprint where not
+ {
+ /setoverprint /pop load def
+ } if
+ /selectfont where not
+ {
+ /selectfont
+ {
+ exch findfont exch
+ dup type /arraytype eq
+ {
+ makefont
+ }
+ {
+ scalefont
+ } ifelse
+ setfont
+ } bind def
+ } if
+ /cshow where not
+ {
+ /cshow
+ {
+ [
+ 0 0 5 -1 roll aload pop
+ ] cvx bind forall
+ } bind def
+ } if
+ } if
+ cleartomark
+ /anyColor?
+ {
+ add add add 0 ne
+ } bind def
+ /testColor
+ {
+ gsave
+ setcmykcolor currentcmykcolor
+ grestore
+ } bind def
+ /testCMYKColorThrough
+ {
+ testColor anyColor?
+ } bind def
+ userdict /composite?
+ 1 0 0 0 testCMYKColorThrough
+ 0 1 0 0 testCMYKColorThrough
+ 0 0 1 0 testCMYKColorThrough
+ 0 0 0 1 testCMYKColorThrough
+ and and and
+ put
+ composite? not
+ {
+ userdict begin
+ gsave
+ /cyan? 1 0 0 0 testCMYKColorThrough def
+ /magenta? 0 1 0 0 testCMYKColorThrough def
+ /yellow? 0 0 1 0 testCMYKColorThrough def
+ /black? 0 0 0 1 testCMYKColorThrough def
+ grestore
+ /isCMYKSep? cyan? magenta? yellow? black? or or or def
+ /customColor? isCMYKSep? not def
+ end
+ } if
+ end defaultpacking setpacking
+%%EndResource
+%%BeginResource: procset Adobe_screens_AI5 1.2 0
+%%Title: (Adobe Illustrator (R) Version 5.0 Custom Halftone Screens ProcSet)
+%%Version: 1.2 0
+%%CreationDate: (03/24/93) ()
+%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
+userdict /defaultpacking currentpacking put true setpacking
+systemdict begin
+userdict /Adobe_screens_AI5 15 dict dup begin
+put
+/initialize
+{
+ Adobe_screens_AI5 begin
+ /screenid
+ deviceDPI 600 gt composite? not or
+ {
+ -1
+ }
+ {
+ deviceDPI currentScreenFreq
+ dup dup 60 ge exch 150 le and deviceDPI 300 le and
+ {
+ pop 60
+ } if
+ div 1.41421 div 0.5 add cvi
+ } ifelse
+ def
+
+ 2 screenid eq
+ {
+ /customsize 16 def
+ /customdata /customdata2 def
+ setcustomscreen
+ } if
+
+ 3 screenid eq
+ {
+ /customsize 24 def
+ /customdata /customdata3 def
+ setcustomscreen
+ } if
+
+ 4 screenid eq
+ {
+ /customsize 16 def
+ /customdata /customdata4 def
+ setcustomscreen
+ } if
+
+ 5 screenid eq
+ {
+ /customsize 20 def
+ /customdata /customdata5 def
+ setcustomscreen
+ } if
+
+ 6 screenid eq
+ {
+ /customsize 24 def
+ /customdata /customdata6 def
+ setcustomscreen
+ } if
+
+ 7 screenid eq
+ {
+ /customsize 28 def
+ /customdata /customdata7 def
+ setcustomscreen
+ } if
+
+ 8 screenid eq
+ {
+ /customsize 16 def
+ /customdata /customdata8 def
+ setcustomscreen
+ } if
+} def
+/terminate
+{
+ currentdict Adobe_screens_AI5 eq
+ {
+ end
+ } if
+} def
+/setcustomscreen
+{
+ deviceDPI customsize div 0
+ {
+ 1 add 2 div customsize mul cvi exch
+ 1 add 2 div customsize mul cvi exch
+ customsize mul add
+ customdata load exch get 256 div
+ } setscreen
+} def
+/customdata2 28 28 mul string def
+currentfile customdata2 readhexstring
+4180E8694988E2634382EA6B4B8AE061A01939C8A81737C2A21B3BCAAA1636C0
+F8795998F6775796FA7B5B9AF57656952ED8B80727D6B60F2FDABA0626D5B50E
+4E8DE6674786EE6F4F8EE5664685ED6EAD1434C6A61F3FCEAE1232C5A51E3ECD
+F3745493FE7F5F9EF1725291FD7E5E9D24D3B30C2CDEBE0222D1B10A2ADDBD04
+4483EB6C4C8BE1624281E96A4A89E364A31C3CCBAB1535C1A11A3AC9A91838C3
+FB7C5C9BF4755594F97A5A99F778589730DBBB0525D4B40D2DD9B90828D7B710
+508FE4654584EC6D4D8CE7684887EF70AF1131C4A41D3DCCAC1333C7A72040CF
+F0715190FC7D5D9CF2735392FF80609F21D0B00929DCBC0323D2B20B2BDFBF01
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000
+pop pop
+/customdata3 28 28 mul string def
+currentfile customdata3 readhexstring
+011DC7F5E73D0421CBF3E43A021EC8F6E83E0522CCF2E43A2B648BC4A0762F68
+8AC39E732C658CC5A177306989C29D72D5B6521A6192D9B55219608FD6B6531B
+6193DAB451185F8FFCEE440C28D2FCED430B27D1FDEF450C29D3FBEC420A26D0
+BEA77D366F83BCA77C356E87BFA87E377082BBA67B346D86145B99E0AE4A1259
+98DFB14E155C9AE1AD4A115897DEB04D0623CDF4E63C0420CAF8EA400723CDF4
+E53B031FC9F7E93F316988C19F752E678EC6A378326A88C09F742D668DC6A278
+DBB350175E91D8B8551C6395DCB24F165D90D7B7541C6294FAEC420925CFFFF1
+470E2BD5F9EB410824CEFEF0460D2AD4BAA57A336C85BEAA80397180B9A47933
+6B84BDA97F387181105797DDAF4C145A9CE3AB480F5696DDAE4B13599BE2AC49
+021EC8F6E83E0522CCF2E43A011DC7F5E73D0421CBF3E43A2C658CC5A1773069
+89C29D722B648BC4A0762F688AC39E73D6B6531B6193DAB451185F8FD5B6521A
+6192D9B55219608FFDEF450C29D3FBEC420A26D0FCEE440C28D2FCED430B27D1
+BFA87E377082BBA67B346D86BEA77D366F83BCA77C356E87155C9AE1AD4A1158
+97DEB04D145B99E0AE4A125998DFB14E0723CDF4E53B031FC9F7E93F0623CDF4
+E63C0420CAF8EA40326A88C09F742D668DC6A278316988C19F752E678EC6A378
+DCB24F165D90D7B7541C6294DBB350175E91D8B8551C6395F9EB410824CEFEF0
+460D2AD4FAEC420925CFFFF1470E2BD5B9A479336B84BDA97F387181BAA57A33
+6C85BEAA803971800F5696DDAE4B13599BE2AC49105797DDAF4C145A9CE3AB48
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000
+pop pop
+/customdata4 28 28 mul string def
+currentfile customdata4 readhexstring
+1139B8E0FAD2531B133BBAE2F8D05119417180A6AE9A7B4B437382A5AD987949
+C08867272F6F92CAC28A66262E6E90C8E8DE5F070F37B6F2EADD5E060E36B5F0
+FED6571F173FBEE6FDD5561E163EBDE5AB9E7F4F477786A1A99D7E4E467685A3
+2C6C96CEC68E62222A6A95CDC58D64240C34B3F6EED95A020A32B1F5EDDB5C04
+143CBBE3F9D1521A123AB9E1FBD3541C447483A4AC997A4A427281A7AF9B7C4C
+C38B65252D6D91C9C1896828307093CBEBDC5D050D35B4F1E9DF60081038B7F3
+FCD4551D153DBCE4FFD758201840BFE7A89C7D4D457584A2AA9F8050487887A0
+296994CCC48C63232B6B97CFC78F61210931B0F4ECDA5B030B33B2F7EFD85901
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000
+pop pop
+/customdata5 28 28 mul string def
+currentfile customdata5 readhexstring
+010B34C3EBFCF7CE3F16020C35C4EDFBF6CD3E15102552A4D6EADDB5632B1126
+54A5D5EADCB3622A3958768499C19E8C7C5E3A59778498C19D8B7B5DC8A99370
+47334C7587AFC9AA936F46324B7485AEF1E5BC6B1E0A2351A3D8F2E4BC6A1E09
+2351A2D7FFF9D14219050F38C6EFFEF9D04118040E37C6EFE8E0B7662D142856
+A8D3E7DFB7652D132856A7D4BF9C8E7F603D5B7A8195BE9A8E7E603C5B798297
+314A7389B2CCAD906D442F497289B1CBAC926E4508214FA1DBF4E2B9671B0720
+4EA0DAF4E3BA691C030D36C5EDFBF6CD3F16010C34C3ECFDF8CF4017122654A6
+D4E9DDB4622A112553A5D6EBDEB5642C3B59788397C09C8B7C5D3A58778599C2
+9E8C7D5FCAAB926E46314B7486AFC8AA947048334D7587B0F2E4BB691D082250
+A1D8F1E6BD6B1F0A2452A3D9FDF8CF4118030E36C5EEFFFAD1421A050F38C7F0
+E6DFB6642C132755A7D3E8E1B8662E152957A8D2BE9A8D7E5F3B5A798296BF9B
+8F80613D5C7B80952F487188B1CAAC916D443049728AB3CCAE906C43061F4D9F
+DAF3E2BA681C07214FA0DBF5E1B8671A00000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000
+pop pop
+/customdata6 28 28 mul string def
+currentfile customdata6 readhexstring
+081A44B6E0F2FDECC150250C091B45B6E1F3FCEBC04F240C1D336199C7D8DCD3
+A56C37221E33619AC8D7DBD2A46B36214864798091AEB1958C7E694C49657A81
+90ADB0948B7D684BB99D8475593C405C7888A1BEBA9E8574583B3F5B7888A0BD
+E4CBAA712E1215326098CFE8E4CCA9712D1114315F97CEE7F5F1C6552B040719
+43B5DFFAF6F0C6542A03061842B4DEF9FFEDC352270E0B1C47B8E3F4FEECC251
+260D0A1C46B7E2F4DAD5A76E39232035639CCAD5D9D4A66D38231F34629BC9D6
+AF938E806A4E4A677C838FABAE928D7F694D4A667B828FAC3E5A778AA3BFBC9F
+8772563A3D597689A2BEBB9F8673573A14305E97D1EAE6CDA76F2B0F132F5D96
+D0E9E5CDA8702C10051742B3DDFCF8EEC4522801041641B2DDFBF7EFC5532902
+091B45B6E1F3FCEBC04F240C081A44B6E0F2FDECC150250C1E33619AC8D7DBD2
+A46B36211D336199C7D8DCD3A56C372249657A8190ADB0948B7D684B48647980
+91AEB1958C7E694CBA9E8574583B3F5B7888A0BDB99D8475593C405C7888A1BE
+E4CCA9712D1114315F97CEE7E4CBAA712E1215326098CFE8F6F0C6542A030618
+42B4DEF9F5F1C6552B04071943B5DFFAFEECC251260D0A1C46B7E2F4FFEDC352
+270E0B1C47B8E3F4D9D4A66D38231F34629BC9D6DAD5A76E39232035639CCAD5
+AE928D7F694D4A667B828FACAF938E806A4E4A677C838FAB3D597689A2BEBB9F
+8673573A3E5A778AA3BFBC9F8772563A132F5D96D0E9E5CDA8702C1014305E97
+D1EAE6CDA76F2B0F041641B2DDFBF7EFC5532902051742B3DDFCF8EEC4522801
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000
+pop pop
+/customdata7 28 28 mul string def
+currentfile customdata7 readhexstring
+01061B44B7E1F5FEFBE6BD4A210C01071B45B8E1F6FDFBE6BC4A200B09132A54
+A7D1EAF5EED9B05D331609142B55A8D2EAF4EED9AF5C32161D2D3D6993C1CBE0
+CEC59B7140301E2E3D6A93C0CADFCDC49A713F3047576C7B828DA2B6A48F867E
+6F5A48576C7C828CA1B6A38F867E6E59BAAA958A78634E4451667A8498ADBAAB
+968977624E4350657A8398ADE3D4C99F7539251A273C6892C2D7E4D4C89E7539
+241A273B6891C1D6F8F2DDB460371005122A53A7D0ECF9F2DDB360360F051229
+53A6D0EBFFFDE8BE4C220D03081D46B9E3F7FFFCE7BD4B210D02071C46B8E2F7
+F3F0DBB15E34180B152C56A9D3E8F3EFDAB05D34170A142C55A9D2E9DFCCC69C
+7341321F2F3F6B94BFC9DECCC59C7241311F2E3E6A94BFCAB5A38E8780705B49
+596D7D808BA0B4A28D877F6F5B48586D7C818BA043506479859AAFBCAC978876
+614C424F64798499AEBBAB968977624D19263B6791C3D8E5D6C79D7337231825
+3A6690C3D7E5D5C79E74382304112952A5CFEDFAF0DBB25E350E03102851A5CE
+ECF9F1DCB25F360E01071B45B8E1F6FDFBE6BC4A200B01061B44B7E1F5FEFBE6
+BD4A210C09142B55A8D2EAF4EED9AF5C321609132A54A7D1EAF5EED9B05D3316
+1E2E3D6A93C0CADFCDC49A713F301D2D3D6993C1CBE0CEC59B71403048576C7C
+828CA1B6A38F867E6E5947576C7B828DA2B6A48F867E6F5ABAAB968977624E43
+50657A8398ADBAAA958A78634E4451667A8498ADE4D4C89E7539241A273B6891
+C1D6E3D4C99F7539251A273C6892C2D7F9F2DDB360360F05122953A6D0EBF8F2
+DDB460371005122A53A7D0ECFFFCE7BD4B210D02071C46B8E2F7FFFDE8BE4C22
+0D03081D46B9E3F7F3EFDAB05D34170A142C55A9D2E9F3F0DBB15E34180B152C
+56A9D3E8DECCC59C7241311F2E3E6A94BFCADFCCC69C7341321F2F3F6B94BFC9
+B4A28D877F6F5B48586D7C818BA0B5A38E8780705B49596D7D808BA0424F6479
+8499AEBBAB968977624D43506479859AAFBCAC978876614C18253A6690C3D7E5
+D5C79E74382319263B6791C3D8E5D6C79D73372303102851A5CEECF9F1DCB25F
+360E04112952A5CFEDFAF0DBB25E350E
+pop pop
+/customdata8 28 28 mul string def
+currentfile customdata8 readhexstring
+050F2747B6D6EEF8FEF4DCBC4D2D1507111D375F9EC6E0E9EBE6CCA4653D1F13
+2939556F8EA8C1D1D3C3AE9475573B2B4961717D808999B1B39B8B867F73634B
+B8A090827A6A5A42445C6C7C8492A2BAD8C8AA97785232222434546E8DACCADA
+F0E2CFA768401A0A0C1C365E9DC5E4F2FAF7DFBF50301802040E2646B5D5EDFC
+FFF5DDBD4E2E160806102848B7D7EFF9EAE7CDA5663E2014121E38609FC7E1E8
+D2C2AF9576583C2C2A3A56708FA9C0D0B29A8A878074644C4A62727E818898B0
+435B6B7B8593A3BBB9A19183796959412333536D8CADCBDBD9C9AB9677513121
+0B1B355D9CC4E5F3F1E3CEA6673F1909030D2545B4D4ECFDFBF6DEBE4F2F1701
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000
+pop pop
+end
+end
+defaultpacking setpacking
+%%EndResource
+%%BeginResource: procset Adobe_typography_AI5 1.0 1
+%%Title: (Typography Operators)
+%%Version: 1.0 1
+%%CreationDate:(6/10/1996) ()
+%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
+currentpacking true setpacking
+userdict /Adobe_typography_AI5 68 dict dup begin
+put
+/initialize
+{
+ begin
+ begin
+ Adobe_typography_AI5 begin
+ Adobe_typography_AI5
+ {
+ dup xcheck
+ {
+ bind
+ } if
+ pop pop
+ } forall
+ end
+ end
+ end
+ Adobe_typography_AI5 begin
+} def
+/terminate
+{
+ currentdict Adobe_typography_AI5 eq
+ {
+ end
+ } if
+} def
+/modifyEncoding
+{
+ /_tempEncode exch ddef
+ /_pntr 0 ddef
+ {
+ counttomark -1 roll
+ dup type dup /marktype eq
+ {
+ pop pop exit
+ }
+ {
+ /nametype eq
+ {
+ _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
+ put
+ }
+ {
+ /_pntr exch ddef
+ } ifelse
+ } ifelse
+ } loop
+ _tempEncode
+} def
+/havefont
+{
+ systemdict /languagelevel known
+ {
+ /Font resourcestatus dup
+ { exch pop exch pop }
+ if
+ }
+ {
+ systemdict /FontDirectory get 1 index known
+ { pop true }
+ {
+ systemdict /fileposition known
+ {
+ dup length 6 add exch
+ Ss 6 250 getinterval
+ cvs pop
+ Ss exch 0 exch getinterval
+ status
+ { pop pop pop pop true }
+ { false }
+ ifelse
+ }
+ {
+ pop false
+ }
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+} def
+/TE
+{
+ StandardEncoding 256 array copy modifyEncoding
+ /_nativeEncoding exch def
+} def
+/subststring {
+ exch 2 index exch search
+ {
+ exch pop
+ exch dup () eq
+ {
+ pop exch concatstring
+ }
+ {
+ 3 -1 roll
+ exch concatstring
+ concatstring
+ } ifelse
+ exch pop true
+ }
+ {
+ pop pop false
+ } ifelse
+} def
+/concatstring {
+ 1 index length 1 index length
+ 1 index add
+ string
+ dup 0 5 index putinterval
+ dup 2 index 4 index putinterval
+ 4 1 roll pop pop pop
+} def
+%
+/TZ
+{
+ dup type /arraytype eq
+ {
+ /_wv exch def
+ }
+ {
+ /_wv 0 def
+ } ifelse
+ /_useNativeEncoding exch def
+ 2 index havefont
+ {
+ 3 index
+ 255 string
+ cvs
+
+ dup
+ (_Symbol_)
+ eq
+ {
+ pop
+ 2 index
+ findfont
+
+ }
+ {
+ 1 index 0 eq
+ {
+ dup length 1 sub
+ 1 exch
+ getinterval
+
+ cvn
+ findfont
+ }
+ {
+ pop 2 index findfont
+ } ifelse
+ } ifelse
+ }
+ {
+ dup 1 eq
+ {
+ 2 index 64 string cvs
+ dup (-90pv-RKSJ-) (-83pv-RKSJ-) subststring
+ {
+ exch pop dup havefont
+ {
+ findfont false
+ }
+ {
+ pop true
+ } ifelse
+ }
+ {
+ pop dup
+ (-90ms-RKSJ-) (-Ext-RKSJ-) subststring
+ {
+ exch pop dup havefont
+ {
+ findfont false
+ }
+ {
+ pop true
+ } ifelse
+ }
+ {
+ pop pop true
+ } ifelse
+ } ifelse
+ {
+ 1 index 1 eq
+ {
+ /Ryumin-Light-Ext-RKSJ-V havefont
+ {/Ryumin-Light-Ext-RKSJ-V}
+ {/Courier}
+ ifelse
+ }
+ {
+ /Ryumin-Light-83pv-RKSJ-H havefont
+ {/Ryumin-Light-83pv-RKSJ-H}
+ {/Courier}
+ ifelse
+ } ifelse
+ findfont
+ [1 0 0.5 1 0 0] makefont
+ } if
+ }
+ {
+ /Courier findfont
+ } ifelse
+ } ifelse
+ _wv type /arraytype eq
+ {
+ _wv makeblendedfont
+ } if
+ dup length 10 add dict
+ begin
+ mark exch
+ {
+ 1 index /FID ne
+ {
+ def
+ } if
+ cleartomark mark
+ } forall
+ pop
+ /FontScript exch def
+ /FontDirection exch def
+ /FontRequest exch def
+ /FontName exch def
+ counttomark 0 eq
+ {
+ 1 _useNativeEncoding eq
+ {
+ /Encoding _nativeEncoding def
+ } if
+ cleartomark
+ }
+ {
+ /Encoding load 256 array copy
+ modifyEncoding /Encoding exch def
+ } ifelse
+ FontName currentdict
+ end
+ definefont pop
+} def
+/tr
+{
+ _ax _ay 3 2 roll
+} def
+/trj
+{
+ _cx _cy _sp _ax _ay 6 5 roll
+} def
+/a0
+{
+ /Tx
+ {
+ dup
+ currentpoint 3 2 roll
+ tr _psf
+ newpath moveto
+ tr _ctm _pss
+ } ddef
+ /Tj
+ {
+ dup
+ currentpoint 3 2 roll
+ trj _pjsf
+ newpath moveto
+ trj _ctm _pjss
+ } ddef
+} def
+/a1
+{
+W B
+} def
+/e0
+{
+ /Tx
+ {
+ tr _psf
+ } ddef
+ /Tj
+ {
+ trj _pjsf
+ } ddef
+} def
+/e1
+{
+W F
+} def
+/i0
+{
+ /Tx
+ {
+ tr sp
+ } ddef
+ /Tj
+ {
+ trj jsp
+ } ddef
+} def
+/i1
+{
+ W N
+} def
+/o0
+{
+ /Tx
+ {
+ tr sw rmoveto
+ } ddef
+ /Tj
+ {
+ trj swj rmoveto
+ } ddef
+} def
+/r0
+{
+ /Tx
+ {
+ tr _ctm _pss
+ } ddef
+ /Tj
+ {
+ trj _ctm _pjss
+ } ddef
+} def
+/r1
+{
+W S
+} def
+/To
+{
+ pop _ctm currentmatrix pop
+} def
+/TO
+{
+ iTe _ctm setmatrix newpath
+} def
+/Tp
+{
+ pop _tm astore pop _ctm setmatrix
+ _tDict begin
+ /W
+ {
+ } def
+ /h
+ {
+ } def
+} def
+/TP
+{
+ end
+ iTm 0 0 moveto
+} def
+/Tr
+{
+ _render 3 le
+ {
+ currentpoint newpath moveto
+ } if
+ dup 8 eq
+ {
+ pop 0
+ }
+ {
+ dup 9 eq
+ {
+ pop 1
+ } if
+ } ifelse
+ dup /_render exch ddef
+ _renderStart exch get load exec
+} def
+/iTm
+{
+ _ctm setmatrix _tm concat
+ _shift aload pop _lineorientation 1 eq { exch } if translate
+ _scale aload pop _lineorientation 1 eq _yokoorientation 1 eq or { exch } if scale
+} def
+/Tm
+{
+ _tm astore pop iTm 0 0 moveto
+} def
+/Td
+{
+ _mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
+} def
+/iTe
+{
+ _render -1 eq
+ {
+ }
+ {
+ _renderEnd _render get dup null ne
+ {
+ load exec
+ }
+ {
+ pop
+ } ifelse
+ } ifelse
+ /_render -1 ddef
+} def
+/Ta
+{
+ pop
+} def
+/Tf
+{
+ 1 index type /nametype eq
+ {
+ dup 0.75 mul 1 index 0.25 mul neg
+ } if
+ /_fontDescent exch ddef
+ /_fontAscent exch ddef
+ /_fontSize exch ddef
+ /_fontRotateAdjust _fontAscent _fontDescent add 2 div neg ddef
+ /_fontHeight _fontSize ddef
+ findfont _fontSize scalefont setfont
+} def
+/Tl
+{
+ pop neg 0 exch
+ _leading astore pop
+} def
+/Tt
+{
+ pop
+} def
+/TW
+{
+ 3 npop
+} def
+/Tw
+{
+ /_cx exch ddef
+} def
+/TC
+{
+ 3 npop
+} def
+/Tc
+{
+ /_ax exch ddef
+} def
+/Ts
+{
+ 0 exch
+ _shift astore pop
+ currentpoint
+ iTm
+ moveto
+} def
+/Ti
+{
+ 3 npop
+} def
+/Tz
+{
+ count 1 eq { 100 } if
+ 100 div exch 100 div exch
+ _scale astore pop
+ iTm
+} def
+/TA
+{
+ pop
+} def
+/Tq
+{
+ pop
+} def
+/Tg
+{
+ pop
+} def
+/TG
+{
+ pop
+} def
+/Tv
+{
+ /_lineorientation exch ddef
+} def
+/TV
+{
+ /_charorientation exch ddef
+} def
+/Ty
+{
+ dup /_yokoorientation exch ddef 1 sub neg Tv
+} def
+/TY
+{
+ pop
+} def
+/T~
+{
+ Tx
+} def
+/Th
+{
+ pop pop pop pop pop
+} def
+/TX
+{
+ pop
+} def
+/Tk
+{
+ _fontSize mul 1000 div
+ _lineorientation 0 eq { neg 0 } { 0 exch } ifelse
+ rmoveto
+ pop
+} def
+/TK
+{
+ 2 npop
+} def
+/T*
+{
+ _leading aload pop
+ _lineorientation 0 ne { exch } if
+ Td
+} def
+/T*-
+{
+ _leading aload pop
+ _lineorientation 0 ne { exch } if
+ exch neg exch neg
+ Td
+} def
+/T-
+{
+ _ax neg 0 rmoveto
+ _lineorientation 1 eq _charorientation 0 eq and { 1 TV _hyphen Tx 0 TV } { _hyphen Tx } ifelse
+} def
+/T+
+{
+} def
+/TR
+{
+ _ctm currentmatrix pop
+ _tm astore pop
+ iTm 0 0 moveto
+} def
+/TS
+{
+ currentfont 3 1 roll
+ /_Symbol_ findfont _fontSize scalefont setfont
+
+ 0 eq
+ {
+ Tx
+ }
+ {
+ Tj
+ } ifelse
+ setfont
+} def
+/Xb
+{
+ pop pop
+} def
+/Tb /Xb load def
+/Xe
+{
+ pop pop pop pop
+} def
+/Te /Xe load def
+/XB
+{
+} def
+/TB /XB load def
+currentdict readonly pop
+end
+setpacking
+%
+/X^
+{
+ currentfont 5 1 roll
+ dup havefont
+ {
+ findfont _fontSize scalefont setfont
+ }
+ {
+ pop
+ exch
+ } ifelse
+ 2 index 0 eq
+ {
+ Tx
+ }
+ {
+ Tj
+ } ifelse
+ pop pop
+ setfont
+} def
+/T^ /X^ load def
+%%EndResource
+%%BeginResource: procset AGM_Gradient_Sep 1.0 0
+%%Title: (AGM Gradient Procset)
+%%Version: 1.0 0
+%%CreationDate: (4/26/96) ()
+%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
+userdict /defaultpacking currentpacking put true setpacking
+userdict /AGM_Gradient_Sep 5 dict dup begin put
+/AGM_Gradient_Sep_private 100 dict def
+/initialize{
+ AGM_Gradient_Sep begin
+ AGM_Gradient_Sep_private begin
+ _compositeJob{
+ initializeSinglePassSeps
+ }{
+ initializeMultiPassSeps
+ }ifelse
+ initializeSeps
+ AGM_Gradient_private begin
+ /_fillSD newSpotDict def
+ /_rampSD newSpotDict def
+ /_nCustomColorSD nd
+ end
+ AGM_Gradient_Sep_private
+ {
+ dup xcheck 1 index type /arraytype eq and
+ {
+ bind
+ }if
+ pop pop
+ }forall
+ AGM_Gradient_Sep
+ {
+ dup xcheck 1 index type /arraytype eq and
+ {
+ bind
+ }if
+ pop pop
+ }forall
+ end
+
+ currentdict readonly pop
+ end
+}def
+/terminate{
+ currentdict AGM_Gradient_Sep eq{
+ end
+ }if
+}def
+AGM_Gradient_Sep_private begin
+/initializeSeps{
+ /currentoverprint { _of } def
+ _noImage not _level2PS not and{
+ /linealFill{
+ currentoverprint{
+ 0 0 1 1 rectfill
+ }{
+ mySave
+ 8 setImageParms
+ _color{
+ _nCustomColorSD begin
+ cyan magenta yellow black
+
+ _spotColor{
+ spot1/tintImage spot1/tintValue get 1 exch sub makeByte8 put
+ spot2/tintImage spot2/tintValue get 1 exch sub makeByte8 put
+ }if
+ end
+
+ 4{
+ makeByte8 4 1 roll
+ }repeat
+ true 4 _nCustomColorSD ncolorimage
+ }{
+ _nCustomColorSD/black get 1 exch sub makeByte8
+ _nCustomColorSD bwImage
+ }ifelse
+ myRestore
+ }ifelse
+ }def
+ }if
+ /_whiteBytes 1 makeByte8 pt
+ /knockOut{
+ _noImage _level2PS or currentoverprint or{
+ gsave
+ false setoverprint
+ 1 setgray
+ 0 0 1 1 rectfill
+ grestore
+ }{
+ 8 setImageParms _whiteBytes /_image load 5 execImage
+ }ifelse
+ }def
+ /newSpotDict{
+ 11 dict dup begin
+ /nSpots 2 def
+ /spot1 7 dict def
+ /spot2 7 dict def
+ end
+ }def
+ /initSpotData
+ {
+ begin
+ /name nd
+ /tintImage nd
+ /tintValue nd
+ /spot_C nd
+ /spot_M nd
+ /spot_Y nd
+ /spot_K nd
+ end
+ }def
+ /initSpotDict{
+ begin
+ /cyanInk nd
+ /magentaInk nd
+ /yellowInk nd
+ /blackInk nd
+ /cyan nd
+ /magenta nd
+ /yellow nd
+ /black nd
+ spot1 initSpotData
+ spot2 initSpotData
+ end
+ }def
+ /copySpotDict{
+ /_dst xp
+ begin
+ cyanInk magentaInk yellowInk blackInk
+ cyan magenta yellow black
+ spot1 spot2
+ end
+ _dst begin
+ /spot1 spot1 maxlength dict def
+ /spot2 spot2 maxlength dict def
+ spot2 copy pop
+ spot1 copy pop
+ /black xd
+ /yellow xd
+ /magenta xd
+ /cyan xd
+ /blackInk xd
+ /yellowInk xd
+ /magentaInk xd
+ /cyanInk xd
+ end
+ }def
+ /setCustomColor
+ {
+ 1 index /Black eq{
+ 6 1 roll 5 npop
+ 1 exch sub
+ setgray
+ }{
+ 6 1 roll _ccAry1 astore exch
+ dup null eq{
+ pop 0
+ }if
+ setcustomcolor
+ }ifelse
+ }def
+ /setCStop{
+ /_colorStyle exch pt
+
+ _colorStyle 0 eq{
+ 0 0 0
+ 4 -1 roll
+ 1 exch sub
+ _spotColor{
+ /_colorStyle 3 pt
+ /Black
+ 1 index
+ 1 exch sub
+ }if
+ }if
+ _colorStyle 2 eq{
+ 3 npop
+ }if
+ _rampSD _fillSD copySpotDict
+
+ _colorStyle 4 eq{
+ pop
+ 9 2 roll 3 npop 6 -2 roll
+ } if
+
+ _colorStyle 3 eq _colorStyle 4 eq or{
+
+ _fillSD begin
+ /_spot1 spot1 pt
+ /_spot2 spot2 pt
+ end
+
+ exch dup _spot1/name get eq{
+ _spot1 _spot2
+ }{
+ _spot2 _spot1
+ }ifelse
+ begin
+ begin
+ /name xd
+ 1 exch sub /tintValue xd
+ 4{
+ tintValue mul 4 1 roll
+ }repeat
+ _spotColor not{
+ /tintValue null def
+ }if
+ end
+ /tintValue 0 def
+ end
+ }if
+ _fillSD nsetcustomcolor
+ }def
+ /renderCMYK{
+ spot1/name get null eq
+ spot2/name get null eq and
+ dup not{
+ pop
+ spot1 spotConverted
+ }if
+ dup not{
+ pop
+ spot2 spotConverted
+ }if
+ }def
+ /currentInk{
+ true
+ _inRipSep{
+ currentcolorspace 0 get
+ dup /DeviceGray eq
+ 1 index /DeviceCMYK eq or{
+ pop
+ currentcmykcolor add add add 0 eq{
+ pop false
+ }if
+ }{
+ /Separation eq{
+ currentcolor 0 eq{
+ pop false
+ }if
+ }if
+ }ifelse
+ }{
+ currentgray 1 eq{
+ pop false
+ }if
+ }ifelse
+ }def
+ /currentInkN{
+
+ _nCustomColorSD begin
+ /_spot1 spot1 pt
+ /_spot2 spot2 pt
+ renderCMYK
+ end
+ {
+ currentInk
+ }{
+ gsave
+ _spot1 begin
+ name null ne{
+ spot_C spot_M spot_Y spot_K name tintValue setCustomColor
+ currentInk
+ }{
+ false
+ }ifelse
+ end
+ _spot2 begin
+ name null ne{
+ spot_C spot_M spot_Y spot_K name tintValue setCustomColor
+ currentInk
+ }{
+ false
+ }ifelse
+ end
+ grestore
+
+ or
+ } ifelse
+ }def
+ /fill_ /fill load def
+ /fillOvp{
+ currentoverprint{
+ _inRipSep{
+ currentcolorspace 0 get
+ dup /DeviceGray eq
+ 1 index /DeviceCMYK eq or{
+ pop
+ currentcmykcolor add add add 0 eq{
+ newpath
+ }if
+ }{
+ /Separation eq{
+ currentcolor 0 eq{
+ newpath
+ }if
+ }if
+ }ifelse
+ }{
+ currentgray 1 eq{
+ newpath
+ }if
+ }ifelse
+ }if
+ fill_
+ }def
+ /fill{
+ _nCustomColorSD begin
+ /_spot1 spot1 pt
+ /_spot2 spot2 pt
+ renderCMYK
+ end
+
+ {
+ fillOvp
+ }{
+ _spot1 begin
+ gsave
+ name null ne{
+ spot_C spot_M spot_Y spot_K name tintValue setCustomColor
+ }{
+ 1 setgray
+ }ifelse
+ fillOvp
+ grestore
+ end
+ _spot2 begin
+ name null ne{
+ gsave
+ true setoverprint
+ spot_C spot_M spot_Y spot_K name tintValue setCustomColor
+ fillOvp
+ grestore
+ }if
+ end
+ newpath
+ }ifelse
+ }def
+ /expandSpot{
+ _spotColor{
+ /_len xp
+ _rampSD begin
+ spot1 begin
+ tintImage null ne{
+ tintImage _len expandOne /tintImage xd
+ }if
+ end
+ spot2 begin
+ tintImage null ne{
+ tintImage _len expandOne /tintImage xd
+ }if
+ end
+ end
+ }{
+ pop
+ }ifelse
+ }def
+ /rampImage{
+ currentoverprint{
+ rectImage
+ }{
+ _enabledSmoothShade{
+ fillRamp
+ }{
+ _color{
+ _rampSD begin
+ /cyanInk _cyanData 0 ne def
+ /magentaInk _magentaData 0 ne def
+ /yellowInk _yellowData 0 ne def
+ /blackInk _blackData 0 ne def
+ end
+
+ _nSamples setImageParms
+ _nSamples expandSpot
+ _cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
+ true 4 _rampSD ncolorimage
+ }{
+ _rampSD begin
+ /cyanInk false def
+ /magentaInk false def
+ /yellowInk false def
+ /blackInk true def
+ end
+ _nSamples setImageParms
+ _blackData _rampSD bwImage
+ }ifelse
+ }ifelse
+ }ifelse
+ }def
+ /nsetcustomcolor where{
+ pop
+ }{
+ /nsetcustomcolor
+ {
+ /_nCustomColorSD xp
+ _nCustomColorSD begin
+ 4 copy
+ /black xd
+ /yellow xd
+ /magenta xd
+ /cyan xd
+ 4 copy
+ 0 ne /blackInk xd
+ 0 ne /yellowInk xd
+ 0 ne /magentaInk xd
+ 0 ne /cyanInk xd
+ end
+ setcmykcolor
+ }def
+ }ifelse
+ /nsetcustomcolorend where{
+ pop
+ }{
+ /nsetcustomcolorend
+ {
+ /_nCustomColorSD null pt
+ }def
+ }ifelse
+}def
+/initializeSinglePassSeps{
+ /_decodeNorm [0 1] pt
+ /_decodeInvert [1 0] pt
+ /spotConverted
+ {
+ begin
+ name null eq{
+ false
+ }{
+ tintValue null eq tintImage null eq and{
+ true
+ }{
+ _inDistiller{
+ false
+ }{
+ false
+ currentpagedevice/SeparationColorNames get{name eq or}forall
+ not
+ }ifelse
+ }ifelse
+ }ifelse
+ end
+ }def
+ /dictImage
+ {
+ 20 dict dup begin
+ /Dict xd
+ /Decode xd
+ /DataSource xd
+ /ImageMatrix xd
+ /BitsPerComponent xd
+ /Height xd
+ /Width xd
+ /ImageType 1 def
+ Dict
+ end
+ /_image load 1 execImage
+ }def
+ /bwImage{
+ begin
+ gsave
+ currentoverprint{
+ blackInk{
+ [/Separation /Black /DeviceGray{}] setcolorspace
+ _decodeInvert dictImage
+ }{
+ 5 npop
+ }ifelse
+ }{
+ /DeviceGray setcolorspace
+ _decodeNorm dictImage
+ }ifelse
+ grestore
+ end
+ }def
+ /ncolorimage where{
+ pop
+ }{
+ /ncolorimage{
+ begin
+ renderCMYK{
+ cyanInk
+ magentaInk and
+ yellowInk and
+ blackInk and
+ not
+ currentoverprint
+ and{
+ pop pop
+ gsave
+ cyanInk{
+ 8 copy
+ [/Separation /Cyan /DeviceGray{}] setcolorspace
+ 3 npop
+ _decodeNorm dictImage
+ }if
+ magentaInk{
+ 8 copy
+ [/Separation /Magenta /DeviceGray{}] setcolorspace
+ 4 -1 roll
+ 3 npop
+ _decodeNorm dictImage
+ }if
+ yellowInk{
+ 8 copy
+ [/Separation /Yellow /DeviceGray{}] setcolorspace
+ 4 -2 roll
+ 3 npop
+ _decodeNorm dictImage
+ }if
+ blackInk{
+ 4 -3 roll
+ [/Separation /Black /DeviceGray{}] setcolorspace
+ 3 npop
+ _decodeNorm dictImage
+ }{
+ 8 npop
+ }ifelse
+ grestore
+ }{
+ /_colorimage load 10 execImage
+ }ifelse
+ }{
+ 6 npop
+ gsave
+ spot1 begin
+ name null ne tintImage null ne and{
+ [/Separation name /DeviceGray{}] setcolorspace
+ 4 copy
+ tintImage
+ name /Black eq{
+ _decodeNorm
+ }{
+ _decodeInvert
+ }ifelse
+ dictImage
+ }{
+ 1 setgray fill
+ }ifelse
+ end
+ spot2 begin
+ true setoverprint
+ name null ne tintImage null ne and{
+ [/Separation name /DeviceGray{}] setcolorspace
+ tintImage
+ name /Black eq{
+ _decodeNorm
+ }{
+ _decodeInvert
+ }ifelse
+ dictImage
+ }{
+ 4 npop
+ 1 setgray fill
+ }ifelse
+ end
+ grestore
+ }ifelse
+ end
+ }def
+ }ifelse
+ /getRampColorSpace{
+
+ /_renderCMYK _rampSD begin renderCMYK end pt
+
+ _renderCMYK not{
+ _rampSD begin
+ [/DeviceN
+ [
+ spot1 begin
+ name null ne tintImage null ne and{
+ name
+ }if
+ end
+ spot2 begin
+ name null ne tintImage null ne and{
+ name
+ }if
+ end
+ ]
+ _inDistiller {
+ /DeviceCMYK [
+ spot1 begin
+ name null ne tintImage null ne and{
+ spot_C spot_M spot_Y spot_K 1
+ }{
+ 0 0 0 0 0
+ }ifelse
+ end
+ spot2 begin
+ name null ne tintImage null ne and{
+ spot_C spot_M spot_Y spot_K 2
+ }{
+ 0 0 0 0 0
+ }ifelse
+ end
+ 5 1 roll 6 -2 roll add
+ dup 1 eq {
+ pop
+ 8 /index cvx 1 /exch cvx /sub cvx
+ 9 1 /roll cvx
+ }{
+ 2 eq {
+ 8 /index cvx 1 /exch cvx /sub cvx
+ 10 1 /roll cvx
+ }if
+ }ifelse
+ 4 1 /roll cvx 5 -2 /roll cvx
+ 8 /index cvx /mul cvx /exch cvx 9 /index cvx /mul cvx /add cvx 7 1 /roll cvx
+ 3 1 /roll cvx 4 -2 /roll cvx
+ 7 /index cvx /mul cvx /exch cvx 8 /index cvx /mul cvx /add cvx 6 1 /roll cvx
+ 2 1 /roll cvx 3 -2 /roll cvx
+ 6 /index cvx /mul cvx /exch cvx 7 /index cvx /mul cvx /add cvx 5 1 /roll cvx
+ 5 /index cvx /mul cvx /exch cvx 6 /index cvx /mul cvx /add cvx 4 1 /roll cvx
+ 6 -2 /roll cvx /pop cvx /pop cvx
+ ] cvx bind
+ }{
+ /DeviceCMYK {}
+ }ifelse
+ ] setcolorspace
+ end
+ /_nColorSpace currentcolorspace pt
+ }if
+
+ _nSamples 1 gt{
+ /_ndx 0 pt
+ [blendColor] cvx exec
+ }if
+ _renderCMYK{
+ /_C0 [currentcolor] pt
+ /_C0_Space currentcolorspace pt
+ }{
+ /_C0 [
+ _nCustomColorSD begin
+ spot1 begin
+ name null ne{
+ tintValue
+ }if
+ end
+ spot2 begin
+ name null ne{
+ tintValue
+ }if
+ end
+ end
+ ] pt
+ /_C0_Space _nColorSpace pt
+ }ifelse
+
+ _nSamples 1 gt{
+ /_ndx _nSamples 1 sub pt
+ [blendColor] cvx exec
+ }if
+ _renderCMYK{
+ /_C1 [currentcolor] pt
+ /_C1_Space currentcolorspace pt
+ }{
+ /_C1 [
+ _nCustomColorSD begin
+ spot1 begin
+ name null ne{
+ tintValue
+ }if
+ end
+ spot2 begin
+ name null ne{
+ tintValue
+ }if
+ end
+ end
+ ] pt
+ /_C1_Space _nColorSpace pt
+ }ifelse
+
+ /_rampColorSpace _C0_Space pt
+ _spotColor{
+ nsetcustomcolorend
+ }if
+ }def
+}def
+/initializeMultiPassSeps{
+ /invertXfer{
+ [
+ {
+ 1 exch sub
+ }/exec load systemdict /currenttransfer get exec /exec load
+ ] cvx systemdict /settransfer get exec
+ }def
+ /ccThrough{
+ gsave
+ 1 setCustomColor
+ currentcmykcolor
+ grestore
+ add add add 0 ne
+ }def
+ /spotConverted
+ {
+ begin
+ _isCMYKSep not{
+ false
+ }{
+ name null eq{
+ false
+ }{
+ tintValue null eq tintImage null eq and{
+ true
+ }{
+ spot_C spot_M spot_Y spot_K name ccThrough
+ }ifelse
+ }ifelse
+ }ifelse
+ end
+ }def
+ /spotChannel
+ {
+ _isCMYKSep{
+ pop false
+ }{
+ /_spotDict xp
+ _spotDict/name get null eq{
+ false
+ }{
+ _spotDict/spot_C get
+ _spotDict/spot_M get
+ _spotDict/spot_Y get
+ _spotDict/spot_K get
+ _spotDict/name get
+ ccThrough
+ }ifelse
+ }ifelse
+ }def
+ /getChannelData
+ {
+ _isCMYKSep dup{
+ pop renderCMYK
+ }if
+ {
+ _blackPlate{
+ 4 1 roll 3 npop blackInk
+ }{
+ _yellowPlate{
+ 4 2 roll 3 npop yellowInk
+ }{
+ _magentaPlate{
+ 4 3 roll 3 npop magentaInk
+ }{
+ 3 npop cyanInk
+ }ifelse
+ }ifelse
+ }ifelse
+ {
+ true /nonZeroData
+ }{
+ true /zeroData
+ }ifelse
+ }{
+ 4 npop
+ spot1/name get null ne
+ spot1 spotChannel and{
+ spot1/tintImage get dup null ne{
+ false /nonZeroData
+ }{
+ pop false /noData
+ }ifelse
+ }{
+ spot2/name get null ne
+ spot2 spotChannel and{
+ spot2/tintImage get dup null ne{
+ false /nonZeroData
+ }{
+ pop false /noData
+ }ifelse
+ }{
+ false /noData
+ }ifelse
+ }ifelse
+ }ifelse
+ }def
+ /renderChannelData
+ {
+ /_tmp xp
+ _tmp /nonZeroData ne currentoverprint and{
+ pop
+ _tmp /zeroData eq{pop}if
+ 4 npop
+ }{
+ _tmp /nonZeroData eq{
+ {
+ invertXfer
+ }if
+ systemdict/image
+ get 5 execImage
+ }{
+ pop
+ _tmp /zeroData eq{pop}if
+ 4 npop
+ knockOut
+ }ifelse
+ }ifelse
+ }def
+ /bwImage{
+ begin
+ gsave
+ dup dup dup
+ getChannelData
+ exch pop false exch
+ renderChannelData
+ grestore
+ end
+ }def
+ /ncolorimage{
+ begin
+ pop pop
+ gsave
+ spot2/name get null ne spot2 spotChannel and{
+ true setoverprint
+ }if
+ getChannelData
+ renderChannelData
+ grestore
+ end
+ }def
+ /getRampColorSpace{
+
+ /_renderCMYK _rampSD begin renderCMYK end pt
+
+ _nSamples 1 gt{
+ /_ndx 0 pt
+ [blendColor] cvx exec
+ }if
+
+ _renderCMYK{
+ /_C0 [currentcolor] pt
+ /_C0_Space currentcolorspace pt
+ }{
+ /_C0 [
+ _nCustomColorSD begin
+ 0
+ spot1 begin
+ name null ne
+ tintValue null ne and
+ spot1 spotChannel and{
+ pop tintValue
+ }if
+ end
+ spot2 begin
+ name null ne
+ tintValue null ne and
+ spot2 spotChannel and{
+ pop tintValue
+ }if
+ end
+ 1 exch sub
+ end
+ ] pt
+ /_C0_Space /DeviceGray pt
+ }ifelse
+
+ _nSamples 1 gt{
+ /_ndx _nSamples 1 sub pt
+ [blendColor] cvx exec
+ }if
+
+ _renderCMYK{
+ /_C1 [currentcolor] pt
+ /_C1_Space currentcolorspace pt
+ }{
+ /_C1 [
+ _nCustomColorSD begin
+ 0
+ spot1 begin
+ name null ne
+ tintValue null ne and
+ spot1 spotChannel and{
+ pop tintValue
+ }if
+ end
+ spot2 begin
+ name null ne
+ tintValue null ne and
+ spot2 spotChannel and{
+ pop tintValue
+ }if
+ end
+ 1 exch sub
+ end
+ ] pt
+ /_C1_Space /DeviceGray pt
+ }ifelse
+
+ /_rampColorSpace _C0_Space pt
+ _spotColor{
+ nsetcustomcolorend
+ }if
+ }def
+}def
+end
+end
+defaultpacking setpacking
+%%EndResource
+%%BeginResource: procset AGM_Gradient 1.0 0
+%%Title: (AGM Gradient Procset)
+%%Version: 1.0 0
+%%CreationDate: (4/26/96) ()
+%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
+userdict /defaultpacking currentpacking put true setpacking
+userdict /AGM_Gradient 20 dict dup begin put
+/AGM_Gradient_private 201 dict def
+/initialize
+{
+ AGM_Gradient begin
+ AGM_Gradient_private begin
+ initializeVars
+
+ /bd systemdict/mark get def
+ /ed
+ _level2PS
+ {
+ (>>)
+ }{
+ (counttomark 2 idiv dup dict begin {def} repeat pop currentdict end)
+ } ifelse
+ cvx def
+
+ _level2PS{
+ initializeLev2
+ }{
+ initializeLev1
+ }ifelse
+
+ queryDevice
+
+ initializeRectFill
+ initializeShading
+ initializeOps
+ _producingSeps{
+ AGM_Gradient_Sep/initialize get exec
+ }{
+ initializeComposite
+ }ifelse
+ _illustrator{
+ /f{}def
+ /F{}def
+ /s{}def
+ /S{}def
+ /b{}def
+ /B{}def
+ }if
+ /image where{
+ /image get /_image xd
+ }if
+ /colorimage where{
+ /colorimage get /_colorimage xd
+ }if
+ AGM_Gradient_private
+ {
+ dup xcheck 1 index type /arraytype eq and
+ {
+ bind
+ }if
+ pop pop
+ }forall
+ AGM_Gradient
+ {
+ dup xcheck 1 index type /arraytype eq and
+ {
+ bind
+ }if
+ pop pop
+ }forall
+ end
+
+ currentdict readonly pop
+ end
+}def
+/initializeAI
+{
+ pop pop
+ AGM_Gradient/AGM_Gradient_private get /_illustrator true put
+ AGM_Gradient/initialize get exec
+ AGM_Gradient begin
+}def
+/unload{
+ systemdict/languagelevel known{
+ systemdict/languagelevel get 2 ge{
+ userdict/AGM_Gradient_Sep 2 copy known{
+ undef
+ }{
+ pop pop
+ }ifelse
+ userdict/AGM_Gradient 2 copy known{
+ undef
+ }{
+ pop pop
+ }ifelse
+ }if
+ }if
+}def
+/terminate{
+ currentdict AGM_Gradient eq{
+ end
+ }if
+}def
+
+AGM_Gradient_private begin
+/initializeVars{
+ /_d255 256 array def
+ 0 1 255{
+ _d255 exch dup 255 div put
+ }bind for
+ /_d255- 256 array def
+ 0 1 255{
+ _d255- exch 1 _d255 2 index get sub put
+ }bind for
+ /_sSave nd
+ /_dUserSpace matrix defaultmatrix def
+ /_bUMatrix matrix def
+ /_imageMatrix matrix def
+ /_saveMatrix matrix def
+ /_xm matrix def
+ /_ccAry1 5 array def
+ /_bbox 4 array pt
+ /_level2PS
+ systemdict/languagelevel known dup{
+ pop systemdict/languagelevel get 2 ge
+ }if
+ def
+ /_level3PS
+ _level2PS systemdict/shfill known and
+ def
+ currentdict /_illustrator known not{
+ /_illustrator false def
+ }if
+
+}def
+/initializeOps
+{
+ AGM_Gradient begin
+ currentdict/Bc known not{
+ /Bc{
+
+ _renderFlag 2 eq _enabledSmoothShade or{
+ 6 npop
+ }{
+ pushBSpace
+ _rampIndex 0 eq{
+ pop pop
+ setCStop
+ }if
+ linealFill
+ popBSpace
+ }ifelse
+
+ }def
+ }if
+
+ currentdict/Bg known not{
+ /Bg{
+ 10 npop
+ /_gradName xp
+ /_renderFlag xp
+ /_enabledSmoothShade false pt
+
+ _renderFlag 2 ne{
+
+ _illustrator{
+ _of setoverprint
+ }if
+
+ /_enabledSmoothShade
+ _level3PS{
+ _usingSmoothShade
+ _producingSeps not
+ currentoverprint not or and
+ _noImage not and
+ }{
+ false
+ }ifelse
+ pt
+
+ _illustrator _eo and _renderFlag 3 eq or{
+ eoclip
+ }{
+ clip
+ }ifelse
+
+ _gradNames _gradName 2 copy known{
+ get
+ mark exch aload pop
+ /_gradType xp
+ 1 sub dup /_rampIndex xp
+ /_maxRampIndex xp
+ mark exch aload pop
+ 0 0
+ }if
+ pop pop
+ getRampData
+ }{
+ mark mark
+ }ifelse
+ }def
+ }if
+
+ currentdict/Bm known not{
+ /Bm{
+ _renderFlag 2 ne{
+ _gradType 0 eq{
+ linealRamp
+ }{
+ radialGrad
+ }ifelse
+ }{
+ 6 npop
+ }ifelse
+ }def
+ }if
+
+ currentdict/Bh known not{
+ /Bh{
+ 2 npop
+ /_yHi xp
+ /_xHi xp
+ /_radHilite _xHi 0 ne _yHi 0 ne or pt
+ }def
+ }if
+
+ currentdict/Bn known not{
+ /Bn{
+ AGM_Gradient_private begin
+ dict /_gradNames xp
+ end
+ }def
+ }if
+
+ currentdict/Bd known not{
+ /Bd{
+ AGM_Gradient begin
+ AGM_Gradient_private begin
+ /_nColorsBd xp
+ /_gradType xp
+ /_gradName xp
+ }def
+ }if
+
+ currentdict/BD known not{
+ /BD{
+ currentdict/_gradNames known not{
+ /_gradNames 20 dict def
+ }if
+ ] _nColorsBd _gradType
+ ] _gradName exch /_gradNames xput
+ end
+ end
+ }def
+ }if
+
+ currentdict/Bb known not{
+ /Bb{
+
+ AGM_Gradient/AGM_Gradient_private get /_illustrator get not{
+ AGM_Gradient begin
+ }if
+ AGM_Gradient_private begin
+ _producingSeps{
+ AGM_Gradient_Sep/AGM_Gradient_Sep_private get begin
+ }if
+ mySave
+ }def
+ }if
+
+ currentdict/BB known not{
+ /BB{
+
+ /_tmp xp
+ cleartomark cleartomark
+
+ _tmp dup
+ _renderFlag
+
+ myRestore
+
+ _producingSeps{
+ end
+ }if
+
+ _illustrator dup
+ end
+ not {
+ end
+ }if
+
+ {
+ 2 ne exch 0 gt and{
+ 2 eq{
+ s
+ }{
+ S
+ }ifelse
+ }{
+ pop newpath
+ }ifelse
+ }{
+ pop newpath
+ }ifelse
+
+
+ }def
+ }if
+
+ currentdict/Xm known not{
+ /Xm{
+ _xm astore pop
+ }def
+ }if
+
+ end
+}def
+/queryDevice{
+ /_inDistiller
+ systemdict /currentdistillerparams known
+ def
+ /_inRipSep
+ _level2PS{
+ currentpagedevice/Separations 2 copy known{
+ get
+ }{
+ pop pop false
+ }ifelse
+ }{
+ false
+ }ifelse
+ _inDistiller or
+ def
+ /_noImage /lv1Fix where{
+ pop lv1Fix
+ }{
+ false
+ }ifelse
+ def
+ /_useShells where{
+ /_useShells get /_usingShells xp
+ }{
+ /_usingShells false def
+ }ifelse
+
+ /_useSmoothShade where{
+ pop
+ }{
+ /_useSmoothShade false def
+ }ifelse
+ /_forceToCMYK where{
+ pop
+ }{
+ /_forceToCMYK false def
+ }ifelse
+ /_cyanPlate 1 0 0 0 testCMYKColorThrough def
+ /_magentaPlate 0 1 0 0 testCMYKColorThrough def
+ /_yellowPlate 0 0 1 0 testCMYKColorThrough def
+ /_blackPlate 0 0 0 1 testCMYKColorThrough def
+ /_compositeJob
+ _cyanPlate _magentaPlate and _yellowPlate and _blackPlate and
+ def
+ /_isCMYKSep
+ _cyanPlate _magentaPlate or _yellowPlate or _blackPlate or
+ def
+ /_compositeSpotDevice where{
+ pop
+ }{
+ /_compositeSpotDevice _compositeJob not _inRipSep or{
+ 1
+ }{
+ 0
+ }ifelse
+ def
+ }ifelse
+ /_producingSeps _compositeSpotDevice 0 ne def
+ /_deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt def
+ /_dpiThreshold where{
+ pop
+ }{
+ /_dpiThreshold 600 def
+ }ifelse
+ /_screenFreqThreshold where{
+ pop
+ }{
+ /_screenFreqThreshold 150 def
+ }ifelse
+ /_contoneDevice where{
+ pop
+ }{
+ /_contoneDevice false def
+ }ifelse
+ /_subSampleOK
+ _deviceDPI _dpiThreshold le
+ currentScreenFreq _screenFreqThreshold le and
+ _contoneDevice not and
+ def
+}def
+/initializeRectFill{
+ /rectfill where dup{
+ exch pop not _producingSeps or
+ }{
+ not
+ }ifelse
+ {
+ /rectfill{
+ gsave
+ newpath
+ 4 2 roll moveto
+ 1 index 0 rlineto
+ 0 1 index rlineto
+ 1 index neg 0 rlineto
+ pop pop
+ closepath
+ fill
+ grestore
+ }def
+ }if
+}def
+/initializeLev1{
+ /currentScreenFreq{
+ currentscreen pop pop
+ }def
+ /_byte 1 string def
+ /colorimage where{
+ pop
+ }{
+ /colorimage{
+ pop pop
+ /_blackTmp xp
+ /_yellowTmp xp
+ /_magentaTmp xp
+ /_cyanTmp xp
+ /_cnt 0 pt
+ [
+ _byte dup 0
+ _cyanTmp
+ /_cnt cvx /get cvx _d255 /exch cvx /get cvx .3 /mul cvx
+ _magentaTmp
+ /_cnt cvx /get cvx _d255 /exch cvx /get cvx .59 /mul cvx
+ _yellowTmp
+ /_cnt cvx /get cvx _d255 /exch cvx /get cvx .11 /mul cvx
+ _blackTmp
+ /_cnt cvx /get cvx _d255 /exch cvx /get cvx
+ /add cvx /add cvx /add cvx 1 /exch cvx /sub cvx
+ /dup cvx 0 /lt cvx{
+ pop 0
+ }/if cvx
+ /dup cvx 1 /gt cvx{
+ pop 1
+ }/if cvx
+ 255 /mul cvx /cvi cvx
+ 256 /mod cvx
+ /dup cvx 0 /lt cvx{
+ pop 0
+ }/if cvx
+ /put cvx
+ /_cnt dup cvx 1 /add cvx /pt cvx
+ ] cvx
+ bind
+ /_image load 5 execImage
+ }def
+ }ifelse
+}def
+/initializeLev2{
+ /level2ScreenFreq{
+ begin
+ 60
+ HalftoneType 1 eq{
+ pop Frequency
+ }if
+ HalftoneType 2 eq{
+ pop GrayFrequency
+ }if
+ HalftoneType 5 eq{
+ pop Default level2ScreenFreq
+ }if
+ end
+ }def
+ /currentScreenFreq{
+ currenthalftone level2ScreenFreq
+ }def
+}def
+/initializeShading{
+ _useSmoothShade _level3PS and{
+ /_usingSmoothShade true pt
+ initializeLev3_Ops
+ }{
+ /_usingSmoothShade false pt
+ }ifelse
+}def
+/initializeLev3_Ops
+{
+ /initShFill{
+ /_index _gradType 0 eq {0}{_maxRampIndex 1 sub} ifelse pt
+ /_rampFuncsArray _maxRampIndex array pt
+ /_boundsArray _maxRampIndex 1 sub array pt
+ /_encodeArray _maxRampIndex 2 mul array pt
+ /_beginCoord _rampPoint pt
+ /_colorSpace null pt
+ /_firstFill _rampIndex _maxRampIndex eq pt
+ /_lastFill false pt
+ }def
+ /linealShFill{
+ popBSpace
+ _xm aload pop pushBSpace
+
+ /_size _index 1 add pt
+ _size _maxRampIndex lt {
+ /_rampFuncsArray _rampFuncsArray 0 _size getinterval pt
+ /_boundsArray _boundsArray 0 _size 1 sub getinterval pt
+ /_encodeArray _encodeArray 0 _size 2 mul getinterval pt
+ }if
+
+ bd
+ /ShadingType 2
+ /ColorSpace _colorSpace
+ _rgbInCMYK{
+ /Function [
+ _cData sampFunc
+ _mData sampFunc
+ _yData sampFunc
+ _kData sampFunc
+ ]
+ }{
+ /Function
+ bd
+ /FunctionType 3
+ /Domain [0 1]
+ /Functions _rampFuncsArray
+ /Bounds _boundsArray
+ /Encode _encodeArray
+ ed
+ }ifelse
+ /Extend [_firstFill _lastFill]
+ /Domain [0 1]
+ /Coords [_beginCoord 0 _endCoord 0]
+ ed
+ shfill
+ }def
+
+ /radialShFill{
+ /_size _maxRampIndex _index sub pt
+ _size _maxRampIndex lt {
+ /_rampFuncsArray _rampFuncsArray _index _size getinterval pt
+ /_boundsArray _boundsArray _index _size 1 sub getinterval pt
+ /_encodeArray _encodeArray _index 2 mul _size 2 mul getinterval pt
+ }if
+
+ /_rampLen _beginCoord _endCoord sub pt
+ bd
+ /ShadingType 3
+ /ColorSpace _colorSpace
+ _rgbInCMYK{
+ /Function [
+ _cData sampFunc
+ _mData sampFunc
+ _yData sampFunc
+ _kData sampFunc
+ ]
+ }{
+ /Function
+ bd
+ /FunctionType 3
+ /Domain [0 1]
+ /Functions _rampFuncsArray
+ /Bounds _boundsArray
+ /Encode _encodeArray
+ ed
+ }ifelse
+ /Extend [_lastFill _firstFill]
+ /Domain [0 1]
+ /Coords [_xHi _rampLen mul _yHi _rampLen mul _endCoord 0 0 _beginCoord]
+ ed
+ shfill
+
+ _radHilite{
+ _xHi _rampLen mul _yHi _rampLen mul translate
+ }if
+ }def
+
+ %
+ /sampFunc{
+ /_tmp exch pt
+ bd
+ _tmp length 1 eq {
+ _tmp 0 get
+ /_tmp 2 string pt
+ dup _tmp 0 3 -1 roll put
+ _tmp 1 3 -1 roll put
+ }if
+ /FunctionType 0
+ /Order 1
+ /Size [_tmp length]
+ /Domain [0 1]
+ /BitsPerSample 8
+ /DataSource _tmp
+ /Range [0 1]
+ ed
+ }def
+
+ /fillRamp{
+
+
+ /_invert _midPoint 0.5 lt pt
+ _rampIndex _maxRampIndex eq {
+ initShFill
+ }if
+
+ getRampColorSpace
+
+ _colorSpace null eq{
+ /_colorSpace _rampColorSpace pt
+ }{
+ _colorSpace _rampColorSpace ne _rgbInCMYK or{
+ /_index _index 1
+ _gradType 0 eq{
+ sub pt
+ linealShFill
+ }{
+ add pt
+ radialShFill
+ }ifelse
+ initShFill
+ /_colorSpace _rampColorSpace pt
+ } if
+ }ifelse
+ /_endCoord _endPoint pt
+ /_rgbInCMYK false pt
+ _producingSeps _forceToCMYK or _rgbRamp and {
+ _spotColor{
+ _renderCMYK
+ }{
+ _isCMYKSep
+ }ifelse
+ }{
+ false
+ }ifelse
+ {
+ _compositeJob{
+ /_rgbInCMYK true pt
+ _cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
+ dup length string copy /_kData exch pt
+ dup length string copy /_yData exch pt
+ dup length string copy /_mData exch pt
+ dup length string copy /_cData exch pt
+ }{
+ _rampFuncsArray _index
+ _cyanPlate{_cyanData}if
+ _magentaPlate{_magentaData}if
+ _yellowPlate{_yellowData}if
+ _blackPlate{_blackData}if
+ _nSamples expandOne
+ sampFunc
+ dup begin /Decode [1 0] def end
+ put
+ /_invert false pt
+ }ifelse
+ }{
+ _rampFuncsArray _index
+ bd
+ /FunctionType 2
+ /Domain [0 1]
+ /N 0.5 log _invert{1 _midPoint sub}{_midPoint}ifelse log div
+ _gradType 0 eq{
+ _invert{/C1}{/C0}ifelse _C0
+ _invert{/C0}{/C1}ifelse _C1
+ }{
+ _invert{/C0}{/C1}ifelse _C1
+ _invert{/C1}{/C0}ifelse _C0
+ }ifelse
+ ed
+ put
+ }ifelse
+
+ _rampIndex 1 ne{
+ _boundsArray _index _gradType 1 eq{1 sub}if _endCoord put
+ } if
+
+ 0 1 _invert {exch}if
+ _encodeArray _index 2 mul 1 add 3 -1 roll put
+ _encodeArray _index 2 mul 3 -1 roll put
+ _rampIndex 1 eq {
+ /_lastFill true pt
+ _gradType 0 eq{
+ linealShFill
+ }{
+ radialShFill
+ }ifelse
+ }if
+ /_index _index 1
+ _gradType 0 eq{
+ add pt
+ }{
+ sub pt
+ }ifelse
+ }def
+}def
+/initializeComposite{
+ /bwImage{
+ pop /_image load 5 execImage
+ }def
+ /rampImage{
+ _enabledSmoothShade{
+ fillRamp
+ }{
+ _color{
+ _nSamples setImageParms
+
+
+ _rgbRamp _forceToCMYK not and{
+ _redData _greenData _blueData _nSamples 3 expandColor
+ true 3 null ncolorimage
+ }{
+ _cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
+ true 4 null ncolorimage
+ }ifelse
+ }{
+ _nSamples setImageParms _blackData null bwImage
+ }ifelse
+ }ifelse
+ }def
+ /setCStop{
+ /_colorStyle exch pt
+ _colorStyle 0 eq{
+ 1 exch sub
+ 0 0 0
+ 4 -1 roll
+ }if
+
+ _colorStyle 2 eq{
+ _forceToCMYK{
+ 3 npop setcmykcolor
+ }{
+ setrgbcolor 4 npop
+ }ifelse
+ }if
+
+ _colorStyle 3 eq{
+ 1 exch sub /_tmp xp
+ pop
+ 4{
+ _tmp mul 4 1 roll
+ }repeat
+ }if
+
+ _colorStyle 4 eq{
+ _forceToCMYK{
+ 6 npop setcmykcolor
+ }{
+ 3 -1 roll pop pop
+ 1 exch sub /_tmp xp
+ 3{
+ 1 exch sub _tmp mul 1 exch sub 3 1 roll
+ }repeat
+ setrgbcolor
+ 4 npop
+ }ifelse
+ }if
+ _colorStyle 2 ne _colorStyle 4 ne and{
+ null nsetcustomcolor
+ }if
+ }def
+ /nsetcustomcolor
+ {
+ pop setcmykcolor
+ }def
+ /nsetcustomcolorend
+ {
+ }def
+ /ncolorimage{
+ pop
+ /_colorimage load 10 execImage
+ }def
+ _noImage not _level2PS not and{
+ /linealFill{
+ 8 setImageParms
+ _color{
+ currentcmykcolor
+ 4{
+ makeByte8 4 1 roll
+ }repeat
+ true 4 null ncolorimage
+ }{
+ currentgray makeByte8 null bwImage
+ }ifelse
+ }def
+ }if
+ /getRampColorSpace{
+ _nSamples 1 gt{
+ /_ndx 0 pt
+ [blendColor] cvx exec
+ }if
+ /_C0 [currentcolor] pt
+ /_C0_Space currentcolorspace pt
+
+ _nSamples 1 gt{
+ /_ndx _nSamples 1 sub pt
+ [blendColor] cvx exec
+ }if
+ /_C1 [currentcolor] pt
+ /_C1_Space currentcolorspace pt
+
+ /_rampColorSpace _C0_Space pt
+
+ _spotColor{
+ nsetcustomcolorend
+ }if
+ }def
+}def
+/npop{
+ {pop}repeat
+}def
+/xd{
+ exch def
+}def
+/nd{
+ null def
+}def
+/pt{
+ AGM_Gradient_private 3 1 roll put
+}def
+/xp{
+ exch pt
+}def
+/xput{
+ dup load dup length exch maxlength eq{
+ dup dup load dup
+ length 2 mul dict copy def
+ }if
+ load begin
+ def
+ end
+}def
+/mySave{
+ save /_sSave xp
+}def
+/myRestore{
+ _sSave type /savetype eq{
+ _sSave restore
+ }if
+}def
+/gMark{
+ counttomark 2 add -1 roll
+}def
+/execImage{
+ /_tmp xp
+ {
+ exec
+ }stopped{
+ $error /errorname get /undefinedresult ne{
+ stop
+ }{
+ _tmp npop
+ }ifelse
+ }if
+}def
+/pushBSpace{
+ newpath gsave
+ _bUMatrix astore concat
+}def
+/popBSpace{
+ grestore
+}def
+/makeByte8{
+ /_tmp 0 pt
+ 255 mul cvi
+ 8 string 8{
+ dup _tmp 3 index put
+ /_tmp _tmp 1 add pt
+ }repeat
+ exch pop
+}def
+/setImageParms{
+ 1 8 2 index 0 0 1 0 0 _imageMatrix astore
+}def
+/linealFill{
+ 0 0 1 1 rectfill
+}def
+/testCMYKColorThrough{
+ gsave
+ setcmykcolor currentcmykcolor
+ grestore
+ add add add 0 ne
+}def
+/expandOne {
+ /_tmp xp
+ dup type /stringtype ne{
+ _tmp string
+ exch
+ dup 0 ne{
+ 255 mul cvi
+ 0 1 _tmp 1 sub{
+ 3 copy
+ exch put pop
+ }for
+ }if
+ pop
+ }if
+}def
+/expandColor{
+ /_channels xp
+ /_len xp
+ _channels{
+ _len expandOne _channels 1 roll
+ }repeat
+}def
+/blendColor{
+
+ _color{
+ _rgbRamp _producingSeps not and _forceToCMYK not and{
+ _redData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+ _greenData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+ _blueData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+ /setrgbcolor cvx
+ }{
+ _cyanData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+ _magentaData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+ _yellowData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+ _blackData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+
+ _spotColor{
+ _rampSD begin
+ /_rampSD cvx /begin cvx
+
+ spot1 begin
+ tintImage dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255- /exch cvx /get cvx
+ }{
+ dup null ne{
+ name type /nametype ne{
+ 1 exch sub
+ }if
+ }if
+ }ifelse
+ end
+ /spot1 cvx /tintValue 3 -1 /roll cvx /put cvx
+
+ spot2 begin
+ tintImage dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255- /exch cvx /get cvx
+ }{
+ dup null ne{
+ name type /nametype ne{
+ 1 exch sub
+ }if
+ }if
+ }ifelse
+ end
+ /spot2 cvx /tintValue 3 -1 /roll cvx /put cvx
+ /end cvx
+ end
+ /_rampSD cvx
+ /nsetcustomcolor cvx
+ }{
+ /setcmykcolor cvx
+ }ifelse
+ }ifelse
+ }{
+ _blackData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+
+ _enabledSmoothShade{
+ 1 /exch cvx /sub cvx 0 0 0 4 -1 /roll cvx /setcmykcolor cvx
+ }{
+ /setgray cvx
+ }ifelse
+ }ifelse
+}def
+/useRectImage{
+ _subSampleOK _enabledSmoothShade not and{
+ {
+ mark
+ 0 1 dtransform atan cvi 90 mod 0 eq
+ 1 0 dtransform atan cvi 90 mod 0 eq
+ } stopped
+ {
+ cleartomark
+ false
+ }
+ {
+ and exch pop
+ } ifelse
+ }{
+ false
+ }ifelse
+}def
+/linealImage{
+ _noImage{
+ rectImage
+ }{
+ _producingSeps{
+ AGM_Gradient_Sep/AGM_Gradient_Sep_private get
+ /rampImage get exec
+ }{
+ useRectImage{
+ rectImage
+ }{
+ rampImage
+ }ifelse
+ }ifelse
+ }ifelse
+}def
+/linealRamp{
+ pushBSpace
+ _ramp{
+ linealImage
+ }{
+ linealFill
+ }ifelse
+ popBSpace
+ /_rampIndex _rampIndex 1 sub pt
+ _rampIndex 0 gt{
+ getRampData
+ }if
+}def
+/radialGrad{
+ /_usingShells currentoverprint _producingSeps and _usingShells or pt
+ /_firstShell true pt
+ _enabledSmoothShade not{
+ currentoverprint _producingSeps and{
+
+ newpath
+ clippath pathbbox
+ 1 add 4 1 roll
+ 1 add 4 1 roll
+ 1 sub 4 1 roll
+ 1 sub 4 1 roll
+ _bbox astore pop
+
+ newpath
+ _bbox 0 get _bbox 1 get moveto
+ _bbox 2 get _bbox 1 get lineto
+ _bbox 2 get _bbox 3 get lineto
+ _bbox 0 get _bbox 3 get lineto
+ closepath
+ 6 copy
+ gsave _bUMatrix astore concat
+ 1 0 moveto 0 0 1 0 360 arc closepath
+ eoclip fill
+ popBSpace
+ }{
+ fill
+ }ifelse
+ }if
+ pushBSpace
+
+ _radHilite{
+ _xHi _yHi _bUMatrix idtransform /_yHi xp /_xHi xp
+ _rampPoint 1 lt{
+ 1 _rampPoint sub dup _xHi mul exch _yHi mul translate
+ }if
+ }if
+ _rampIndex{
+ radialRamp
+ /_rampIndex _rampIndex 1 sub pt
+ _rampIndex 0 gt{
+ getRampData
+ }if
+ }repeat
+
+ popBSpace
+
+}def
+/getNSamples{
+ 0 exch
+ {
+ dup type /stringtype eq{
+ length exch pop exit
+ }if
+ pop
+ }forall
+ dup 0 eq{
+ pop 1
+ }if
+}def
+/getRampData{
+ /_rampType gMark pt
+ /_color _rampType 0 gt pt
+ /_ccRGB _rampType 5 eq _rampType 6 eq or pt
+ /_rgbRamp _rampType 4 eq _ccRGB or pt
+ /_ccProcess _rampType 2 eq _rampType 3 eq or pt
+ _producingSeps{
+ _rampSD initSpotDict
+ /_spotColor _ccProcess _ccRGB or pt
+ }{
+ /_spotColor false pt
+ }ifelse
+ /_ramp true pt
+ 100 div /_rampPoint xp
+ 100 div /_midPoint xp
+
+ dup /_colorStyle xp
+ _colorStyle 0 eq{
+ 2
+ }{
+ _colorStyle 1 eq{
+ 5
+ }{
+ _colorStyle 2 eq{
+ 8
+ }{
+ _colorStyle 3 eq{
+ _producingSeps{
+ _rampSD /spot1 get begin
+ /name 3 index def
+ /spot_K 4 index def
+ /spot_Y 5 index def
+ /spot_M 6 index def
+ /spot_C 7 index def
+ end
+ }if
+ 7
+ }{
+ _producingSeps{
+ _rampSD/spot1 get begin
+ /name 4 index def
+ /spot_K 8 index def
+ /spot_Y 9 index def
+ /spot_M 10 index def
+ /spot_C 11 index def
+ end
+ }if
+ 11
+ } ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ /_tmp xp
+ _tmp index 100 div /_endPoint xp
+
+ _gradType 1 eq{
+ _tmp 1 add index 100 div /_midPoint xp
+ }if
+
+ _producingSeps{
+ _tmp 2 add index /_nextColorStyle xp
+ _nextColorStyle 3 eq{
+ /_tmp _tmp 4 add pt
+ _tmp index dup
+ _rampSD/spot1 get /name get ne{
+ _rampSD /spot2 get begin
+ /name xd
+ /spot_K _tmp 2 add index def
+ /spot_Y _tmp 3 add index def
+ /spot_M _tmp 4 add index def
+ /spot_C _tmp 5 add index def
+ end
+ }{
+ pop
+ }ifelse
+ }if
+ _nextColorStyle 4 eq{
+ /_tmp _tmp 5 add pt
+ _tmp index dup
+ _rampSD/spot1 get /name get ne{
+ _rampSD /spot2 get begin
+ /name xd
+ /spot_K _tmp 5 add index def
+ /spot_Y _tmp 6 add index def
+ /spot_M _tmp 7 add index def
+ /spot_C _tmp 8 add index def
+ end
+ }{
+ pop
+ }ifelse
+ }if
+ }if
+ _rampType 3 eq _rampType 6 eq or{
+ /_tint2Data gMark pt
+ }if
+ _ccProcess _ccRGB or{
+ /_tint1Data gMark pt
+ }if
+ _rgbRamp{
+ /_blueData gMark pt
+ /_greenData gMark pt
+ /_redData gMark pt
+ }if
+
+ _producingSeps{
+ _ccProcess _ccRGB or{
+ _rampType 3 eq _rampType 6 eq or{
+ _rampSD /spot2 get begin
+ /tintImage _gradType 0 eq{
+ _tint2Data
+ }{
+ _tint1Data
+ }ifelse
+ def
+ name null eq{
+ /name /Black def
+ }if
+ end
+ }if
+ _rampSD /spot1 get begin
+ /tintImage _gradType 0 eq _rampType 2 eq or _rampType 5 eq or{
+ _tint1Data
+ }{
+ _tint2Data
+ }ifelse
+ def
+ _rampType 2 eq _rampType 5 eq or{
+ name null eq{
+ /name _rampSD/spot2 get /name get def
+ /spot_C _rampSD/spot2 get /spot_C get def
+ /spot_M _rampSD/spot2 get /spot_M get def
+ /spot_Y _rampSD/spot2 get /spot_Y get def
+ /spot_K _rampSD/spot2 get /spot_K get def
+ _rampSD/spot2 get /name null put
+ }if
+ }{
+ name null eq{
+ /name /Black def
+ }if
+ }ifelse
+ end
+ }if
+ }if
+ /_blackData gMark pt
+ _rampType 0 gt{
+ counttomark 4 add -3 roll
+ /_yellowData xp
+ /_magentaData xp
+ /_cyanData xp
+ }if
+ _ramp{
+ /_nSamples
+ [
+ _rampType 0 eq {_blackData}if
+ _rampType 1 eq {_cyanData _magentaData _yellowData _blackData}if
+ _rampType 2 eq {_cyanData _magentaData _yellowData _blackData _tint1Data}if
+ _rampType 3 eq {_cyanData _magentaData _yellowData _blackData _tint1Data _tint2Data}if
+ _rampType 4 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData}if
+ _rampType 5 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data}if
+ _rampType 6 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data _tint2Data}if
+ ] getNSamples pt
+ _enabledSmoothShade not {/_ramp _nSamples 1 gt pt} if
+ } if
+
+ setCStop
+}def
+/rectImage{
+ gsave
+ /_sInc 1 pt
+ /_bInc 1 _nSamples div pt
+ /_nSubSamples _nSamples pt
+ /_optimize false pt
+
+ _subSampleOK{
+ /_uRampLen 1 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt pt
+ /_pChange _uRampLen 0 eq{0}{_nSamples _uRampLen div}ifelse pt
+
+ _pChange .5 gt dup /_optimize xp{
+ /_nSubSamples _uRampLen 2 div round cvi dup 1 le{pop 2}if pt
+ /_bInc 1 _nSubSamples div pt
+ /_sInc _nSamples 1 sub _nSubSamples 1 sub div pt
+ }if
+ }if
+ 0
+ _nSubSamples
+ [
+ /dup cvx
+ _optimize {
+ /round cvx /cvi cvx
+ } if
+ /_ndx /exch cvx /pt cvx
+ blendColor
+ 0 0 _bInc 1 /rectfill cvx
+ _bInc 0 /translate cvx
+ _sInc /add cvx
+ ] cvx
+ bind
+ repeat
+ pop
+ _spotColor{
+ nsetcustomcolorend
+ }if
+ grestore
+}def
+/radialInit{
+ /_nRadSamples _nSamples dup 0 eq{pop 1}if pt
+ /_sInc -1 pt
+ /_rampLen _rampPoint _endPoint sub pt
+ /_bInc _rampLen _nSamples div neg pt
+ /_optimize false pt
+ _subSampleOK{
+ /_uRampLen
+ _rampLen 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
+ 0 _rampLen dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
+ 2 copy lt{
+ exch
+ }if pop
+ pt
+ /_pChange
+ _uRampLen 0 eq{
+ 0
+ }{
+ _nSamples _uRampLen div
+ }ifelse
+ pt
+ _pChange .5 gt dup /_optimize xp{
+ /_nRadSamples _uRampLen 2 div round cvi dup 1 le{pop 2}if pt
+ /_bInc _rampLen _nRadSamples div neg pt
+ /_sInc _nSamples 1 sub _nRadSamples 1 sub div neg pt
+ }if
+ }if
+ _radHilite{
+ /_xBCInc _xHi _rampLen mul _nRadSamples div pt
+ /_yBCInc _yHi _rampLen mul _nRadSamples div pt
+ }if
+}def
+/radialRamp{
+ _enabledSmoothShade{
+ fillRamp
+ }{
+ /_saveMatrix _saveMatrix currentmatrix def
+
+ radialInit
+
+ %
+ %
+ true
+ _producingSeps _rgbRamp not and{
+ _nSamples 1 gt{
+ pop
+ /_ndx 0 pt
+ [blendColor] cvx exec
+ currentInkN
+ /_ndx _nSamples 1 sub pt
+ [blendColor] cvx exec
+ currentInkN
+ or
+ }if
+ }if
+ {
+ _rampPoint
+
+ _nSamples 1 sub
+
+ _nRadSamples
+ [
+ /dup cvx
+
+ _optimize{
+ /round cvx /cvi cvx
+ }if
+
+ /_ndx /exch cvx /pt cvx
+
+ _usingShells{
+ /_firstShell cvx{
+ /_firstShell false pt
+ }{
+ 0 0 3 index 360 0 arcn fill
+ }/ifelse cvx
+ }if
+
+ blendColor
+
+ _usingShells{
+ 0 0 3 /index cvx 0 360 /arc cvx
+ }{
+ 0 0 3 /index cvx 0 360 /arc cvx /fill cvx
+ }ifelse
+
+ /exch cvx _bInc /add cvx /exch cvx
+
+ _sInc /add cvx
+
+ _radHilite{
+ _xBCInc _yBCInc /translate cvx
+ }if
+ ] cvx bind
+ repeat
+
+ pop pop
+ }{
+ _usingShells{
+ 0 0 _rampPoint 360 0 arcn fill
+ }if
+ }ifelse
+
+ _saveMatrix setmatrix
+
+ _radHilite{
+ _xHi _rampLen mul _yHi _rampLen mul translate
+ }if
+
+ _usingShells _rampIndex 1 eq and{
+ fill
+ }if
+
+ _spotColor{
+ nsetcustomcolorend
+ }if
+ }ifelse
+}def
+end
+end
+defaultpacking setpacking
+%%EndResource
+%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0
+userdict /Adobe_ColorImage_AI6 known not
+{
+ userdict /Adobe_ColorImage_AI6 53 dict put
+} if
+userdict /Adobe_ColorImage_AI6 get begin
+/initialize {
+ Adobe_ColorImage_AI6 begin
+ Adobe_ColorImage_AI6 {
+ dup type /arraytype eq {
+ dup xcheck {
+ bind
+ } if
+ } if
+ pop pop
+ } forall
+} def
+/terminate { end } def
+currentdict /Adobe_ColorImage_AI6_Vars known not {
+ /Adobe_ColorImage_AI6_Vars 41 dict def
+} if
+Adobe_ColorImage_AI6_Vars begin
+ /plateindex -1 def
+ /_newproc null def
+ /_proc1 null def
+ /_proc2 null def
+ /sourcearray 4 array def
+ /_ptispace null def
+ /_ptiname null def
+ /_pti0 0 def
+ /_pti1 0 def
+ /_ptiproc null def
+ /_ptiscale 0 def
+ /_pticomps 0 def
+ /_ptibuf 0 string def
+ /_gtigray 0 def
+ /_cticmyk null def
+ /_rtirgb null def
+ /XIEnable true def
+ /XIType 0 def
+ /XIEncoding 0 def
+ /XICompression 0 def
+ /XIChannelCount 0 def
+ /XIBitsPerPixel 0 def
+ /XIImageHeight 0 def
+ /XIImageWidth 0 def
+ /XIImageMatrix null def
+ /XIRowBytes 0 def
+ /XIFile null def
+ /XIBuffer1 null def
+ /XIBuffer2 null def
+ /XIBuffer3 null def
+ /XIDataProc null def
+ /XIColorSpace /DeviceGray def
+ /XIColorValues 0 def
+ /XIPlateList false def
+end
+/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def
+/ci6image systemdict /image get def
+/ci6curtransfer systemdict /currenttransfer get def
+/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def
+/ci6foureq {
+ 4 index ne {
+ pop pop pop false
+ }{
+ 4 index ne {
+ pop pop false
+ }{
+ 4 index ne {
+ pop false
+ }{
+ 4 index eq
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6testplate {
+ Adobe_ColorImage_AI6_Vars begin
+ /plateindex -1 def
+ /setcmykcolor where {
+ pop
+ gsave
+ 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
+ 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
+ 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
+ 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
+ grestore
+ 1 0 0 0 ci6foureq {
+ /plateindex 0 def
+ }{
+ 0 1 0 0 ci6foureq {
+ /plateindex 1 def
+ }{
+ 0 0 1 0 ci6foureq {
+ /plateindex 2 def
+ }{
+ 0 0 0 1 ci6foureq {
+ /plateindex 3 def
+ }{
+ 0 0 0 0 ci6foureq {
+ /plateindex 5 def
+ } if
+ } ifelse
+ } ifelse
+ } ifelse
+ } ifelse
+ pop pop pop pop
+ } if
+ plateindex
+ end
+} def
+/ci6concatprocs {
+ /packedarray where {
+ pop dup type /packedarraytype eq 2 index type
+ /packedarraytype eq or
+ }{
+ false
+ } ifelse
+ {
+ /_proc2 exch cvlit def
+ /_proc1 exch cvlit def
+ _proc1 aload pop
+ _proc2 aload pop
+ _proc1 length
+ _proc2 length add
+ packedarray cvx
+ }{
+ /_proc2 exch cvlit def
+ /_proc1 exch cvlit def
+ /_newproc _proc1 length _proc2 length add array def
+ _newproc 0 _proc1 putinterval
+ _newproc _proc1 length _proc2 putinterval
+ _newproc cvx
+ } ifelse
+} def
+/ci6istint {
+ type /arraytype eq
+} def
+/ci6isspot {
+ dup type /arraytype eq {
+ dup length 1 sub get /Separation eq
+ }{
+ pop false
+ } ifelse
+} def
+/ci6spotname {
+ dup ci6isspot {dup length 2 sub get}{pop ()} ifelse
+} def
+/ci6altspace {
+ aload pop pop pop ci6colormake
+} def
+/ci6numcomps {
+ dup /DeviceGray eq {
+ pop 1
+ }{
+ dup /DeviceRGB eq {
+ pop 3
+ }{
+ /DeviceCMYK eq {
+ 4
+ }{
+ 1
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6marksplate {
+ dup /DeviceGray eq {
+ pop plateindex 3 eq
+ }{
+ dup /DeviceRGB eq {
+ pop plateindex 5 ne
+ }{
+ dup /DeviceCMYK eq {
+ pop plateindex 5 ne
+ }{
+ dup ci6isspot {
+ /findcmykcustomcolor where {
+ pop
+ dup length 2 sub get
+ 0.1 0.1 0.1 0.1 5 -1 roll
+ findcmykcustomcolor 1 setcustomcolor
+ systemdict /currentgray get exec
+ 1 ne
+ }{
+ pop plateindex 5 ne
+ } ifelse
+ }{
+ pop plateindex 5 ne
+ } ifelse
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6colormake {
+ dup ci6numcomps
+ exch 1 index 2 add 1 roll
+ dup 1 eq {pop}{array astore} ifelse
+ exch
+} def
+/ci6colorexpand {
+ dup ci6spotname exch
+ dup ci6istint {
+ ci6altspace
+ exch 4 1 roll
+ }{
+ 1 3 1 roll
+ } ifelse
+} def
+/ci6colortint {
+ dup /DeviceGray eq {
+ 3 1 roll 1 exch sub mul 1 exch sub exch
+ }{
+ dup /DeviceRGB eq {
+ 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch
+ }{
+ dup /DeviceCMYK eq {
+ 3 1 roll {1 index mul exch} forall pop 4 array astore exch
+ }{
+ 3 1 roll mul exch
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6colortocmyk {
+ dup /DeviceGray eq {
+ pop 1 exch sub 0 0 0 4 -1 roll 4 array astore
+ }{
+ dup /DeviceRGB eq {
+ pop aload pop _rgbtocmyk 4 array astore
+ }{
+ dup /DeviceCMYK eq {
+ pop
+ }{
+ ci6altspace ci6colortint ci6colortocmyk
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6makeimagedict {
+ 7 dict begin
+ /ImageType 1 def
+ /Decode exch def
+ /DataSource exch def
+ /ImageMatrix exch def
+ /BitsPerComponent exch def
+ /Height exch def
+ /Width exch def
+ currentdict end
+} def
+/ci6stringinvert {
+ 0 1 2 index length 1 sub {
+ dup 2 index exch get 255 exch sub 2 index 3 1 roll put
+ } for
+} def
+/ci6stringknockout {
+ 0 1 2 index length 1 sub {
+ 255 2 index 3 1 roll put
+ } for
+} def
+/ci6stringapply {
+ 0 1 4 index length 1 sub {
+ dup
+ 4 index exch get
+ 3 index 3 1 roll
+ 3 index exec
+ } for
+ pop exch pop
+} def
+/ci6walkrgbstring {
+ 0 3 index
+ dup length 1 sub 0 3 3 -1 roll {
+ 3 getinterval {} forall
+ 5 index exec
+ 3 index
+ } for
+
+ 5 {pop} repeat
+} def
+/ci6walkcmykstring
+{
+ 0 3 index
+ dup length 1 sub 0 4 3 -1 roll {
+ 4 getinterval {} forall
+
+ 6 index exec
+
+ 3 index
+
+ } for
+
+ 5 { pop } repeat
+
+} def
+/ci6putrgbtograystr
+{
+ .11 mul exch
+
+ .59 mul add exch
+
+ .3 mul add
+
+ cvi 3 copy put
+
+ pop 1 add
+} def
+/ci6putcmyktograystr
+{
+ exch .11 mul add
+
+ exch .59 mul add
+
+ exch .3 mul add
+
+ dup 255 gt { pop 255 } if
+
+ 255 exch sub cvi 3 copy put
+
+ pop 1 add
+} def
+/ci6rgbtograyproc {
+ Adobe_ColorImage_AI6_Vars begin
+ sourcearray 0 get exec
+ XIBuffer3
+ dup 3 1 roll
+
+ /ci6putrgbtograystr load exch
+ ci6walkrgbstring
+ end
+} def
+/ci6cmyktograyproc {
+ Adobe_ColorImage_AI6_Vars begin
+ sourcearray 0 get exec
+ XIBuffer3
+ dup 3 1 roll
+
+ /ci6putcmyktograystr load exch
+ ci6walkcmykstring
+ end
+} def
+/ci6separatecmykproc {
+ Adobe_ColorImage_AI6_Vars begin
+ sourcearray 0 get exec
+
+ XIBuffer3
+
+ 0 2 index
+
+ plateindex 4 2 index length 1 sub {
+ get 255 exch sub
+
+ 3 copy put pop 1 add
+
+ 2 index
+ } for
+ pop pop exch pop
+ end
+} def
+
+/ci6compositeimage {
+ dup 1 eq {
+ pop pop image
+ }{
+ /ci6colorimage load null ne {
+ ci6colorimage
+ }{
+ 3 1 roll pop
+ sourcearray 0 3 -1 roll put
+ 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load
+ image
+ } ifelse
+ } ifelse
+} def
+/ci6knockoutimage {
+ gsave
+ 0 ci6curtransfer exec 1 ci6curtransfer exec
+ eq {
+ 0 ci6curtransfer exec 0.5 lt
+ }{
+ 0 ci6curtransfer exec 1 ci6curtransfer exec gt
+ } ifelse
+ {{pop 0}}{{pop 1}} ifelse
+ systemdict /settransfer get exec
+ ci6compositeimage
+ grestore
+} def
+/ci6drawimage {
+ ci6testplate -1 eq {
+ pop ci6compositeimage
+ }{
+ dup type /arraytype eq {
+ dup length plateindex gt {plateindex get}{pop false} ifelse
+ }{
+ {
+ true
+ }{
+ dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse
+ } ifelse
+ } ifelse
+ {
+ dup 1 eq {
+ pop pop ci6image
+ }{
+ dup 3 eq {
+ ci6compositeimage
+ }{
+ pop pop
+ sourcearray 0 3 -1 roll put
+ /ci6separatecmykproc load
+ ci6image
+ } ifelse
+ } ifelse
+ }{
+ ci6curoverprint {
+ 7 {pop} repeat
+ }{
+ ci6knockoutimage
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6proctintimage {
+ /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store
+ /_pticomps _ptispace ci6numcomps store
+ /_ptiscale _pti1 _pti0 sub store
+ level2? {
+ _ptiname length 0 gt version cvr 2012 ge and {
+ [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace
+ [_pti0 _pti1] ci6makeimagedict ci6image
+ }{
+ [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace
+ [0 255] ci6makeimagedict ci6image
+ } ifelse
+ }{
+ _pticomps 1 eq {
+ {
+ dup
+ {
+ 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put
+ } ci6stringapply
+ } ci6concatprocs ci6image
+ }{
+ {
+ dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse
+ _ptibuf {
+ exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc
+ _pticomps 2 add -2 roll
+ _pticomps 1 sub -1 0 {
+ 1 index add 2 index exch
+ 5 -1 roll
+ 255 mul cvi put
+ } for
+ pop pop
+ } ci6stringapply
+ } ci6concatprocs false _pticomps
+ /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6graytintimage {
+ /_gtigray 5 -1 roll store
+ {1 _gtigray sub mul 1 exch sub} 4 1 roll
+ /DeviceGray ci6proctintimage
+} def
+/ci6cmyktintimage {
+ /_cticmyk 5 -1 roll store
+ {_cticmyk {1 index mul exch} forall pop} 4 1 roll
+ /DeviceCMYK ci6proctintimage
+} def
+/ci6rgbtintimage {
+ /_rtirgb 5 -1 roll store
+ {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll
+ /DeviceRGB ci6proctintimage
+} def
+/ci6tintimage {
+ ci6testplate -1 eq {
+ ci6colorexpand
+ 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll
+ dup /DeviceGray eq {
+ pop ci6graytintimage
+ }{
+ dup /DeviceRGB eq {
+ pop ci6rgbtintimage
+ }{
+ pop ci6cmyktintimage
+ } ifelse
+ } ifelse
+ }{
+ dup ci6marksplate {
+ plateindex 5 lt {
+ ci6colortocmyk plateindex get
+ dup 0 eq ci6curoverprint and {
+ 7 {pop} repeat
+ }{
+ 1 exch sub
+ exch {1 0}{0 1} ifelse () ci6graytintimage
+ } ifelse
+ }{
+ pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage
+ } ifelse
+ }{
+ ci6curoverprint {
+ 8 {pop} repeat
+ }{
+ pop pop pop
+ {pop 1} 0 1 () /DeviceGray ci6proctintimage
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/XINullImage {
+} def
+/XIImageMask {
+ XIImageWidth XIImageHeight false
+ [XIImageWidth 0 0 XIImageHeight neg 0 0]
+ /XIDataProc load
+ imagemask
+} def
+/XIImageTint {
+ XIImageWidth XIImageHeight XIBitsPerPixel
+ [XIImageWidth 0 0 XIImageHeight neg 0 0]
+ /XIDataProc load
+ XIType 3 eq XIColorValues XIColorSpace ci6tintimage
+} def
+/XIImage {
+ XIImageWidth XIImageHeight XIBitsPerPixel
+ [XIImageWidth 0 0 XIImageHeight neg 0 0]
+ /XIDataProc load
+ false XIChannelCount XIPlateList ci6drawimage
+} def
+/XG {
+ pop pop
+} def
+/XF {
+ 13 {pop} repeat
+} def
+/Xh {
+ Adobe_ColorImage_AI6_Vars begin
+ gsave
+ /XIType exch def
+ /XIImageHeight exch def
+ /XIImageWidth exch def
+ /XIImageMatrix exch def
+ 0 0 moveto
+ XIImageMatrix concat
+ XIImageWidth XIImageHeight scale
+
+ /_lp /null ddef
+ _fc
+ /_lp /imagemask ddef
+ end
+} def
+/XH {
+ Adobe_ColorImage_AI6_Vars begin
+ grestore
+ end
+} def
+/XIEnable {
+ Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put
+} def
+/XC {
+ Adobe_ColorImage_AI6_Vars begin
+ ci6colormake
+ /XIColorSpace exch def
+ /XIColorValues exch def
+ end
+} def
+/XIPlates {
+ Adobe_ColorImage_AI6_Vars begin
+ /XIPlateList exch def
+ end
+} def
+/XI
+{
+ Adobe_ColorImage_AI6_Vars begin
+ gsave
+ /XIType exch def
+ cvi dup
+ 256 idiv /XICompression exch store
+ 256 mod /XIEncoding exch store
+ pop pop
+ /XIChannelCount exch def
+ /XIBitsPerPixel exch def
+ /XIImageHeight exch def
+ /XIImageWidth exch def
+ pop pop pop pop
+ /XIImageMatrix exch def
+ XIBitsPerPixel 1 eq {
+ XIImageWidth 8 div ceiling cvi
+ }{
+ XIImageWidth XIChannelCount mul
+ } ifelse
+ /XIRowBytes exch def
+ XIEnable {
+ /XIBuffer3 XIImageWidth string def
+ XICompression 0 eq {
+ /XIBuffer1 XIRowBytes string def
+ XIEncoding 0 eq {
+ {currentfile XIBuffer1 readhexstring pop}
+ }{
+ {currentfile XIBuffer1 readstring pop}
+ } ifelse
+ }{
+ /XIBuffer1 256 string def
+ /XIBuffer2 XIRowBytes string def
+ {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if}
+ /ASCII85Decode filter /DCTDecode filter
+ /XIFile exch def
+ {XIFile XIBuffer2 readstring pop}
+ } ifelse
+ /XIDataProc exch def
+
+ XIType 1 ne {
+ 0 setgray
+ } if
+ XIType 1 eq {
+ XIImageMask
+ }{
+ XIType 2 eq XIType 3 eq or {
+ XIImageTint
+ }{
+ XIImage
+ } ifelse
+ } ifelse
+ }{
+ XINullImage
+ } ifelse
+ /XIPlateList false def
+ grestore
+ end
+} def
+end
+%%EndProcSet
+%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0
+%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog)
+%%Version: 1.3 0
+%%CreationDate: (3/7/1994) ()
+%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved)
+currentpacking true setpacking
+userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin
+put
+/_?cmyk false def
+/_eo false def
+/_lp /none def
+/_pf
+{
+} def
+/_ps
+{
+} def
+/_psf
+{
+} def
+/_pss
+{
+} def
+/_pjsf
+{
+} def
+/_pjss
+{
+} def
+/_pola 0 def
+/_doClip 0 def
+/cf currentflat def
+/_lineorientation 0 def
+/_charorientation 0 def
+/_yokoorientation 0 def
+/_tm matrix def
+/_renderStart
+[
+/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
+] def
+/_renderEnd
+[
+null null null null /i1 /i1 /i1 /i1
+] def
+/_render -1 def
+/_shift [0 0] def
+/_ax 0 def
+/_ay 0 def
+/_cx 0 def
+/_cy 0 def
+/_leading
+[
+0 0
+] def
+/_ctm matrix def
+/_mtx matrix def
+/_sp 16#020 def
+/_hyphen (-) def
+/_fontSize 0 def
+/_fontAscent 0 def
+/_fontDescent 0 def
+/_fontHeight 0 def
+/_fontRotateAdjust 0 def
+/Ss 256 string def
+Ss 0 (fonts/) putinterval
+/_cnt 0 def
+/_scale [1 1] def
+/_nativeEncoding 0 def
+/_useNativeEncoding 0 def
+/_tempEncode 0 def
+/_pntr 0 def
+/_tDict 2 dict def
+/_hfname 100 string def
+/_hffound false def
+/Tx
+{
+} def
+/Tj
+{
+} def
+/CRender
+{
+} def
+/_AI3_savepage
+{
+} def
+/_gf null def
+/_cf 4 array def
+/_rgbf 3 array def
+/_if null def
+/_of false def
+/_fc
+{
+} def
+/_gs null def
+/_cs 4 array def
+/_rgbs 3 array def
+/_is null def
+/_os false def
+/_sc
+{
+} def
+/_pd 1 dict def
+/_ed 15 dict def
+/_pm matrix def
+/_fm null def
+/_fd null def
+/_fdd null def
+/_sm null def
+/_sd null def
+/_sdd null def
+/_i null def
+/_lobyte 0 def
+/_hibyte 0 def
+/_cproc null def
+/_cscript 0 def
+/_hvax 0 def
+/_hvay 0 def
+/_hvwb 0 def
+/_hvcx 0 def
+/_hvcy 0 def
+/_bitfont null def
+/_bitlobyte 0 def
+/_bithibyte 0 def
+/_bitkey null def
+/_bitdata null def
+/_bitindex 0 def
+/discardSave null def
+/buffer 256 string def
+/beginString null def
+/endString null def
+/endStringLength null def
+/layerCnt 1 def
+/layerCount 1 def
+/perCent (%) 0 get def
+/perCentSeen? false def
+/newBuff null def
+/newBuffButFirst null def
+/newBuffLast null def
+/clipForward? false def
+end
+userdict /Adobe_Illustrator_AI5 known not {
+ userdict /Adobe_Illustrator_AI5 100 dict put
+} if
+userdict /Adobe_Illustrator_AI5 get begin
+/initialize
+{
+ Adobe_Illustrator_AI5 dup begin
+ Adobe_Illustrator_AI5_vars begin
+ /_aicmykps where {pop /_?cmyk _aicmykps def}if
+ discardDict
+ {
+ bind pop pop
+ } forall
+ dup /nc get begin
+ {
+ dup xcheck 1 index type /operatortype ne and
+ {
+ bind
+ } if
+ pop pop
+ } forall
+ end
+ newpath
+} def
+/terminate
+{
+ end
+ end
+} def
+/_
+null def
+/ddef
+{
+ Adobe_Illustrator_AI5_vars 3 1 roll put
+} def
+/xput
+{
+ dup load dup length exch maxlength eq
+ {
+ dup dup load dup
+ length 2 mul dict copy def
+ } if
+ load begin
+ def
+ end
+} def
+/npop
+{
+ {
+ pop
+ } repeat
+} def
+/hswj
+{
+ dup stringwidth 3 2 roll
+ {
+ _hvwb eq { exch _hvcx add exch _hvcy add } if
+ exch _hvax add exch _hvay add
+ } cforall
+} def
+/vswj
+{
+ 0 0 3 -1 roll
+ {
+ dup 255 le
+ _charorientation 1 eq
+ and
+ {
+ dup cstring stringwidth 5 2 roll
+ _hvwb eq { exch _hvcy sub exch _hvcx sub } if
+ exch _hvay sub exch _hvax sub
+ 4 -1 roll sub exch
+ 3 -1 roll sub exch
+ }
+ {
+ _hvwb eq { exch _hvcy sub exch _hvcx sub } if
+ exch _hvay sub exch _hvax sub
+ _fontHeight sub
+ } ifelse
+ } cforall
+} def
+/swj
+{
+ 6 1 roll
+ /_hvay exch ddef
+ /_hvax exch ddef
+ /_hvwb exch ddef
+ /_hvcy exch ddef
+ /_hvcx exch ddef
+ _lineorientation 0 eq { hswj } { vswj } ifelse
+} def
+/sw
+{
+ 0 0 0 6 3 roll swj
+} def
+/vjss
+{
+ 4 1 roll
+ {
+ dup cstring
+ dup length 1 eq
+ _charorientation 1 eq
+ and
+ {
+ -90 rotate
+ currentpoint
+ _fontRotateAdjust add
+ moveto
+ gsave
+ false charpath currentpoint
+ 5 index setmatrix stroke
+ grestore
+ _fontRotateAdjust sub
+ moveto
+ _sp eq
+ {
+ 5 index 5 index rmoveto
+ } if
+ 2 copy rmoveto
+ 90 rotate
+ }
+ {
+ currentpoint
+ _fontHeight sub
+ 5 index sub
+ 3 index _sp eq
+ {
+ 9 index sub
+ } if
+
+ currentpoint
+ exch 4 index stringwidth pop 2 div sub
+ exch _fontAscent sub
+ moveto
+
+ gsave
+ 2 index false charpath
+ 6 index setmatrix stroke
+ grestore
+
+ moveto pop pop
+ } ifelse
+ } cforall
+ 6 npop
+} def
+/hjss
+{
+ 4 1 roll
+ {
+ dup cstring
+ gsave
+ false charpath currentpoint
+ 5 index setmatrix stroke
+ grestore
+ moveto
+ _sp eq
+ {
+ 5 index 5 index rmoveto
+ } if
+ 2 copy rmoveto
+ } cforall
+ 6 npop
+} def
+/jss
+{
+ _lineorientation 0 eq { hjss } { vjss } ifelse
+} def
+/ss
+{
+ 0 0 0 7 3 roll jss
+} def
+/vjsp
+{
+ 4 1 roll
+ {
+ dup cstring
+ dup length 1 eq
+ _charorientation 1 eq
+ and
+ {
+ -90 rotate
+ currentpoint
+ _fontRotateAdjust add
+ moveto
+ false charpath
+ currentpoint
+ _fontRotateAdjust sub
+ moveto
+ _sp eq
+ {
+ 5 index 5 index rmoveto
+ } if
+ 2 copy rmoveto
+ 90 rotate
+ }
+ {
+ currentpoint
+ _fontHeight sub
+ 5 index sub
+ 3 index _sp eq
+ {
+ 9 index sub
+ } if
+
+ currentpoint
+ exch 4 index stringwidth pop 2 div sub
+ exch _fontAscent sub
+ moveto
+
+ 2 index false charpath
+
+ moveto pop pop
+ } ifelse
+ } cforall
+ 6 npop
+} def
+/hjsp
+{
+ 4 1 roll
+ {
+ dup cstring
+ false charpath
+ _sp eq
+ {
+ 5 index 5 index rmoveto
+ } if
+ 2 copy rmoveto
+ } cforall
+ 6 npop
+} def
+/jsp
+{
+ matrix currentmatrix
+ _lineorientation 0 eq {hjsp} {vjsp} ifelse
+} def
+/sp
+{
+ matrix currentmatrix
+ 0 0 0 7 3 roll
+ _lineorientation 0 eq {hjsp} {vjsp} ifelse
+} def
+/pl
+{
+ transform
+ 0.25 sub round 0.25 add exch
+ 0.25 sub round 0.25 add exch
+ itransform
+} def
+/setstrokeadjust where
+{
+ pop true setstrokeadjust
+ /c
+ {
+ curveto
+ } def
+ /C
+ /c load def
+ /v
+ {
+ currentpoint 6 2 roll curveto
+ } def
+ /V
+ /v load def
+ /y
+ {
+ 2 copy curveto
+ } def
+ /Y
+ /y load def
+ /l
+ {
+ lineto
+ } def
+ /L
+ /l load def
+ /m
+ {
+ moveto
+ } def
+}
+{
+ /c
+ {
+ pl curveto
+ } def
+ /C
+ /c load def
+ /v
+ {
+ currentpoint 6 2 roll pl curveto
+ } def
+ /V
+ /v load def
+ /y
+ {
+ pl 2 copy curveto
+ } def
+ /Y
+ /y load def
+ /l
+ {
+ pl lineto
+ } def
+ /L
+ /l load def
+ /m
+ {
+ pl moveto
+ } def
+} ifelse
+/d
+{
+ setdash
+} def
+/cf
+{
+} def
+/i
+{
+ dup 0 eq
+ {
+ pop cf
+ } if
+ setflat
+} def
+/j
+{
+ setlinejoin
+} def
+/J
+{
+ setlinecap
+} def
+/M
+{
+ setmiterlimit
+} def
+/w
+{
+ setlinewidth
+} def
+/XR
+{
+ 0 ne
+ /_eo exch ddef
+} def
+/H
+{
+} def
+/h
+{
+ closepath
+} def
+/N
+{
+ _pola 0 eq
+ {
+ _doClip 1 eq
+ {
+ _eo {eoclip} {clip} ifelse /_doClip 0 ddef
+ } if
+ newpath
+ }
+ {
+ /CRender
+ {
+ N
+ } ddef
+ } ifelse
+} def
+/n
+{
+ N
+} def
+/F
+{
+ _pola 0 eq
+ {
+ _doClip 1 eq
+ {
+ gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
+ /_doClip 0 ddef
+ }
+ {
+ _pf
+ } ifelse
+ }
+ {
+ /CRender
+ {
+ F
+ } ddef
+ } ifelse
+} def
+/f
+{
+ closepath
+ F
+} def
+/S
+{
+ _pola 0 eq
+ {
+ _doClip 1 eq
+ {
+ gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
+ /_doClip 0 ddef
+ }
+ {
+ _ps
+ } ifelse
+ }
+ {
+ /CRender
+ {
+ S
+ } ddef
+ } ifelse
+} def
+/s
+{
+ closepath
+ S
+} def
+/B
+{
+ _pola 0 eq
+ {
+ _doClip 1 eq
+ gsave F grestore
+ {
+ gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
+ /_doClip 0 ddef
+ }
+ {
+ S
+ } ifelse
+ }
+ {
+ /CRender
+ {
+ B
+ } ddef
+ } ifelse
+} def
+/b
+{
+ closepath
+ B
+} def
+/W
+{
+ /_doClip 1 ddef
+} def
+/*
+{
+ count 0 ne
+ {
+ dup type /stringtype eq
+ {
+ pop
+ } if
+ } if
+ newpath
+} def
+/u
+{
+} def
+/U
+{
+} def
+/q
+{
+ _pola 0 eq
+ {
+ gsave
+ } if
+} def
+/Q
+{
+ _pola 0 eq
+ {
+ grestore
+ } if
+} def
+/*u
+{
+ _pola 1 add /_pola exch ddef
+} def
+/*U
+{
+ _pola 1 sub /_pola exch ddef
+ _pola 0 eq
+ {
+ CRender
+ } if
+} def
+/D
+{
+ pop
+} def
+/*w
+{
+} def
+/*W
+{
+} def
+/`
+{
+ /_i save ddef
+ clipForward?
+ {
+ nulldevice
+ } if
+ 6 1 roll 4 npop
+ concat pop
+ userdict begin
+ /showpage
+ {
+ } def
+ 0 setgray
+ 0 setlinecap
+ 1 setlinewidth
+ 0 setlinejoin
+ 10 setmiterlimit
+ [] 0 setdash
+ /setstrokeadjust where {pop false setstrokeadjust} if
+ newpath
+ 0 setgray
+ false setoverprint
+} def
+/~
+{
+ end
+ _i restore
+} def
+/_rgbtocmyk
+{
+ 3
+ {
+ 1 exch sub 3 1 roll
+ } repeat
+ 3 copy 1 4 1 roll
+ 3
+ {
+ 3 index 2 copy gt
+ {
+ exch
+ } if
+ pop 4 1 roll
+ } repeat
+ pop pop pop
+ 4 1 roll
+ 3
+ {
+ 3 index sub
+ 3 1 roll
+ } repeat
+ 4 -1 roll
+} def
+/setrgbfill
+{
+ _rgbf astore pop
+ /_fc
+ {
+ _lp /fill ne
+ {
+ _of setoverprint
+ _rgbf aload pop setrgbcolor
+ /_lp /fill ddef
+ } if
+ } ddef
+ /_pf
+ {
+ _fc
+ _eo {eofill} {fill} ifelse
+ } ddef
+ /_psf
+ {
+ _fc
+ hvashow
+ } ddef
+ /_pjsf
+ {
+ _fc
+ hvawidthshow
+ } ddef
+ /_lp /none ddef
+} def
+/setrgbstroke
+{
+ _rgbs astore pop
+ /_sc
+ {
+ _lp /stroke ne
+ {
+ _os setoverprint
+ _rgbs aload pop setrgbcolor
+ /_lp /stroke ddef
+ } if
+ } ddef
+ /_ps
+ {
+ _sc
+ stroke
+ } ddef
+ /_pss
+ {
+ _sc
+ ss
+ } ddef
+ /_pjss
+ {
+ _sc
+ jss
+ } ddef
+ /_lp /none ddef
+} def
+/O
+{
+ 0 ne
+ /_of exch ddef
+ /_lp /none ddef
+} def
+/R
+{
+ 0 ne
+ /_os exch ddef
+ /_lp /none ddef
+} def
+/g
+{
+ /_gf exch ddef
+ /_fc
+ {
+ _lp /fill ne
+ {
+ _of setoverprint
+ _gf setgray
+ /_lp /fill ddef
+ } if
+ } ddef
+ /_pf
+ {
+ _fc
+ _eo {eofill} {fill} ifelse
+ } ddef
+ /_psf
+ {
+ _fc
+ hvashow
+ } ddef
+ /_pjsf
+ {
+ _fc
+ hvawidthshow
+ } ddef
+ /_lp /none ddef
+} def
+/G
+{
+ /_gs exch ddef
+ /_sc
+ {
+ _lp /stroke ne
+ {
+ _os setoverprint
+ _gs setgray
+ /_lp /stroke ddef
+ } if
+ } ddef
+ /_ps
+ {
+ _sc
+ stroke
+ } ddef
+ /_pss
+ {
+ _sc
+ ss
+ } ddef
+ /_pjss
+ {
+ _sc
+ jss
+ } ddef
+ /_lp /none ddef
+} def
+/k
+{
+ _cf astore pop
+ /_fc
+ {
+ _lp /fill ne
+ {
+ _of setoverprint
+ _cf aload pop setcmykcolor
+ /_lp /fill ddef
+ } if
+ } ddef
+ /_pf
+ {
+ _fc
+ _eo {eofill} {fill} ifelse
+ } ddef
+ /_psf
+ {
+ _fc
+ hvashow
+ } ddef
+ /_pjsf
+ {
+ _fc
+ hvawidthshow
+ } ddef
+ /_lp /none ddef
+} def
+/K
+{
+ _cs astore pop
+ /_sc
+ {
+ _lp /stroke ne
+ {
+ _os setoverprint
+ _cs aload pop setcmykcolor
+ /_lp /stroke ddef
+ } if
+ } ddef
+ /_ps
+ {
+ _sc
+ stroke
+ } ddef
+ /_pss
+ {
+ _sc
+ ss
+ } ddef
+ /_pjss
+ {
+ _sc
+ jss
+ } ddef
+ /_lp /none ddef
+} def
+/Xa
+{
+ _?cmyk {
+ 3 npop k
+ }{
+ setrgbfill 4 npop
+ } ifelse
+} def
+/XA
+{
+ _?cmyk {
+ 3 npop K
+ }{
+ setrgbstroke 4 npop
+ } ifelse
+} def
+/Xs
+{
+ /_gf exch ddef
+ 5 npop
+ /_fc
+ {
+ _lp /fill ne
+ {
+ _of setoverprint
+ _gf setAIseparationgray
+ /_lp /fill ddef
+ } if
+ } ddef
+ /_pf
+ {
+ _fc
+ _eo {eofill} {fill} ifelse
+ } ddef
+ /_psf
+ {
+ _fc
+ hvashow
+ } ddef
+ /_pjsf
+ {
+ _fc
+ hvawidthshow
+ } ddef
+ /_lp /none ddef
+} def
+/XS
+{
+ /_gs exch ddef
+ 5 npop
+ /_sc
+ {
+ _lp /stroke ne
+ {
+ _os setoverprint
+ _gs setAIseparationgray
+ /_lp /stroke ddef
+ } if
+ } ddef
+ /_ps
+ {
+ _sc
+ stroke
+ } ddef
+ /_pss
+ {
+ _sc
+ ss
+ } ddef
+ /_pjss
+ {
+ _sc
+ jss
+ } ddef
+ /_lp /none ddef
+} def
+/Xx
+{
+ exch
+ /_gf exch ddef
+ 0 eq {
+ findcmykcustomcolor
+ }{
+ _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
+ {
+ 4 1 roll 3 npop
+ findcmykcustomcolor
+ }{
+ 8 -4 roll 4 npop
+ findrgbcustomcolor
+ } ifelse
+ } ifelse
+ /_if exch ddef
+ /_fc
+ {
+ _lp /fill ne
+ {
+ _of setoverprint
+ _if _gf 1 exch sub setcustomcolor
+ /_lp /fill ddef
+ } if
+ } ddef
+ /_pf
+ {
+ _fc
+ _eo {eofill} {fill} ifelse
+ } ddef
+ /_psf
+ {
+ _fc
+ hvashow
+ } ddef
+ /_pjsf
+ {
+ _fc
+ hvawidthshow
+ } ddef
+ /_lp /none ddef
+} def
+/XX
+{
+ exch
+ /_gs exch ddef
+ 0 eq {
+ findcmykcustomcolor
+ }{
+ _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
+ {
+ 4 1 roll 3 npop
+ findcmykcustomcolor
+ }{
+ 8 -4 roll 4 npop
+ findrgbcustomcolor
+ } ifelse
+ } ifelse
+ /_is exch ddef
+ /_sc
+ {
+ _lp /stroke ne
+ {
+ _os setoverprint
+ _is _gs 1 exch sub setcustomcolor
+ /_lp /stroke ddef
+ } if
+ } ddef
+ /_ps
+ {
+ _sc
+ stroke
+ } ddef
+ /_pss
+ {
+ _sc
+ ss
+ } ddef
+ /_pjss
+ {
+ _sc
+ jss
+ } ddef
+ /_lp /none ddef
+} def
+/x
+{
+ /_gf exch ddef
+ findcmykcustomcolor
+ /_if exch ddef
+ /_fc
+ {
+ _lp /fill ne
+ {
+ _of setoverprint
+ _if _gf 1 exch sub setcustomcolor
+ /_lp /fill ddef
+ } if
+ } ddef
+ /_pf
+ {
+ _fc
+ _eo {eofill} {fill} ifelse
+ } ddef
+ /_psf
+ {
+ _fc
+ hvashow
+ } ddef
+ /_pjsf
+ {
+ _fc
+ hvawidthshow
+ } ddef
+ /_lp /none ddef
+} def
+/X
+{
+ /_gs exch ddef
+ findcmykcustomcolor
+ /_is exch ddef
+ /_sc
+ {
+ _lp /stroke ne
+ {
+ _os setoverprint
+ _is _gs 1 exch sub setcustomcolor
+ /_lp /stroke ddef
+ } if
+ } ddef
+ /_ps
+ {
+ _sc
+ stroke
+ } ddef
+ /_pss
+ {
+ _sc
+ ss
+ } ddef
+ /_pjss
+ {
+ _sc
+ jss
+ } ddef
+ /_lp /none ddef
+} def
+/XK
+{
+ 3 -1 roll pop
+ 0 eq
+ {
+ 1 exch sub
+ 3 {dup 3 1 roll mul 5 1 roll} repeat
+ mul 4 1 roll
+ K
+ }
+ {
+ 1 exch sub 4 1 roll
+ 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
+ 4 -1 roll pop
+ XA
+ } ifelse
+} def
+/Xk
+{
+ 3 -1 roll pop
+ 0 eq
+ {
+ 1 exch sub
+ 3 {dup 3 1 roll mul 5 1 roll} repeat
+ mul 4 1 roll
+ k
+ }
+ {
+ 1 exch sub 4 1 roll
+ 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
+ 4 -1 roll pop
+ Xa
+ } ifelse
+} def
+/A
+{
+ pop
+} def
+/annotatepage
+{
+userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
+} def
+/XT {
+ pop pop
+} def
+/Xt {
+ pop
+} def
+/discard
+{
+ save /discardSave exch store
+ discardDict begin
+ /endString exch store
+ gt38?
+ {
+ 2 add
+ } if
+ load
+ stopped
+ pop
+ end
+ discardSave restore
+} bind def
+userdict /discardDict 7 dict dup begin
+put
+/pre38Initialize
+{
+ /endStringLength endString length store
+ /newBuff buffer 0 endStringLength getinterval store
+ /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
+ /newBuffLast newBuff endStringLength 1 sub 1 getinterval store
+} def
+/shiftBuffer
+{
+ newBuff 0 newBuffButFirst putinterval
+ newBuffLast 0
+ currentfile read not
+ {
+ stop
+ } if
+ put
+} def
+0
+{
+ pre38Initialize
+ mark
+ currentfile newBuff readstring exch pop
+ {
+ {
+ newBuff endString eq
+ {
+ cleartomark stop
+ } if
+ shiftBuffer
+ } loop
+ }
+ {
+ stop
+ } ifelse
+} def
+1
+{
+ pre38Initialize
+ /beginString exch store
+ mark
+ currentfile newBuff readstring exch pop
+ {
+ {
+ newBuff beginString eq
+ {
+ /layerCount dup load 1 add store
+ }
+ {
+ newBuff endString eq
+ {
+ /layerCount dup load 1 sub store
+ layerCount 0 eq
+ {
+ cleartomark stop
+ } if
+ } if
+ } ifelse
+ shiftBuffer
+ } loop
+ } if
+} def
+2
+{
+ mark
+ {
+ currentfile buffer {readline} stopped {
+ % assume error was due to overfilling the buffer
+ }{
+ not
+ {
+ stop
+ } if
+ endString eq {
+ cleartomark stop
+ } if
+ }ifelse
+ } loop
+} def
+3
+{
+ /beginString exch store
+ /layerCnt 1 store
+ mark
+ {
+ currentfile buffer {readline} stopped {
+ % assume error was due to overfilling the buffer
+ }{
+ not
+ {
+ stop
+ } if
+ dup beginString eq
+ {
+ pop /layerCnt dup load 1 add store
+ }
+ {
+ endString eq
+ {
+ layerCnt 1 eq
+ {
+ cleartomark stop
+ }
+ {
+ /layerCnt dup load 1 sub store
+ } ifelse
+ } if
+ } ifelse
+ }ifelse
+ } loop
+} def
+end
+userdict /clipRenderOff 15 dict dup begin
+put
+{
+ /n /N /s /S /f /F /b /B
+}
+{
+ {
+ _doClip 1 eq
+ {
+ /_doClip 0 ddef _eo {eoclip} {clip} ifelse
+ } if
+ newpath
+ } def
+} forall
+/Tr /pop load def
+/Bb {} def
+/BB /pop load def
+/Bg {12 npop} def
+/Bm {6 npop} def
+/Bc /Bm load def
+/Bh {4 npop} def
+end
+/Lb
+{
+ 6 npop
+ 7 2 roll
+ 5 npop
+ 0 eq
+ {
+ 0 eq
+ {
+ (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
+ }
+ {
+
+ /clipForward? true def
+
+ /Tx /pop load def
+ /Tj /pop load def
+
+ currentdict end clipRenderOff begin begin
+ } ifelse
+ }
+ {
+ 0 eq
+ {
+ save /discardSave exch store
+ } if
+ } ifelse
+} bind def
+/LB
+{
+ discardSave dup null ne
+ {
+ restore
+ }
+ {
+ pop
+ clipForward?
+ {
+ currentdict
+ end
+ end
+ begin
+
+ /clipForward? false ddef
+ } if
+ } ifelse
+} bind def
+/Pb
+{
+ pop pop
+ 0 (%AI5_EndPalette) discard
+} bind def
+/Np
+{
+ 0 (%AI5_End_NonPrinting--) discard
+} bind def
+/Ln /pop load def
+/Ap
+/pop load def
+/Ar
+{
+ 72 exch div
+ 0 dtransform dup mul exch dup mul add sqrt
+ dup 1 lt
+ {
+ pop 1
+ } if
+ setflat
+} def
+/Mb
+{
+ q
+} def
+/Md
+{
+} def
+/MB
+{
+ Q
+} def
+/nc 4 dict def
+nc begin
+/setgray
+{
+ pop
+} bind def
+/setcmykcolor
+{
+ 4 npop
+} bind def
+/setrgbcolor
+{
+ 3 npop
+} bind def
+/setcustomcolor
+{
+ 2 npop
+} bind def
+currentdict readonly pop
+end
+/XP
+{
+ 4 npop
+} bind def
+/XD
+{
+ pop
+} bind def
+end
+setpacking
+%%EndResource
+%%BeginResource: procset Adobe_pattern_AI5 1.1 0
+%%Title: (Adobe Illustrator (R) Version 5.0 Pattern Operators)
+%%Version: 1.1 0
+%%CreationDate: (03/26/93) ()
+%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
+currentpacking true setpacking
+userdict /Adobe_Illustrator_AI5 known not {
+ userdict /Adobe_Illustrator_AI5 95 dict put
+} if
+userdict /Adobe_Illustrator_AI5 get begin
+/@
+{
+} def
+/&
+{
+} def
+/dp
+{
+ dup null eq
+ {
+ pop
+ _dp 0 ne
+ {
+ 0 1 _dp 1 sub _dl mod
+ {
+ _da exch get 3 get
+ } for
+ _dp 1 sub _dl mod 1 add packedarray
+ _da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll
+ definepattern pop
+ } if
+ }
+ {
+ _dp 0 ne _dp _dl mod 0 eq and
+ {
+ null dp
+ } if
+ 7 packedarray _da exch _dp _dl mod exch put
+ _dp _dl mod _da 0 get 4 get 2 packedarray
+ /_dp _dp 1 add def
+ } ifelse
+} def
+/E
+{
+ _ed begin
+ dup 0 get type /arraytype ne
+ {
+ 0
+ {
+ dup 1 add index type /arraytype eq
+ {
+ 1 add
+ }
+ {
+ exit
+ } ifelse
+ } loop
+ array astore
+ } if
+ /_dd exch def
+ /_ury exch def
+ /_urx exch def
+ /_lly exch def
+ /_llx exch def
+ /_n exch def
+ /_y 0 def
+ /_dl 4 def
+ /_dp 0 def
+ /_da _dl array def
+ 0 1 _dd length 1 sub
+ {
+ /_d exch _dd exch get def
+ 0 2 _d length 2 sub
+ {
+ /_x exch def
+ /_c false def
+ /_r _d _x 1 add get cvlit def
+ _r _ ne
+ {
+ _urx _llx sub _ury _lly sub
+ [
+ 1 0 0 1 0 0
+ ]
+ [
+ /save cvx
+ _llx neg _lly neg /translate cvx
+ _c
+ {
+ nc /begin cvx
+ } if
+ _r dup type /stringtype eq
+ {
+ cvx
+ }
+ {
+ {
+ exec
+ } /forall cvx
+ } ifelse
+ _c
+ {
+ /end cvx
+ } if
+ /restore cvx
+ ] cvx
+ /_fn 12 _n length add string def
+ _y _fn cvs pop
+ /_y _y 1 add def
+ _fn 12 _n putinterval
+ _fn _c false dp
+ _d exch _x 1 add exch put
+ } if
+ } for
+ } for
+ null dp
+ _n _dd /_pd
+ end
+ xput
+} def
+/fc
+{
+ _fm dup concatmatrix pop
+} def
+/p
+{
+ /_fm exch ddef
+ 9 -2 roll _pm translate fc
+ 7 -2 roll _pm scale fc
+ 5 -1 roll _pm rotate fc
+ 4 -2 roll exch 0 ne
+ {
+ dup _pm rotate fc
+ 1 -1 _pm scale fc
+ neg _pm rotate fc
+ }
+ {
+ pop
+ } ifelse
+ dup _pm rotate fc
+ exch dup sin exch cos div 1 0 0 1 0 6 2 roll
+ _pm astore fc
+ neg _pm rotate fc
+ _pd exch get /_fdd exch ddef
+ /_pf
+ {
+ save
+ /_doClip 0 ddef
+ 0 1 _fdd length 1 sub
+ {
+ /_fd exch _fdd exch get ddef
+ _fd
+ 0 2 _fd length 2 sub
+ {
+ gsave
+ 2 copy get dup _ ne
+ {
+ cvx exec _fc
+ }
+ {
+ pop
+ } ifelse
+ 2 copy 1 add get dup _ ne
+ {
+ aload pop findfont _fm
+ patternfill
+ }
+ {
+ pop
+ fill
+ } ifelse
+ grestore
+ pop
+ } for
+ pop
+ } for
+ restore
+ newpath
+ } ddef
+ /_psf
+ {
+ save
+ /_doClip 0 ddef
+ 0 1 _fdd length 1 sub
+ {
+ /_fd exch _fdd exch get ddef
+ _fd
+ 0 2 _fd length 2 sub
+ {
+ gsave
+ 2 copy get dup _ ne
+ {
+ cvx exec _fc
+ }
+ {
+ pop
+ } ifelse
+ 2 copy 1 add get dup _ ne
+ {
+ aload pop findfont _fm
+ 9 copy 6 npop patternashow
+ }
+ {
+ pop
+ 6 copy 3 npop hvashow
+ } ifelse
+ grestore
+ pop
+ } for
+ pop
+ } for
+ restore
+ sw rmoveto
+ } ddef
+ /_pjsf
+ {
+ save
+ /_doClip 0 ddef
+ 0 1 _fdd length 1 sub
+ {
+ /_fd exch _fdd exch get ddef
+ _fd
+ 0 2 _fd length 2 sub
+ {
+ gsave
+ 2 copy get dup _ ne
+ {
+ cvx exec _fc
+ }
+ {
+ pop
+ } ifelse
+ 2 copy 1 add get dup _ ne
+ {
+ aload pop findfont _fm
+ 12 copy 6 npop patternawidthshow
+ }
+ {
+ pop 9 copy 3 npop hvawidthshow
+ } ifelse
+ grestore
+ pop
+ } for
+ pop
+ } for
+ restore
+ swj rmoveto
+ } ddef
+ /_lp /none ddef
+} def
+/sc
+{
+ _sm dup concatmatrix pop
+} def
+/P
+{
+ /_sm exch ddef
+ 9 -2 roll _pm translate sc
+ 7 -2 roll _pm scale sc
+ 5 -1 roll _pm rotate sc
+ 4 -2 roll exch 0 ne
+ {
+ dup _pm rotate sc
+ 1 -1 _pm scale sc
+ neg _pm rotate sc
+ }
+ {
+ pop
+ } ifelse
+ dup _pm rotate sc
+ exch dup sin exch cos div 1 0 0 1 0 6 2 roll
+ _pm astore sc
+ neg _pm rotate sc
+ _pd exch get /_sdd exch ddef
+ /_ps
+ {
+ save
+ /_doClip 0 ddef
+ 0 1 _sdd length 1 sub
+ {
+ /_sd exch _sdd exch get ddef
+ _sd
+ 0 2 _sd length 2 sub
+ {
+ gsave
+ 2 copy get dup _ ne
+ {
+ cvx exec _sc
+ }
+ {
+ pop
+ } ifelse
+ 2 copy 1 add get dup _ ne
+ {
+ aload pop findfont _sm
+ patternstroke
+ }
+ {
+ pop stroke
+ } ifelse
+ grestore
+ pop
+ } for
+ pop
+ } for
+ restore
+ newpath
+ } ddef
+ /_pss
+ {
+ save
+ /_doClip 0 ddef
+ 0 1 _sdd length 1 sub
+ {
+ /_sd exch _sdd exch get ddef
+ _sd
+ 0 2 _sd length 2 sub
+ {
+ gsave
+ 2 copy get dup _ ne
+ {
+ cvx exec _sc
+ }
+ {
+ pop
+ } ifelse
+ 2 copy 1 add get dup _ ne
+ {
+ aload pop findfont _sm
+ 10 copy 6 npop patternashowstroke
+ }
+ {
+ pop 7 copy 3 npop ss
+ } ifelse
+ grestore
+ pop
+ } for
+ pop
+ } for
+ restore
+ pop sw rmoveto
+ } ddef
+ /_pjss
+ {
+ save
+ /_doClip 0 ddef
+ 0 1 _sdd length 1 sub
+ {
+ /_sd exch _sdd exch get ddef
+ _sd
+ 0 2 _sd length 2 sub
+ {
+ gsave
+ 2 copy get dup _ ne
+ {
+ cvx exec _sc
+ }
+ {
+ pop
+ } ifelse
+ 2 copy 1 add get dup _ ne
+ {
+ aload pop findfont _sm
+ 13 copy 6 npop patternawidthshowstroke
+ }
+ {
+ pop 10 copy 3 npop jss
+ } ifelse
+ grestore
+ pop
+ } for
+ pop
+ } for
+ restore
+ pop swj rmoveto
+ } ddef
+ /_lp /none ddef
+} def
+end
+userdict /Adobe_pattern_AI5 18 dict dup begin
+put
+/initialize
+{
+ /definepattern where
+ {
+ pop
+ pop pop
+ }
+ {
+ begin
+ begin
+ Adobe_pattern_AI5 begin
+ Adobe_pattern_AI5
+ {
+ dup xcheck
+ {
+ bind
+ } if
+ pop pop
+ } forall
+ mark
+ cachestatus 7 1 roll pop pop pop pop exch pop exch
+ {
+ {
+ 10000 add
+ dup 2 index gt
+ {
+ exit
+ } if
+ dup setcachelimit
+ } loop
+ } stopped
+ cleartomark
+ end
+
+ end
+ end
+
+ Adobe_pattern_AI5 begin
+ } ifelse
+} def
+/terminate
+{
+ currentdict Adobe_pattern_AI5 eq
+ {
+ end
+ } if
+} def
+errordict
+/nocurrentpoint
+{
+ pop
+ stop
+} put
+errordict
+/invalidaccess
+{
+ pop
+ stop
+} put
+/patternencoding
+256 array def
+0 1 255
+{
+ patternencoding exch ( ) 2 copy exch 0 exch put cvn put
+} for
+/definepattern
+{
+ 17 dict begin
+ /uniform exch def
+ /cache exch def
+ /key exch def
+ /procarray exch def
+ /mtx exch matrix invertmatrix def
+ /height exch def
+ /width exch def
+ /ctm matrix currentmatrix def
+ /ptm matrix def
+ /str 32 string def
+ /slice 9 dict def
+ slice /s 1 put
+ slice /q 256 procarray length div sqrt floor cvi put
+ slice /b 0 put
+ /FontBBox
+ [
+ 0 0 0 0
+ ] def
+ /FontMatrix mtx matrix copy def
+ /Encoding patternencoding def
+ /FontType 3 def
+ /BuildChar
+ {
+ exch
+ begin
+ /setstrokeadjust where {pop true setstrokeadjust} if
+ slice begin
+ dup q dup mul mod s idiv /i exch def
+ dup q dup mul mod s mod /j exch def
+ q dup mul idiv procarray exch get
+ /xl j width s div mul def
+ /xg j 1 add width s div mul def
+ /yl i height s div mul def
+ /yg i 1 add height s div mul def
+ uniform
+ {
+ 1 1
+ }
+ {
+ width 0 dtransform
+ dup mul exch dup mul add sqrt dup 1 add exch div
+ 0 height dtransform
+ dup mul exch dup mul add sqrt dup 1 add exch div
+ } ifelse
+ width 0 cache
+ {
+ xl 4 index mul yl 4 index mul xg 6 index mul yg 6 index mul
+ setcachedevice
+ }
+ {
+ setcharwidth
+ } ifelse
+ gsave
+ scale
+ newpath
+ xl yl moveto
+ xg yl lineto
+ xg yg lineto
+ xl yg lineto
+ closepath
+ clip
+ newpath
+ end
+ end
+ exec
+ grestore
+ } def
+ key currentdict definefont
+ end
+} def
+/patterncachesize
+{
+ gsave
+ newpath
+ 0 0 moveto
+ width 0 lineto
+ width height lineto
+ 0 height lineto
+ closepath
+ patternmatrix setmatrix
+ pathbbox
+ exch ceiling 4 -1 roll floor sub 3 1 roll
+ ceiling exch floor sub
+ mul 1 add
+ grestore
+} def
+/patterncachelimit
+{
+ cachestatus 7 1 roll 6 npop 8 mul
+} def
+/patternpath
+{
+ exch dup begin
+ setfont
+ ctm setmatrix
+ concat
+ slice exch /b exch slice /q get dup mul mul put
+ FontMatrix concat
+ uniform
+ {
+ width 0 dtransform round width div exch round width div exch
+ 0 height dtransform round height div exch height div exch
+ 0 0 transform round exch round exch
+ ptm astore setmatrix
+ }
+ {
+ ptm currentmatrix pop
+ } ifelse
+ {
+ currentpoint
+ } stopped not
+ {
+ 2 npop
+ pathbbox
+ true
+ 4 index 3 index eq
+ 4 index 3 index eq
+ and
+ {
+ pop false
+ {
+ {
+ 2 npop
+ }
+ {
+ 3 npop true
+ }
+ {
+ 7 npop true
+ }
+ {
+ pop true
+ } pathforall
+ } stopped
+ {
+ 5 npop true
+ } if
+ } if
+ {
+ height div ceiling height mul 4 1 roll
+ width div ceiling width mul 4 1 roll
+ height div floor height mul 4 1 roll
+ width div floor width mul 4 1 roll
+ 2 index sub height div ceiling cvi exch
+ 3 index sub width div ceiling cvi exch
+ 4 2 roll moveto
+ FontMatrix mtx invertmatrix
+ dup dup 4 get exch 5 get rmoveto
+ ptm ptm concatmatrix pop
+ slice /s
+ patterncachesize patterncachelimit div ceiling sqrt ceiling cvi
+ dup slice /q get gt
+ {
+ pop slice /q get
+ } if
+ put
+ 0 1 slice /s get dup mul 1 sub
+ {
+ slice /b get add
+ gsave
+ 0 1 str length 1 sub
+ {
+ str exch 2 index put
+ } for
+ pop
+ dup
+ {
+ gsave
+ ptm setmatrix
+ 1 index str length idiv
+ {
+ str show
+ } repeat
+ 1 index str length mod str exch 0 exch getinterval show
+ grestore
+ 0 height rmoveto
+ } repeat
+ grestore
+ } for
+ 2 npop
+ }
+ {
+ 4 npop
+ } ifelse
+ } if
+ end
+} def
+/patternclip
+{
+ _eo {eoclip} {clip} ifelse
+} def
+/patternstrokepath
+{
+ strokepath
+} def
+/patternmatrix
+matrix def
+/patternfill
+{
+ dup type /dicttype eq
+ {
+ Adobe_pattern_AI5 /patternmatrix get
+ } if
+ gsave
+ patternclip
+ Adobe_pattern_AI5 /patternpath get exec
+ grestore
+ newpath
+} def
+/patternstroke
+{
+ dup type /dicttype eq
+ {
+ Adobe_pattern_AI5 /patternmatrix get
+ } if
+ gsave
+ patternstrokepath
+ true
+ {
+ {
+ {
+ newpath
+ moveto
+ }
+ {
+ lineto
+ }
+ {
+ curveto
+ }
+ {
+ closepath
+ 3 copy
+ Adobe_pattern_AI5 /patternfill get exec
+ } pathforall
+ 3 npop
+ } stopped
+ {
+ 5 npop
+ patternclip
+ Adobe_pattern_AI5 /patternfill get exec
+ } if
+ }
+ {
+ patternclip
+ Adobe_pattern_AI5 /patternfill get exec
+ } ifelse
+ grestore
+ newpath
+} def
+/vpatternawidthshow
+{
+ 6 1 roll
+ /_hvay exch ddef
+ /_hvax exch ddef
+ /_hvwb exch ddef
+ /_hvcy exch ddef
+ /_hvcx exch ddef
+
+ {
+ dup cstring
+ dup length 1 eq
+ _charorientation 1 eq
+ and
+ {
+ -90 rotate
+ currentpoint
+ _fontRotateAdjust add
+ moveto
+ gsave
+ false charpath currentpoint
+ 5 index 5 index 5 index Adobe_pattern_AI5 /patternfill get exec
+ grestore
+ _fontRotateAdjust sub
+ moveto
+ _hvwb eq { _hvcx _hvcy rmoveto } if
+ _hvax _hvay rmoveto
+ 90 rotate
+ }
+ {
+ currentpoint
+ _fontHeight sub
+ _hvax sub
+ 3 index _hvwb eq { _hvcx sub } if
+ currentpoint
+ exch 4 index stringwidth pop 2 div sub
+ exch _fontAscent sub
+ moveto
+ gsave
+ 2 index false charpath
+ 6 index 6 index 6 index Adobe_pattern_AI5 /patternfill get exec
+ grestore
+ newpath moveto pop pop
+ } ifelse
+ } cforall
+ 3 npop
+} def
+/hpatternawidthshow
+{
+ {
+ dup cstring exch
+ gsave
+ 3 index eq { 5 index 5 index rmoveto } if
+ false charpath currentpoint
+ 9 index 9 index 9 index
+ Adobe_pattern_AI5 /patternfill get exec
+ grestore
+ newpath moveto
+ 2 copy rmoveto
+ } cforall
+ 8 npop
+} def
+/patternashow
+{
+0 0 0 6 3 roll
+patternawidthshow
+} def
+/patternawidthshow
+{
+ 6 index type /dicttype eq
+ {
+ Adobe_pattern_AI5 /patternmatrix get 7 1 roll
+ } if
+ _lineorientation 0 eq { hpatternawidthshow } { vpatternawidthshow } ifelse
+} def
+/vpatternawidthshowstroke
+{
+ 7 1 roll
+ 6 1 roll
+ /_hvay exch ddef
+ /_hvax exch ddef
+ /_hvwb exch ddef
+ /_hvcy exch ddef
+ /_hvcx exch ddef
+ {
+ dup cstring
+ dup length 1 eq
+ _charorientation 1 eq
+ and
+ {
+ -90 rotate
+ currentpoint
+ _fontRotateAdjust add
+ moveto
+ gsave
+ false charpath currentpoint
+ 3 index setmatrix
+ 6 index 6 index 6 index Adobe_pattern_AI5 /patternstroke get exec
+ grestore
+ _fontRotateAdjust sub
+ moveto
+ _hvwb eq { _hvcx _hvcy rmoveto } if
+ _hvax _hvay rmoveto
+ 90 rotate
+ }
+ {
+ currentpoint
+ _fontHeight sub
+ _hvax sub
+ 3 index _hvwb eq { _hvcx sub } if
+ currentpoint
+ exch 4 index stringwidth pop 2 div sub
+ exch _fontAscent sub
+ moveto
+ gsave
+ 2 index false charpath
+ 4 index setmatrix
+ 7 index 7 index 7 index Adobe_pattern_AI5 /patternstroke get exec
+ grestore
+ newpath moveto pop pop
+ } ifelse
+ } cforall
+ 4 npop
+} def
+/hpatternawidthshowstroke
+{
+ 7 1 roll
+ {
+ dup cstring exch
+ gsave
+ 3 index eq { 5 index 5 index rmoveto } if
+ false charpath currentpoint
+ 7 index setmatrix
+ 10 index 10 index 10 index
+ Adobe_pattern_AI5 /patternstroke get exec
+ grestore
+ newpath moveto
+ 2 copy rmoveto
+ } cforall
+ 9 npop
+} def
+/patternashowstroke
+{
+ 0 0 0 7 3 roll
+ patternawidthshowstroke
+} def
+/patternawidthshowstroke
+{
+ 7 index type /dicttype eq
+ {
+ patternmatrix /patternmatrix get 8 1 roll
+ } if
+ _lineorientation 0 eq { hpatternawidthshowstroke } { vpatternawidthshowstroke } ifelse
+} def
+end
+setpacking
+%%EndResource
+%%BeginResource: procset Adobe_cshow 2.0 8
+%%Title: (Writing System Operators)
+%%Version: 2.0 8
+%%CreationDate: (1/23/89) ()
+%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved)
+currentpacking true setpacking
+userdict /Adobe_cshow 14 dict dup begin put
+/initialize
+{
+ Adobe_cshow begin
+ Adobe_cshow
+ {
+ dup xcheck
+ {
+ bind
+ } if
+ pop pop
+ } forall
+ end
+ Adobe_cshow begin
+} def
+/terminate
+{
+currentdict Adobe_cshow eq
+ {
+ end
+ } if
+} def
+/cforall
+{
+ /_lobyte 0 ddef
+ /_hibyte 0 ddef
+ /_cproc exch ddef
+ /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef
+ {
+ /_lobyte exch ddef
+ _hibyte 0 eq
+ _cscript 1 eq
+ _lobyte 129 ge _lobyte 159 le and
+ _lobyte 224 ge _lobyte 252 le and or and
+ _cscript 2 eq
+ _lobyte 161 ge _lobyte 254 le and and
+ _cscript 3 eq
+ _lobyte 161 ge _lobyte 254 le and and
+ _cscript 25 eq
+ _lobyte 161 ge _lobyte 254 le and and
+ _cscript -1 eq
+ or or or or and
+ {
+ /_hibyte _lobyte ddef
+ }
+ {
+ _hibyte 256 mul _lobyte add
+ _cproc
+ /_hibyte 0 ddef
+ } ifelse
+ } forall
+} def
+/cstring
+{
+ dup 256 lt
+ {
+ (s) dup 0 4 3 roll put
+ }
+ {
+ dup 256 idiv exch 256 mod
+ (hl) dup dup 0 6 5 roll put 1 4 3 roll put
+ } ifelse
+} def
+/clength
+{
+ 0 exch
+ { 256 lt { 1 } { 2 } ifelse add } cforall
+} def
+/hawidthshow
+{
+ {
+ dup cstring
+ show
+ _hvax _hvay rmoveto
+ _hvwb eq { _hvcx _hvcy rmoveto } if
+ } cforall
+} def
+/vawidthshow
+{
+ {
+ dup 255 le
+ _charorientation 1 eq
+ and
+ {
+ -90 rotate
+ 0 _fontRotateAdjust rmoveto
+ cstring
+ _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow
+ 0 _fontRotateAdjust neg rmoveto
+ 90 rotate
+ }
+ {
+ currentpoint
+ _fontHeight sub
+ exch _hvay sub exch _hvax sub
+ 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if
+ 3 2 roll
+ cstring
+ dup stringwidth pop 2 div neg _fontAscent neg rmoveto
+ show
+ moveto
+ } ifelse
+ } cforall
+} def
+/hvawidthshow
+{
+ 6 1 roll
+ /_hvay exch ddef
+ /_hvax exch ddef
+ /_hvwb exch ddef
+ /_hvcy exch ddef
+ /_hvcx exch ddef
+ _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse
+} def
+/hvwidthshow
+{
+ 0 0 3 -1 roll hvawidthshow
+} def
+/hvashow
+{
+ 0 0 0 6 -3 roll hvawidthshow
+} def
+/hvshow
+{
+ 0 0 0 0 0 6 -1 roll hvawidthshow
+} def
+currentdict readonly pop end
+setpacking
+%%EndResource
+%%BeginResource: procset Adobe_shading_AI8 1.0 0
+%%Title: (Adobe Illustrator 8 Shading Procset)
+%%Version: 1.0 0
+%%CreationDate: (12/17/97) ()
+%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved)
+userdict /defaultpacking currentpacking put true setpacking
+userdict /Adobe_shading_AI8 10 dict dup begin put
+/initialize {
+ Adobe_shading_AI8 begin
+ Adobe_shading_AI8 bdprocs
+ Mesh /initialize get exec
+} def
+/terminate {
+ currentdict Adobe_shading_AI8 eq {
+ end
+ } if
+} def
+/bdprocs {
+ {
+ dup xcheck 1 index type /arraytype eq and {
+ bind
+ } if
+ pop pop
+ } forall
+} def
+/X! {pop} def
+/X# {pop pop} def
+/Mesh 40 dict def
+Mesh begin
+/initialize {
+ Mesh bdprocs
+ Mesh begin
+ /emulate? /AI8MeshEmulation where {
+ pop AI8MeshEmulation
+ }{
+ systemdict /shfill known not
+ } ifelse def
+ end
+} def
+/bd {
+ shadingdict begin
+} def
+/paint {
+ emulate? {
+ end
+ }{
+ /_lp /none ddef _fc /_lp /none ddef
+
+ /AIColorSpace AIColorSpace tocolorspace store
+ /ColorSpace AIColorSpace topsspace store
+
+ version_ge_3010.106 not systemdict /setsmoothness known and {
+ 0.0001 setsmoothness
+ } if
+
+ composite? {
+ /DataSource getdatasrc def
+ Matrix concat
+ currentdict end
+ shfill
+ }{
+ AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and {
+ end
+ }{
+ /ColorSpace /DeviceGray store
+ /Decode [0 1 0 1 0 1] store
+ /DataSource getplatesrc def
+ Matrix concat
+ currentdict end
+ shfill
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/shadingdict 12 dict def
+shadingdict begin
+ /ShadingType 6 def
+ /BitsPerCoordinate 16 def
+ /BitsPerComponent 8 def
+ /BitsPerFlag 8 def
+end
+/datafile null def
+/databuf 256 string def
+/dataptr 0 def
+/srcspace null def
+/srcchannels 0 def
+/dstchannels 0 def
+/dstplate 0 def
+/srctodstcolor null def
+/getplatesrc {
+ /srcspace AIColorSpace store
+ /srcchannels AIColorSpace getnchannels store
+ /dstchannels 1 store
+ /dstplate getplateindex store
+ /srctodstcolor srcspace makesmarks {
+ dstplate 4 eq {
+ {1 exch sub}
+ }{
+ {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat}
+ } ifelse
+ }{
+ {srcchannels {pop} repeat 1}
+ } ifelse store
+ /datafile getdatasrc store
+ /rdpatch168 load DataLength () /SubFileDecode filter
+} def
+/getdatasrc {
+ /rdcmntline load /ASCII85Decode filter
+} def
+/rdpatch168 {
+ /dataptr 0 store
+ 49 rdcount
+ 4 {
+ dup {pop srcchannels getint8} if
+ dup {pop srctodstcolor dstchannels putint8 true} if
+ } repeat
+ {databuf 0 dataptr getinterval}{()} ifelse
+} def
+/rdpatch3216 {
+ /dataptr 0 store
+ 97 rdcount
+ 4 {
+ dup {pop srcchannels getint16} if
+ dup {pop srctodstcolor dstchannels putint16 true} if
+ } repeat
+ {databuf 0 dataptr getinterval}{()} ifelse
+} def
+/rdcount {
+ dup 0 gt {
+ datafile databuf dataptr 4 -1 roll getinterval readstring
+ exch length dataptr add /dataptr exch store
+ }{
+ true
+ } ifelse
+} def
+/getint8 {
+ mark true 3 -1 roll
+ {
+ dup {pop datafile read} if
+ dup {pop 255 div true} if
+ } repeat
+ {
+ counttomark 1 add -1 roll pop true
+ }{
+ cleartomark false
+ } ifelse
+} def
+/putint8 {
+ dup dataptr add /dataptr exch store
+ dataptr exch
+ {
+ 1 sub exch
+ 255 mul cvi
+ databuf 2 index
+ 3 -1 roll put
+ } repeat
+ pop
+} def
+/getint16 {
+ mark true 3 -1 roll
+ {
+ dup {pop datafile read} if
+ dup {pop 256 mul datafile read} if
+ dup {pop add 65535 div true} if
+ } repeat
+ {
+ counttomark 1 add -1 roll pop true
+ }{
+ cleartomark false
+ } ifelse
+} def
+/putint16 {
+ dup 2 mul dataptr add /dataptr exch store
+ dataptr exch
+ {
+ 2 sub exch
+ 65535 mul cvi dup
+ 256 idiv databuf 3 index 3 -1 roll put
+ 256 mod databuf 2 index 1 add 3 -1 roll put
+ } repeat
+ pop
+} def
+/srcbuf 256 string def
+/rdcmntline {
+ currentfile srcbuf readline pop
+ (%) anchorsearch {pop} if
+} def
+/getplateindex {
+ 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall
+} def
+/aicsarray 4 array def
+/aicsaltvals 4 array def
+/aicsaltcolr aicsaltvals def
+/tocolorspace {
+ dup type /arraytype eq {
+ mark exch aload pop
+ aicsarray 0 3 -1 roll put
+ aicsarray 1 3 -1 roll put
+ dup aicsarray 2 3 -1 roll put
+ gettintxform aicsarray 3 3 -1 roll put
+ counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store
+ aicsaltcolr astore pop pop
+ aicsarray
+ } if
+} def
+/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def
+/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def
+/gettintxform {
+ /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load
+} def
+/getnchannels {
+ dup type /arraytype eq {0 get} if
+ colorspacedict exch get begin Channels end
+} def
+/makesmarks {
+ composite? {
+ pop true
+ }{
+ dup dup type /arraytype eq {0 get} if
+ colorspacedict exch get begin MarksPlate end
+ } ifelse
+} def
+/markingplate {
+ composite? {
+ pop true
+ }{
+ dup type /arraytype eq {
+ dup length getplateindex gt {getplateindex get}{pop false} ifelse
+ } if
+ } ifelse
+} def
+/tocmyk {
+ dup dup type /arraytype eq {0 get} if
+ colorspacedict exch get begin ToCMYK end
+} def
+/topsspace {
+ dup dup type /arraytype eq {0 get} if
+ colorspacedict exch get begin ToPSSpace end
+} def
+/colorspacedict 5 dict dup begin
+ /DeviceGray 4 dict dup begin
+ /Channels 1 def
+ /MarksPlate {pop black?} def
+ /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def
+ /ToPSSpace {} def
+ end def
+ /DeviceRGB 4 dict dup begin
+ /Channels 3 def
+ /MarksPlate {pop isCMYKSep?} def
+ /ToCMYK {pop _rgbtocmyk} def
+ /ToPSSpace {} def
+ end def
+ /DeviceCMYK 4 dict dup begin
+ /Channels 4 def
+ /MarksPlate {pop isCMYKSep?} def
+ /ToCMYK {pop} def
+ /ToPSSpace {} def
+ end def
+ /Separation 4 dict dup begin
+ /Channels 1 def
+ /MarksPlate {
+ /findcmykcustomcolor where {
+ pop dup 1 exch ToCMYK 5 -1 roll 1 get
+ findcmykcustomcolor 1 setcustomcolor
+ systemdict /currentgray get exec
+ 1 ne
+ }{
+ pop false
+ } ifelse
+ } def
+ /ToCMYK {
+ dup 2 get mark exch 4 2 roll
+ 3 get exec
+ counttomark -1 roll tocmyk
+ 5 -1 roll pop
+ } def
+ /ToPSSpace {} def
+ end def
+ /Process 4 dict dup begin
+ /Channels 1 def
+ /MarksPlate {
+ isCMYKSep? {
+ 1 exch ToCMYK 4 array astore getplateindex get 0 ne
+ }{
+ pop false
+ } ifelse
+ } def
+ /ToCMYK {
+ dup 2 get mark exch 4 2 roll
+ 3 get exec
+ counttomark -1 roll tocmyk
+ 5 -1 roll pop
+ } def
+ /ToPSSpace {
+ 4 array copy dup 0 /Separation put
+ } def
+ end def
+end def
+/isoverprint {
+ /currentoverprint where {pop currentoverprint}{_of} ifelse
+} def
+/version_ge_3010.106 {
+ version {cvr} stopped {
+ pop
+ false
+ }{
+ 3010.106 ge
+ } ifelse
+} def
+end
+end
+defaultpacking setpacking
+%%EndResource
+%%EndProlog
+%%BeginSetup
+userdict /_useSmoothShade true put
+userdict /_aicmykps true put
+userdict /_forceToCMYK true put
+Adobe_level2_AI5 /initialize get exec
+Adobe_cshow /initialize get exec
+Adobe_screens_AI5 /initialize get exec
+Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
+Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 AGM_Gradient /initializeAI get exec
+Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_pattern_AI5 /initialize get exec
+Adobe_ColorImage_AI6 /initialize get exec
+Adobe_shading_AI8 /initialize get exec
+Adobe_Illustrator_AI5 /initialize get exec
+%AI3_BeginRider
+currentpacking true setpacking
+%%BeginFont: Times-Roman
+%!PS-AdobeFont-1.0: Times-Roman 001.007
+%%CreationDate: Tue Mar 20 12:15:38 1990
+%%VMusage: 30487 37379
+%% The digitally encoded machine readable outline data for producing the
+%% Typefaces licensed to you is copyrighted (c) 1981 Linotype AG and/or its
+%% subsidiaries. All Rights Reserved. This data is the property of Linotype AG
+%% and/or its subsidiaries and may not be reproduced, used, displayed,
+%% modified, disclosed or transferred without the express written approval of
+%% Linotype AG and/or its subsidiaries.
+%% Times is a trademark of Linotype AG and/or its subsidiaries.
+11 dict begin
+/FontInfo 10 dict dup begin
+/version (001.007) readonly def
+/Notice (Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries.) readonly def
+/Copyright ( The digitally encoded machine readable outline data for producing
+ the Typefaces licensed to you is copyrighted (c) 1981 Linotype AG
+ and/or its subsidiaries. All Rights Reserved.
+ This data is the property of Linotype AG and/or its subsidiaries
+ and may not be reproduced, used, displayed, modified, disclosed or
+ transferred without the express written approval of Linotype AG
+ and/or its subsidiaries. ) readonly def
+/FullName (Times Roman) readonly def
+/FamilyName (Times) readonly def
+/Weight (Roman) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/FontName /Times-Roman def
+/Encoding StandardEncoding def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/UniqueID 28416 def
+/FontBBox{-168 -218 1000 898}readonly def
+currentdict end
+currentfile eexec
+Z¤÷UP7ñ¤1ºµU(= <ºYOu}#jþpèU$¼7F37j©ÁPaŠÀÿn¶³'3¾U¯ø°¨%ì»…þC´qœÂ¢\ ÌZ³IY`½ÿc¿Ñä޿ÈW-ê@Rš#»•¤Ó”«'ÝüØ8kgjŠ…ÝŽ½†Ò (‚űÄ)õ)¥ÅØ ÔÆù¨÷F¼EØDË!»É¾—V±3zE‹‹ð—à€
+aÖuD}¦ž¨EêÜÔbsRÙ’³{$£©Tònœ†$k‡$Hÿ¡j—沞ª+­ÿ–Í3Ѽ‰ŸK¢-'h9uk}Î8&7¿)P]Å_"dÝÂE>¦¨ÿ-‚¹œû8ú^gcß[Ày4¯¨Ä Y%ÃLA`r8š·I·Õ«hÓ‘ÀÆB‚ ñ[‚‘ÏÎRÓƒf×m†Ç%…D´Rµ?¥ sßìL÷[+»Þ÷†9½8jàǹ*(ÏÈ$
+°’´ôÒ˜°i²“€Z·äüXÂäMCmþü¾ÛÁ aeTÀ ½º4™%ê#«/Å+óôK÷1ªÐ‘©ºËœ”Ýðíw¯\Á Nµ|®µ€L¶qiI»Xi±0†ÂRqº›NàŠ¶q°ÑB­Rër»×ð.È•û~š¡›ûh©ÀO™‘àÀÑ|ž7¸×­]kW'¡¿‹€è¶ëp’]j51ÓË „w¼_ˆô‚³TK”9Œ®{ÍŒ&Ï÷¯U¨Œïñ} åÌ
+ÌýQ4¿9ëcR¨¦sÅwÂÿ¥?ŠyujÙ/õ쾸:Ó†Ñ'qòá«MX¾"j3ÜRl®*j«ýx¯÷"°>Ì(‘H›ÇœlÉC‰óßeZíío oF1®!A=„¤~b–¬
+–øð²åüZÓUÓÄ-a¹2:×”&w€={[_mÇ­·óñ¾Ö'×ÿVó<‘‡ø£9×D ?sùXZ‰‡?ÆÛ€ˆŸ«3Xƒ1{8ÇO_5LÚgÛíÁF`uuø¿>äs“ÙOal¿íÎ]1J]DZýO‘ÚWñR<‹IÙºxÒ#O×ÞÊF»…>ÎS¶€\=£ ÀöÅÛIr­h†«¬ ÃLê˜aq™V?7ÍŽ'§)Ö+ÄP/H?@L)ʱ;‡é0į¾Óó²0sýj1_PüÂúùÛxm~q„ŠGp± "ápø²tùò1ÿ”#tb7,ð;¸³»Ø­Ú‘È
+®ŽÒ³ò…)ˆ-ÒI#ëÍ
+7´M`É/_B"B¨õý/Õ¿!¦h²F
+ÈòÌÿÞ¦ö Ïáüµïˆd¦ò5Ä@<¡´uü`3K
+3Úú}è€3ë¨ÔhØÌ¥,\›ÆTë‥ù:ßÐÒ:‹iL²äPžêo£­÷ž–žkÅæÕÚ¯+ðßš6öQC6€V•åÇCż®ÿ☥ãûTGL*¥y°×;Á¦ÇœúÎA?jÒ·ÂâÁê ÷^è¥kjÙ'K`Ò×@[P;Sçq8Uȧc»;~4·Ï|J^~®¨Å‹+AP­X¡þì‰Ï]œö ¿.+ÛZ_$T3‘¯‹ø|ÚÌèãôHP>%
+?ÊŠ8KôºJ²DýÔßt¨õ­òðù]ŽGåø•wÄ”6.”b6,é«KPˆ!¢ÉRû2%(Ÿ/×(k¢oMõ—TÐÏâ>_j­}o6IJäwrK+掺Z@îAùw'Y@Svš˜Š(ÿ¾²e‘2Xœ’a—"•´Îžé]Ã,ø‚ªC°~\Ö¾<hQz°á ø}sa
+ᜮ‘„LÞqBòÓ¦wxHFîËÁrò4ÿî'øÚÐÜý‰¥›J@XÙöÂÌ¿^¤¨d27ß25öù4%“)‰E&GÔôU´Yáð·yÞÍ>Sàœ?–P‘ÍÉ@‰¾
+×ëûñöê(Þí#M 0~êy4uÿ l¼ÕàrÝòJW¨y{»9ú#UjY’4$‹°j£{ÿbdÄnîŠ/]¢²R²uP@¡A '%µ\kºœ×ýßtí…¥(:º&ô2>NSpÕ<&ú…ù´ä}ìõ‡õ!^ì\¹Qz¸ö÷.w\NÝc1yr-¦ú*Ñøí\µlÒDÂç?
+'š >kµ+ÏYÊ}£'U¬¾Å<0å ¤èû„‘H^çÛž‚Ì{ªgWËÊR¼ò²DGìýªŽ9d&SÝ)µ­æᯨºÝW¢Ku{0œ1ÁÂ-‚¤ÙYã–ÈQ®ÝÃzo'¼J'r,—@û­×£Û?uÓ€S’ͥΰᢠN2…:Ê›jö¹–‚¡%¼Î-Šxx¯ðõTHÁl9€§d­>|vRL–ʼn?-9Få}ƒ(á%Å\«gŒüDÂ:y P ŽŠä:ûŸ„¦˜QÓ'ÿ®[öTèUdU‚/½6l˜]ƶ¤uHÉßó—ï¦zC7rBñ¦c[»‰ÄdfµF«ãö P%ÏóS ÀNU*óý!à,2qK/a¤¬ªÐ낆µ}h˜…Ž$EÑÙ‰O¥õ6<£r­–?v|åÖßPÕkëã»O•µÅséëígŒÃÉÿäNN<Ž/{UUP7ñG¬§(d•\!„bŒ' µÙ—cwo„ú®µ‘Sœÿ(³>hç Ž²%“w•\€ÑŠÍzÒIù»•¾Û$¨1€n_½4:~
+|~ˆPyjÄ'à«ÌÓ4‘ËäÅwšiâ–'C%Ñ»O=[Cðe„:x¯x0«a1çÊd^Û96Þ³8Ù6kÇ N¥“c»6ã¥'ÞK¦9ص³‰þå8ɺb F{5³iQ«Ü'({.Ÿ£NØÓKå Ú4å®P©/.;)â¦øzž4%ýk»#†£ÊÇ¡hê]©Z1C»†ÇA›s6B9×RœøpOü«në|ï3ÀS%¡Ì€„ói–qòŽdWþ¯X¸Â^ÕMaìT“rèÓ‡0X7ˆEúöfIè\ÎïÐmÝ@q}ÒPŽy‹}“ó„Ø7ð½,Ä8ø·«sÙt¡R*võš~+ùÁ÷ÌäàlÇb˜L³D ¬WU„šÒ¯UTéÞ„OžŒ×š§ÊóÝn¯ŸU[ö0lë[‹‘vi›{«fÇ©Ýž?B>'îÔà87ÚÛ†RUÅíÚf]Åòi£ÍƶÞûöðüi°õOìærLì©ðŒ ^“âqki ¶Vnɧ7<:On°¨ ä†÷WƒSl»–âðà,³–ßûŽç+á¡ BVˆ9
+ú’Öh¦yýM§wl|ð->{8·¸ ^m`fРCÚï9Â˸lÕñ"¶Æê.%Èɨžøƒ )Bxy¹uBžWU’T”u=}î’÷‘ S›Y Z¯
+@rzAYú<àœSï~7ñõ6ý€ÎƒD”4ú¿O­ÝÓ|¾Òv`•?ˆ¨ ,×4‹T6lµJ¦´!³:LKG?‚ºKïòO"œîi]óÔrå?“ù{Æšt¤˜Rß4„Tsf3rرê¢_b®ô÷]•dƒ•Ã¡•Ç‹/S‰öÀõÿa3`ïŽ<W"¤•ò>Z8üÂê‚š9Ú”¬ýôøPÑMêƒSQpkûUë¥Sºí_
+KYå£ýäF¿f1~AM™Î³3 Ì÷=‹ñb ’Ž-TD¼‚5ñHˆûË'ӯԘܭ¹˜‹°ßòÜçÙX^‹‘;¬Øs{c…Œ ªþ¦æ#?æùLg²ó€ø²“Kà^™·ÿyGE¡×édCK-¸Éš'_Ü”Öj~«¨<)µ‘ÏÍ”9^õ's5rXHG‘";p[¦Þ좋¢˜æ v"Ìy%Í âÞïþà™²"ßínHQƹҫu•‰Î+÷âl riØwé;-uú+€ë®¤ëçæ9&‘Ž6žg½ À
+d1ÉŒö îèý&ΰIkAXŽ6ÍK…Qš&x¶â§Òýù(êÂDÊÖù¿P2:$:›ù8¤ôúˆx°¥ndAuâåÄ„ëšm⡤øzý´c"4bMSöFI/Úór¡jpsô
+[ÀàÒç’Ĭ\„ l–Š¶Ô³Æì× œïÑ
+,.àôv’¬©g‘㘰×Öµä
+éPe‡:öÚ›D±>ÖÝŠ€³äi¿OB‘à
+™lżx_] :§4àÄ—ÕáaFîåUí¤!‚:ôýa"5ÎÐù„Zƒêaò|:r±k
+cˆNJ£)&ŠL¬ä÷ŽY­P;Ãá¢â@Ê·!¥ãÄH­)`³«s¶¦±G¤ë@oï®7€~¥E (QÏ"àÖ\úá›bmŒ{ûNöäI‹5óܶùÚ[(©™‚Ýr¢í6ÛÜV[ƒ£²:Áí€#ñÁçNz-Ùîát¨+,õú¼%ý[ëm3š6X¿×°Eÿ²gÀz !]¹˜tÍb¡%OÊÀu 8ú—+"Nnô‰ŽcOÑM¯ÐRØ9¯« ;ÇCD¥îÍQå ÚdVüi<Wõ»|“ &•Ò)áôLJ
+n“ ¿S6ó°U"!¬eøÄU¨ #O±J"ÐÌ×jiߌ8²q‚™.³rÿ»Ü* 3bÀ©ôÔtžêþŠ øºÇã߸W۰˱Âÿ¸ŸôôûƒPò£ÿëûIUy6ƒ$i_–×ýŸ ¼ªÑýmB¸&ewŒÎ¤oõɲJÙóWú €ê<¾ZÅ“½äv"ÑCmò É'HÇ™zÒSD¤å5Ë+Þ{ñ
+xšã°×JþŽVsõ#-.vѹK­˜(–“*ÎrMê<hëš+mR=…BvwšŒÅRA?[N깩ª²ÑN3!fiøÊ/Áñ̇äÒPaå.Š²þ%­h3:ûa^8¼6ŸGÛ úL)vÒtÁr¼ùÄï)¦»lbVÔJ69eN’WjßòíšeÞ©Ž£;×ò®NÍ㽬ù6€ð·ÝaâˆéÃe¡yÑ fQø
+‹˜Ón*)ç÷âæ
+öÚŠÒ
+ç©q)7UÅÅÍËGÚÞCÃuç%"}å¿‚ÿhÊŸ²U‘=jÚÙ3^lØÌb°­¶¤L¸1´=ÛŠyÅLݦþ>®Ü^%¶¤þía¹ÆLƒ™»‹­¡vBhnê s<O6'êaW=,ÞíSv 3#nùF3R$”ñ 2õ¾[žWlœwxòVkÆ©oÕ?WA¨ƒ¹Žë–f”|Ñ:ærOR©[w|Ÿ3³"ªø*oú tkLÍ=¶§®ÙÞ±Iðß3E“’t8K_èШ"¦Î2Å’fžïŒ£p é¢,>gf¹‚°T£
+‌hª¶ €¸RÓûtÑX{+Wyöå8­)ñ9ËÅžr¯Ô¬Î7jJ¤ÞZšMd¤
+ñˆC }ŽÂÅ8ÛÜ#)ë³NR¿~Ybw:4Ñ…Ü'„4^˜{d;$#¿ZT»~»CSa–‚ã86Ò#úâ2la䆠EzÙâ™`F…HI8g
+ºx0…¡Uz8w8âÞ1«“ÍR ‚{BÁa]ŽsàûÞ1
+5€&›mäsï£q!íñfœè[`Ñò_1 s44špŒØÐì9ñ=;<0}ÛW$Æ–û=oO’  V#vöGÔ¸ê܉ff=ªåªs.ýO ø–äð½ùã’ž…ؼy8ÖÄÙ(J»\‹yÕÔTv.Š$~­.rõ+Ålÿ­­´;a=X!L’G
+sHKãWŸGe`u`é¹ñø‹^âøsXK%ÖýÝGÍB˜ÎéŽyßA[¨„h¦Þî°¹2èÉy—ÆHx„(÷þÚuRûŸ’[l-{Ã"¥ÂŒ…—;X
+¥™ëî ¨tq*fgjdVκ&±2ÑŒ ²1ÉüK›Li)PDƒ!xƒL™4<ŠNéÒ(;ؘÿÂ^uê7ºèF)E쉼Ö<·³LQTÈØ Zž£Þ|É35¬W™õ_ú ”=½¨·ÁÞ¥ €<ýµy¬9j–šáÒëRÇw·
+Óü uLx-Ø1ÝÐLæ/‡Ëv±nöìõ8ÓúÅêêÎÏN–N¦º ËÊ!Åjÿÿ3]f¢1¬(}4±žËF(d¤Y ¬ð1¢ÚZ…ªMuâUã€ò8«¤u½DlÛwŒ‚Bõp2!‚Œ[þ ÃêF±Ó'r/®\«Zi“?rµ@H ’@œòq»;BG"/c†n o[_¥a˜ ˆN;±M~Hé^×4™Ùxþ-{ Vœ:\]_m3A‚9¥×%–G4¯ã°ËFÁl븎%sðÉPÍ4ó„’ Ÿ=6ÅF«Ë4¾Ê€”Ïóø3¾ÄÆy: ÷Gõ'YѤ!ç‚ÊïLÿG,Ïå}§ôNWhËêÙM9¼²©GÔ¬sÒzÈ+Pó<Ê‚úĪ5Né5ÉQ+C‹%ͬÄw=h¤4ZØ÷&“¿°ºó8È~yàË5*‹3y€Í—Vsíþþ`ÅqÀŽOH"Amá
+pÐÌ!ôjWéýv±,Ù%¯ç¼æÙIRNUÊóÂ…ÃX‡}q^:Ÿƒ*UlÅ·ÀHÄBJ½fÅ-úZò9Ó”Ìþ©îàŠk‘Ââ—Þ`bHLAKDâY—Üžè„Ý£­8ÔÑTü²ìJ(ååþŽêFëB©x„“sÁ344éÑ:Ôâ
+Á›{úF›Žõç}ÿÍK\eD/=9¹TNé™U…ÿMoS#v5üötIxÒáÙKÓ?ê‚€.]ÿH-c ™pðr
+µŸÅŒwA&‹IÛÈS–ÒìNR=4YK¤‚ÆÂX
+jXÃý‘£»>ÃÈKýøÜ£7®Bì}mPiâ›cÎAʱtæ^û»Ü+-óÙæ?¢ÚN$PƒÈd5âWY{xkh\0d“]‹p†Öcó4J³ó5?Àÿ—éó¿‚’cá}¼<›b‚7£`çKš5LºàNvN”Ïý†mZ;ûÑ£ôþxþmùûbî÷¬Üëâ ÁÉ ÿklkéÐ?sF‰´ Ø¥’ä)iS¹»À×òfÿB­Q/Û)اÃÅŒ(2'¬0\Ðólþ ¾ÁmRm|µUè¸hD>çj¾+Æ;¸%èv¥ËdZ™¿äUè9?\WÀ±‚øÝ¡™þƒ»È}ö„ G†Š:áý8>ß Žw˜<¡º³Ó­eÆ¢&èIAj³i«†{ìÄÐúâX²k§˜~ŠáhD¨æ”ùîëxPC<ÆkPè]éRÛ\~Ó9¶Xg•`X`žßÔuÇÛMGÿwí“t½+°³”ãð<F‡R(éãªYÞr^+'¯ä ÙE‡0Í,ÆJÀj*1^S×ØooXVàT;RðàØQ¢.—ào’J.ˆÇµÕ•êË<| ¶aYG묧SCÓ*»þ»]QˆÛ]c¢I¡ä§cÆ5íb†ÉiAäxI±ú o­ØS¨Åéj³¥½)ñN¿—ù;¢ÞÜlñ›^f¦ªPµrT'«…Àú±ºÕÐ9"Oé臾³j7µ@Æ<Q@hŸ—eÓœÅ#Y>žJmjxY
+gzžo‹ŠÞ;4¾Ó+ìÿvç_ß¹’©y(d6æ#·]™Gß’\Áº0cb[p×M¡ ØYûïC^Ç‹<vÝRmÚ"ÔÅ0¶«@OsÌöǽëU^(­sõþPÒ{Ó–  C]´E
+ÑæöpÁ@¡«l\uCÌ=–+žrutt1ˆÑý!Jÿ I³‚÷þ¼æÉ¥xÀÖ| ´Š@¤’· {뚯½^Kn¤+¡§±?v™òEœBH²Û‰vÅ›ç™Ç-õœGFÔ¯ÑÉþN‹Y[ÆàW÷¢„aa~T¢‘zúë‡p¤TE,:™G=HX¾Š4
+É•RW®pˆ¸º¡ŽŠÎ›©²Õ.;κl„«-^h¬§”l´”í¨Ëks¨½ x"l%D,€JéZe$‚ð‰¼˜9ÂcÚκ .%ãGPõJ¦ê{½ÞãìpA4Í/ƒwÞ$?ôóŽ‡ö.-Ãx™s2G[æwëíwˆ)xW3>-UÐ]zJå1
+¾£Ú³úúˆw¡ü3pà:ó Ö#­9{™¨þó¡\£Éü^õúœ«]\´f<Ï·ÅS½çÉÅ×)óeh”õÜ8·;tûoň8Àoè¾è,´õ-8ÿN‚F½
+”Y7¢¢×,³ÈW;p؆Fs_ßžµ†ZACÇôVãQ›Ýª•y4í!®$æ¡UÅóñ¥Ø$FÞæÚÿçÇ’ÿ$;l’Ù›eÌœ7÷ÔúÞs^!†íõpÂ_ò:Ïž¼b®–IL@{iÙZ"µè,æ*ÝŸh@-]$¿ûyF äÌJÿX©8UŸñÎKÀ¼ŒË¸—,˜†¢¹ÑÂ&&áù3p|@ˈì0ßÙHì?ãë1¡SÝšZI*°ç¹ã®5zõ×%,z""dÞØ„îl³Û <CŒ¿ŽeanQXðþøy½u£ñý¸i¸!B$uºß^Ô}T×(w›Ç8öƒÔÌ–8P@ÁB ›qyà EBò(¦–ÞãFnÛ?xõ¨[ žà—fêëqIƒ˜ Îy}³:+¸Û¿[§k^Óȼ
+Š‡h‘Y;K?q¦þNJzq Ó#ÑÌGrzþÛáxþ•Øê"ÿÖÏË–@è8ý”öS/Î)Z~ÊTé^:ž+7a¹GZ«¦(f ¼ OøŠ<~‰[' 
+¦×âùü†ö6úZÎCß@axF—Z¬W@ú5‡¨çù›ïçê›·ï¿ýmRÒkv\\ÂI.v\|´œ4=bž\Ž»—Õ}2X*8 §Ë"Ý@
+OQ2nˆ/w„.Ì•`'ÕE‡¼‡#ªX㇠áÍ5ÃÂÍq¶HJç[„BŽ`·¡ÍÞæåì){í\”" ª¿”ˆB#‘–HtÈŒ<÷©^}#Ì•ë·R2˜Ö
+iððÐ'ót5jD)øûf Fáĸý CÌOˆ“a¿®¾»u&‡Cæ„‹êÕ'kØÚƒ—V'#I‡æÜÞTíkÃúC´„¹"ã#¤‚hšÕ¸Ê~`ã¯1íŽÉ áNn1Λ5”`¯êF¹³{”ÎdÃøW³˜÷«1¯‚HØÀÛ³Êå› ü,Û»fK+/1%&¢· dÆz‡Õ•í„Š±hù¤T¹¯ÅÓJ­³Ã1êµÕZVºpºeðÁ.;š>\äŸrCY^PÕ;`cÏ)t€·x4ÐbÒo¸4²)að<uæSXòÄ-}Gÿ6ªÑ× ðå©®‹q·vÝÊ »6%Y¹b@{ü62ŒÀé Œ"zI©*̱#BÚ8¨FerHú•3Àéæl€<vµÖj
+uˆðVxC’f‘qû!ÏèF2È‘ÚÍð¡yHwõ4®eÞ19d›Ãòy«Ž{×sçVe
+!#U]ãð€ù(©èj™ñ>Ì}*"£ýÈU¤´Ë:°v2
+’ ݪ«d<bJI$WÏho¬²|¥óó2c^š‹™ÂI¦Æ§€HÕèýô7ˆêúéï;z±(RžÍÇkcÌ"Ýë,… µi@ÉÿGÅÿ£=ðk'’Æ
+Ë‘oY€Çô¿Ø¢°Ž¥ ÛU‚ùûóÑÒÜãWÜä'D¸ž¦ô9xù«^÷ yhø\G­;…Âf+D¯/E4Š)…ƒ–µïD‘I=ÎJÄHÜeLHâ$Ä‘"%rr0Ó— ¤qMÔ=.Kp¾sT¨~€ Öwºa Ò}¦„DÈP¬!ª€y?¦‹Ø±$;v Òº ºS,¸~Æê„eµ§Þ<Ó„Cº‘5Bôýº(välµ+;CPÁ{Ôe®¬9,"µÐdñI#ñäp—L‚_fªæVÎ…—RÕ
+£F[#bÞË:†÷7~¨Rfœ\®‰¬Ó8¼UŠ¡ uÀYÛ€ -cíOƒê1G§s&<j…ÿªÖsì$yZ®$['ÌÂ0‚L‰}^&áCÁe("0(¶i7ß•†5ƒ8Þ¨ï;*.%H$nÇ|„10NÅôßÊYH®;kUê_ð$IõÄõþÁ&r ¶–VCcÇÁü~qCÇ1d° o{Å|^Î1SS]¶uÅÀdÿeóVœÁvë`ÎôdâkÉ •™R E ‘Xµ¾*E_eåJ~
+¼Žøð—ú¸lóOõ'ͳRšµî<Ô•ÌÛ‘m y´}Úåêèýç€JҷˆYvt±á þ2¸ØŽ@ŠÓÜM~}áÍìcá¥Ö5ˆµƒÙ"Na+pÔØÛÞ‚ÏZ¨¤2Îf<{ êÕøZ!m×õãóñ+´ÈD†7¡–=IY]™
+¯ñåñÈÄqéÔÏâÀŒ7È?^}‘p¾o&™p£Œ(}M¢·åÀüJ£°Õüp¶BržÂ,ìÄê[ÿ„¬imz£u2ò+ÈL¥\Ϭ|Ð7(Ž_»žæ}…1óšÖ?$¢ùHaÂ?Ìl¦3Œ›"t„ùù@©á´#2M#ìvtõkWª¼’{#’­0“UÍ Œê½º/“Fƒ[?œÿÖ$ÌH‹§ 
+k†J^„³ýss(ÄÍjë8Ë[L*˜.Yµ¡1tº¯_Ëþ:?š;wmUu$¾8Ï®%Îé3«­g)WÀ]
+‹óŠ¶…gÙ¦ÝK5æ
+sø2àšc{Ùi<#D»Mêe?0MÛ@¡ðìq<`u“»úœu‚éëx%jüjï‹Ë\ˇ>{äMòê¯ïÒ‘P[t­3 0[­ª/¨8H J*v5BÕî3_†®Íš{E ÌåtAÈÃPH™î}@ûžä2¥»K~ÁÒ1 Ygª¶4£R3R|QƒëÝÕ8l´0ýž,ÑB <Ç‘³çayƾ#Ý|ïAå Ù*×Í\ÆX·™„pzK©¨CÂÖ9˜hºfûrÜé¨Vl õöNTÑþ›FÙ„øµ•?­cISÁ!t ‹D _„=÷|w®$À7*…¥66R¯“VéÆKœÖ¿,û´O®ïïÒE]ØrD=˜n)ÖPD. Ïvp”£AÒîË¥5îÖû ój’iâ¤kr_‚‡/Jév÷ôý!¼x¨Ýà˜«fJV¤?‚=ò:OöZ[ Cª«*¼JÎÄðöHÎd‰ôBš¢œ-v¸Ÿ Ú:³èíË]ñ³ƒ—D±Áu\[ê³î˸˜@'É­x×ë‚Õ;ÐòiåúÛ—REqL9þ_fãZ4qÑËð›´¦.ÆLD¯>¶O¿åÂŒKûÊM¼€Œ™~èÎö“J©|›{D#¯€¢ï€g,»%,jò¶Â#—:e¸©½ERvpìÁ•(ÄCŽÐÜÛˆêšüƒÔO6KÁLÏ çjDìÀÈ«õo}u^‚rÓÏ›–»ZJóùŒi˜âÅ¿`¨œã5ü~gÌŒé"™&¸ÏP®nŒJìðõ¯Y2mèϸöé8Ö\Q©ÛôH²¬tôüÀ·rd¾§ÝjÏ©v°q¢Ë¾¡/}?f¸÷[ìÀWýU]„û÷×`D^ÂzXòߣ¯6ð•ZöÝ$€Œú6g³‚
+w.tN±”ôž§…›ZN÷à<zT\T§WÙ,À,R°(☠®¨³ÂjŸ¨…Os!^çè v?Nþ”RQ£Âä€jBÿÁ&yÌ P¼aL†’©}º±ÒäJ =¨š‘ËólLj"%t{¦ïîl\€7üƒjjÖ©Y€ËÆÍLÎyt‹¼u\V[„¯_ãJ.¥>Hsíãàõjü{Jrx0»94pŽ"-;‡ç:mÔC±ãƒRo©äêÔí°DۿܽSÞ ¼Œ~f¯°è©¨8ˆä K×?ê‹Çv%]}âÜ̬t?`cµ¡BÁ¥X v›´{ñŸ
+µ¶؃qâ™E!¯Õ æv¦°pÊ•Šß¸Õ[|ø”
+^}ÃE‡G=3ÖõË£¢zü!eøë<!`éûWçùÛY ªkrõPӵ翜ª€IF”=„‰§ÙÖóÁ8\ß‹×_¥]Û½JÇ®€±P«ô}ÏM>éÚOD‘Ñ[ë§nBgaª§÷ðÓVF]q#œ¯WQ¿ or‰ »ùx±H‡¤?Lÿ k¼—·9‰j”DL—À.DW=6º ßîýš®Pí”0P¼çåÕZá°y4¯}žwybP) "©…!Ñ+½¹B¨O#(ɲž<t¦GÞ`´È}÷åùˆ’÷~4duµ°ôWžï?‡`JYƒOïþì
+HˆÒò%!ltïÖ—-æ
+M´Lu,­ðÕŸLCHì̱.b, 6ú"cyÜÂT¿iµ\i°ñöù–3Æ"bPö©r¾5¤uVøÄ"€}—¤Qkç6 íB®@yQÍÙÒsXù·°x_ྊ5ó9)>ú`Á õ7]±áGP¯]Þo­EUZÈ ‚54-ãgÞ×
+SˆX,ò$ îÔ?§!¨Pÿns¬B[Èñ˜ÉÊf‚)N\_Œ¹®Mls¬ëÂ@=Ý ia©Dyí¡VR®já˜_7M®ÈpòHGJ*cH¨÷Ž:­‚M3§ov… ª_(ôURO`CÓ¦‡;0k¢$Ö•¦ÀMg@Ÿ„³
+éQs¹Áí:rzÎhxÅ¡ ]ËZßÕoF9üØëô¿M¸Æ)­­
+sIa.~CõL ¬€+®.®,¢òx°¡šðÖ[Ì1opl{öÆ´2ðœÙ¯g¢¹ÔBe‡¢àò.C)jh3qã†^°ÕùÜ6¨ïÐOX®chÜÒdÑEæž%â;ÿ
+¨DÀT’Có7£z|Úm¢ª÷1‘°5¢2 Õ—±TDIªDÌá¯ú+êHw¢$1ú±7·O­lDkŽ¤xyÕùJÏß 6t4#<7Sp)÷àÜkCg°àÜgÉhIn0vÞn
+£¼-Øå÷ï»Ï°ŸX(írXµñ()±ÍþÙ˜ ®6K¾Bý’‘6T’Ög“L^iõõ¬s˜
+üï5K»8Ô¸îY“v Xê£óü!VðTŸßÚs–çÕU•‰=ñsˆ¬Aa×£™…s1ª¢E±TP(µ4kÌ;ë•x¹ü¼„Óʘ€¬÷pnPxÝߌËXåêÌÑJ¨Í”@G[Ä(×(×™Þ÷#
+…'£©TÒÛ/…HUÇX¢££ }x뢆²ä°¶õÏ;iCmœeßßGŽ,ÉÎÕÐ%ƒWàªÜÈÞaŠ(jåؘn×j‘Û.ÅÿÈÒ\ãòb/?Þ#‰.( eñCÒæ½yK³"óçPûmŒÙ´`¡…3á¶z¡oq{݈qWøÌoÊþ—jƒ1°hßÀ|Op6úgÊ8f¦ÎWlÙÚÓj¦ýöë
+˜Ô’XãÏ£2pÞOþ¼3b6L†þ™Ðù|}cÜZœßÕ<_rÇôgÐz5x=íFòÈ­©Wï5|®‚@z/¾z”Ÿ þí¡Ü’/&´›«¶×§{-æk¿ÿÎÑ R®•#ÎYÚWOÿµÁ–Zh‰ “jö™|/›íš9Øý‡QuÕvØûÝš˜1°Ý'€K°Q„Z%« ¨åÍa”´Ê¼TŽ|©
+Y×€V#Bɨt—÷µ‚§SÐáiÌKȨ³¢
+qïüá¿Î82uê‡^^ —
+È¥z¸‰ ú*vV¸›ÙV6’fãKf­&GÓêvµR<슘ŒÛqó|yï›_YrèÔ,ø×):E|.ÇÜÚ0ECác¥é(æ«3]-lXÊá2Ðë|®œ¼¶è$T¬Ü®PÞ’ŽÏ"%õ qƯV.pCtLˆ=õ
+…Ok"±g¤RH
+yÞ×\
+·y ЈýÜËù®zæK„C,beh¡ö„&€îJ3Üÿ1œò 4ZXÚg³ ?¦Rb²ZÝ­ŒJŠO ±µjH46²Þøßu”ÀP³_E½È‰Ôˆ8÷ó5—ô¼Ø…”(—¶ ˜¬ ½Ã㞣m 5hüS#Yõ|$€LtV§_Å@yº£f‡°±×pj?X…ƒîò ì%É>4£z–èF‰
+Ãa¢ŽWx zfäæ[+×ï³y†~Ü|¯N…¼ŒÙ•<ÐÈ«ÑT¶°KæYÏ‚ÍÏ>=DòˆÙ×’½ ³Å Ùò ¸Ãñt,8Clî9EÀ"_/ò¾Æ›­áÅá]Ø®.ö1Ô`ÎÕ|÷ ï§ú@n]/6ü/µ|¹×ŽH—|‚b>• ܗЀBË鮆½erA)ÿ†3Hªà^ævÈtMÝ)r€gU–`ã(S}ÁMÃ:ÒMÏ,K ¡éfCµÚªÍt*@¸,b¯Æ%,mù¿ÕfƒW( qþÉŠKvóÜê¡%™.Ìj£»hÛW|Ÿm@Ê"xÐïMOXµî©Ã× Ö8x®âî ¢K÷¶r3¦Õ[{›ZEó4·þ¾OÇ[+ÿ'iòÿ¬íp|Ä·‚y›­ÞO½£WËTMÅ=nÎÇ®Œ|™a‡Ìª¹—U00#]ªö«Zæà]à93a7«Íg‹˜ˆß±Iè-È'9ÕüßäŽeÓ<k›vŠ?6µ%T§äY ~Û ¶¡’={I½¡ãÊ£D¾Öµ—<j¡#Œ³ø›×Ý©þ
+O€C˜þ:¥R'MôÊÓþÐ6ÅM ŸÜñV:—'#;¶%SåÆH¥J0ëð–Ñ«æ/´¿ñó„pWŒâü¿b=0pTI¡øš€MYÐËÛEîÐ;h‡Â'3…9qÃ_¦ Ô•^i˜Ùœe0‡šâ­ÿl3 H0Th!tÅêrNöâ§ß(,tá—
+“ú¤Þô£q›=`«ù|¸3b¼^1Ât%¨®èöÌìv
+¼¤AA§"
+¶ŒÌ•@3‰·DñÞÓ™·M-
+Q»þS®2ØiâG¡6°½ï±3ªþŒ“‹ËŽlØUìW2Ù)‘éÌ ¸=›gº`l^»òâªåXå6ºéöÀ0½œèÍ:õýM tfŽóÝÚPO =ÃB<šÿ(Ñ·ú"ÑâéeD·;§5¿'k “ëðªG©K½–W®èÝ}+ñùÊ÷ú“*àñÇá”G-'^
+(¸0XŸdæVÊ!·ë#nx~ Á\ƒ,¾Rí¡º”¼=5Ý((c$oÇàr»Â´¯kÀ… ñ¿¯tg<­VvŽ¦2#i<Õ gVå@dϘ>Ƴm+X´]|¹鳘N6JÝV– Å`kÔâèê;-ÐâoV¨2 èM)4zû ÆѼT§Lh²7ZûªénôpæCßä5M)Ú¥t«ºWm6–Ûˆî|ûHºKÍ bÍYOˆåÖ”¾½Pæ)×]L 2"þyI‘úÁ£Bßd`Á
+ÉÚþýe€,hïLÒ7LT­}L2ÄšU;Ný1[jO°&ëp} ÷ÂmŽWù¸
+G@\ÀRþg ÞÉn½x#­*ù„Ö "Mí¦ÆKèJ¬y~¤\©ðA?Iœ¾â3*\A˜¶ñZÞÍ¢:Jí”B¡²àØ“¢V5y‡TÚìPigX«õþ®ET‚ÇW²Ð­ì*•õ ‡E°ç«,M}sÜÅ"%4‰4&€²®[¾N…Ñ]ÉÄâ´oƒ­×c"=KÌüÐgéoÌ]˜‹9¦wiµ°2ùÄfºÎZ·Ñ¹Ô(ÊHGK€“ïð¤'˜›b ÉË×æ(rÆ—®j| dÖ¬ïÊý¬ázN¼.棹-4óôí…+>K
+Jž¹'Bäï¢bA©8˜{ƒ,žìç_ë£
+µçe\¹&<À‡S‚‘Ãï¼¾à]¹Ù8P–Š™ˆ†–òê`¤‚á=+ 1.ß1ƒŽÈ_Ë”ýëƒ)ŸyÇîúRžÛ6e&g}o}Ë·¾¹ë«"lz\ÿ‡vútçg Üï"«¨ø™Ãpaó
+ã0ªm]b“‡U‘¸™ÂJß²Ú!·FQÄTØy<ðm]ÎN1 I“Péht4uŸHÂo¤Ì=J,±SϾ¯>ãdçPèçÃ{¥Mw”÷ùs][­¡h>LªHÔp±]ñ´¸<DÔáð²ç¯?™™dÈ&øÆýûH–HsâÏCÔ0Þ?C§Ý¾+±$ÌnÔÌ'$Ì Á\õt#— ‰ã„}pÐxRÈR\Å9è¿ýü‚~pƒ@–÷7^ î'_€¹
+í žøÓ”í9he'v½èäÕ¦åheƒœäbäHotÝux üµzË"&W’úí¼2*WØj,H³ó>a_ï
+3šÝJÿwû%x™Éï ŒÉ¿/$¨íÁ: M;ô ó÷ðw å„ØL^?^Åwø²ñàE>Ò”Ÿï~——• ©b†„v&ˆ¾JT32iš#ÏcEY¯™hì©…P®’2ñ8Ôí=wrCk-h× žQ–ý¡•Ÿ99FÂ÷²K™u
+þ›©ú¢nîÙ:¼^ð4Yg-ËËU9‹u@.ðc¾Û3ÚöX?¯xéuT™áù*c¢]Xj®Üß^Øk늻+{õ|ù߈U¶X®üÏè\è¶ÉÊDàŸ ÈŽUþªÌK@ëŒák>Eà”€°¸¿.×$YæJå| ¹)¸
+Gža¨ÿŸkÂ}iŠŠô´ÁêMPf#VT=‚M©¢{¡õΑ&y>¶[ØI•Ý†ÝT_oý°15Šâ· ¸9yÄì¢âèÐ+îEušÂ>^ø/‘ ƒ$!¨OKµ0rÝVfù+`'#˜8è©9Æ-„ƒ&
+G !íš@“B6ͯ¿X::šþÓ8døî¶h§0ËFÎÜBkK¬FGÐêP/ÛÝÏÀg˜Ç.ÒÎeR¹eÝd|«J¡âD¸‹’™Ö'9Í'€’oŒÐÍM£‹R\<jiGsãm,/š„bW@¹™ù½Ç Œ÷6,¹ì1R­ûÎ'm¡
+">©~“¬ï¤bºåd\ÆÝä)¯êþ­‹\ñPxÁ~íîÂœ7·rÔ{ó‹\¤%¸÷$L4Ý/HqQå0¹0jáŒCu·[þ‚#)ü©$6üž¨£°ˆÌ6ÑG
+¸G2¹uîmùOµ@ØITâAZo¯2Ê]‹×IÃ1ðjjìY蟛G³ÿ1ŽØ
+XÖ²euN€\™Ž}¦·áá?øÅ\¥EÕ×ÜúPæ5ÓQ<WWžµ¸ºý·/¿=ÐqQ¯
+s’Òé}¬®´Ýô®§H‘GrAxÝf„Öq‚©xœT¨ð"Ê
+ìXzdJßFÆ%­³ˆ‰;% êtªIIÕÌŽ6Bw¥øÐUPH•Ë(h@˜Dœ
+;i ÷»`Dô•%¾2hC?Þ?‘]#MuN} :¤±vž‰%vƤÃnUM`.YæX§|ì÷&ѽïSB¡¸‚.Fá_ܹ0¾iëûg/G¤%æLKN65Ôfÿ£Go/".4ªÂ¬!>+CÞ¾ª`®nyR×'Ib/>§ÿeÄWpæCeq)%9Z‚ϧ~+a´Ê®5'< sôSÒq»‘ÂLM3-C½ë>Hì3(Å;8µ˜i4/w*î†õk¿–Óµƒù
+¨ä£E™Ö^
+üRCÒ®š¿­ j‰äÉÙËÛ˜˜¬{ƪQ^8ZNb L’´4ßæ''rvÚa¼$ØáUvªØ¸ð¶€Á<o)DÑ›-Öéö95ŠÔs˜yÍ&„[@Ü$A Z;öÅj)ìâÉ ª­ž> ø9ê„ >Ò¼Ûdu~s|þ…ÈAz÷‰È÷gv@¯8UkTÐ}U œ–Ô,tÈÜë‘‚Qâ¹Á{1‰b<÷T ‡ô˜#G÷íø¢—þ.8^_2ÝõíK• ŸòDd°ŠÈ&ÜÉÔü¾î¨ž
+š¢½‰Úë|Ï®ù¤‚mÎé÷­…‘V>ër$·‰œ„xº3/Þä¡Å¯à:µgÉ…_3Å®\æiT´`Ú¯¥Ÿ«gwÙW˜7f戱GÌ+}H.T\êBÚw¿²ãP%s¼é»Ø½Ð­…f´8`jIE0¿ã…/üCÖžQѹ/v‰O=µ. #Æ­2‚«âÖ¢-xƒú¸ž\ßÁÀUt6½gô5“=ünê|&P\2¶E\‹¾(ÑfÑÜUP0hÝhß¡ð0Ö--Y¨±]~…÷Ö²>ü'·9ÔÀäÊ(CX
+á4çàÍÊ%‚.9ô/“VkÅùTÉZ]_\Gft=ép-ë/¢ÃùàT›/ý·ý OY2ÅGßåÎ_ß*·g—¿uÓç5õ¹KüG¼}x!iÿj »U+*#L›õ¿»™Ì[B,/PùßJ¯L}Ó«‰)½ßUZ·¨AºV4øi}œ\½gn }†V<3(ßæÔý¨•jW~K¬w‰üÔxõâ̲K¼èŸföäŸGwp°z]…A…ð­\XÀB$OP@Å16±”DË/
+
+}vŠõ¦0k…8yEGÆT®ƒº
+ÍíP€OïuY«‹Ôå ©[Ùµ½x¸¿k“­OÃ-qå23]_Ž>uÜTˆÖ®ÑzŸvئ@_å *?®•¹"ã‰eø46”ŸF|gžn¡øbO¹Ú²Y†-×lùÎ*cy˱<\½×ÆÆœµ% š©ÙIöFô亭¡b ÎÎ. ×ÍA® ý|–B’Lñ¬z·Âã`Tí³÷þ£–°*<%öc­=¼Ÿñ'¬î¬H0µ3iîÖ?Î÷CÎçXÍyÈ‹õŸäi¿áá5°Ç$ˆYzLƒ°“ñK©t/¸2ø€‘Q1óÝÖµmPÔfÀf£ƒÈ<üßUßlÖä +ÒZm”ñ^%Å‚µ<Æ3MÊ´ÄrŽ„V,¡«ßdDj­
+è#WvùYYг[Ž ýíü¢Í+øZ¾Ö2
+|¹ˆ ç'êDÇÌi?ðÛ“ÖTM7Õa°3àâé'éßlåM+¤Ybð.BaœØ‚Os€øZæÃÚ4€?ä7G5TX®éÏbyCéšsKú¿ÈX÷°Vüt±£ïIÄÊ Á»&Z«¨"²çŠ>~DÍt%/DÕÙÆ#’
+Sÿè 6·˜~3iÀ¡ÅÏÔ2È<E…þ`v¸åhƒ‡uÜ-e“è›5ñÛ®ÓBžÛ
+=Œ”$î¾O'4¯Ý±õá_¥k}U²¹ ¶Zc°ËŠ‡Ç¦ÃçÇfñWÓ¤c#ïW9/÷¨[ˆ(ÉÕ ;¨\î¬Ðif½R¿öØÿ"~ùtÞ4ÞRSíGSú}[˜´Ÿ‰¹œ™GŸ~ÒÍmºÒJûZÀ]êÎ4§XÿŽÊƒµœ'Aºi嘬O¦Ó*„5DfAÒĆ\t¯Î
+¯ ;„„/Må¡50¯O <aâŒðÖNp°¢(Ö@ràËØx«óºCˆ«ä/ DKŽÍÒ’×Xn2°ÚÕFƒ#dÅŠ~6"Ç®B˜(j3ÙøB04·0W\{ëƒV•ƒêQ‘nuÝ NsohWÏ@Ä€€WÇSº4“…æI|ÎOÕk薦샇J˜>ÉÍîÉ«']Õѽý¦*EÊ…•0éàÙDñŒOqäDÿ%…³V™cÊÆÖ,Ïv¾}•nšÅ˜Âü/‹åè‡ðIÐ 5^W5.GË
+Ü“¶Z KynÒ§P“†ÈÇKªB¾"8KS pãIYª@+Ý¢£s ü‹DtÝ’»Å
+îiÊÂ…Ç`¯Ê‚É{FëkÖ³Kx[kê¼óhKÄnž†¬\&ánŒ§a¸ÒhžyÉ”¸Ä†dpCyôÖ„ÓM­ +óÆî‡h–ðrái1ìöÆbµzá2?ÏÅø¨xÅö¦/Rªâso 6)«z8¢ QØ·ù†Óõ!úÇ¢OÕ¿ŒZåêáÂM,U´ËÜ• ^˜ ¿x¿8‚‰L¥E÷–S9Oz+äâÄ©ú-ÄÝ¡ý|µ §@üˆð¿uF®_·XºtÏ¥Y.í—µº ùÝú*µñUqMA£ë
+ª ±¿ÐlMX1ɯˆf;ö³^f\›Í7dº—Xè*Ø‚yÊʾcKEì¤}^É>@¦wÀ÷+qX7&e\ÍÆ ÕVù7ÎðaƒzïáPYddÚxÍ7æŸáÊ®g¾/0Òå™ ¸¯¡¶X ùúAñè±T
+l^Öt@þUì¢3ˆ4§…dÄá¬Ó¦ä*½lrçÏ°°:Áüwé¥Çœ²ó(qffÊ“É™¸Ž®yuwY©Ú¹Õ}ôEñ×·¢J/íœâïQì(AböcÇ4Ééõ>Lrâ~²c”Í´½|“Ïùyy3͘ì«Õ6•Û!aj"g@Ÿ’/¾òôÓ˜¾BVíöÒM¥Dç!ý
+rÇ‘yÍ^¨õã&é¢Û µ‹dÍ|¦«”;/´gÄTNC•õVÛRâ B$îdw«:
+Ê£kLä6¡5gàO\U1®ç¹Âfy<º—áï*Me*|öžO©Í’ï™Îá{xÕhù ˜œÝ7*öâÊ^M\ [i.%Ç¢R;ü͵Ûó(>Í÷©š›ÒO!fñVäÖÔ»@¿}&5™µâíÙ§ÂLHUö }±ÊßЖÿe]$¿…Ôͱ{Oõá%Q“á—=F{r™ð¯QLÈ qyצEþææKá7Æd’ì§C
+I W#w×[#òÐ|û¸ÇTÈí\*6¸ð’阮ÿ{YèÐrO3Mf¶Q͘ ÕVé ìA©¶6Çq÷Rü+²ÖkA <È¿e4Ïî!±FÁ
+“XãY’[þÝ>mñZ‡Ó(€‡*+¿¼µTë¡èò|²7rn„è¡1CÞacןï¶;N7$Îè|²¥Ê¦N q4Ï¿~šùçâÑã…IÈ_Ta«å?PnÈäªýqª@ééÚ6™Ù[i¤†7kGtC1’.›àGz!f ÛF´¼GFš-g0W¹¿†ˆÂî¬Àé} •5Ø4ñ¤WRQ ÊèEë6ÄüörÊ ´LuG¼L†ò¢/Äc‡ÿŠ®%íÙ.†Û’A/,–ê57Ú)1ºÞðô $ÿnZ›AUvÂdŠHWÖ@Ø>>\ûÅRtºvwà™ß—¡D ¹ý†‡ÞK_58›íù¹?µ¡V!??mM×i¬Þžpw¸ÞYd™È h‰É+ƒf^@—E%´g›.á¢Q¹ßs3šµ šŸø5€vQÄwêoO„³2­§0
+6ƒX\ðé½n糓ûëMƒ*ßž­ú•>ø`BÁß\¸«µœãddùâM:F‹—clŽšyј
+W¬JÊ@»<áÉíW¼¿÷+Û)FëS´1Kˆ?¼¨YUSšàC¥”J>,sí¥îÓôî»fdµ“AÒôNìâΤFÂL ;ü uÊ?¼?†S–ý5 “VC‰×eÞ y[WPú5ø=‹¸~sÉ
+¡N`ÀŽ¸'~ÜÊ®¦¯PŠzr +¿‹sÙͺ±=ñH¯#=:RL<]vBI¶tp@m_´'ŽF~Q‚L«HŠÙþŸžR&Ô dU (0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark
+%%EndFont
+/TimesNewRomanPSMT havefont not {
+%%BeginFont: TimesNewRomanPSMT
+/TimesNewRomanPSMT
+15 dict dup begin
+/FontName /TimesNewRomanPSMT def
+/FontType 3 def
+/FontMatrix [ 0.000977 0 0 0.000977 0 0 ] def
+/FontAscent 935 def
+/FontDescent -221 def
+/FontScript 0 def
+/FontBBox [ 0 -512 1024 1024 ] def
+/Encoding 256 array dup 0 1 255 { /.notdef put dup } for pop def
+/l /lineto load def
+/m /moveto load def
+/c /curveto load def
+/BuildChar {
+ Adobe_Illustrator_AI5_vars exch /_bitlobyte exch put
+ Adobe_Illustrator_AI5_vars exch /_bitfont exch put
+ Adobe_Illustrator_AI5_vars /_bithibyte 0 put
+
+ _bitlobyte 16 4 string cvrs dup length (K) dup length
+ dup 4 -1 roll add string Adobe_Illustrator_AI5_vars exch /_bitkey exch put
+ exch _bitkey copy pop _bitkey exch 3 -1 roll putinterval
+ _bitfont /CharMetrics get _bitkey cvn get dup type /arraytype
+ eq { aload pop setcachedevice }
+ { 0 setcharwidth } ifelse
+ _bitfont /CharStrings get _bitkey cvn get exec
+} bind def
+12 dict dup begin
+/K20 {
+} bind def
+/K2D {
+{
+newpath
+42 192 m
+301 192 l
+301 268 l
+42 268 l
+42 192 l
+closepath
+} exec
+fill
+} bind def
+/K54 {
+{
+newpath
+38 678 m
+31 519 l
+50 519 l
+52 549 60 574 72 592 c
+84 610 99 622 117 628 c
+130 633 153 635 184 635 c
+266 635 l
+266 118 l
+266 80 262 56 255 45 c
+243 28 222 19 193 19 c
+169 19 l
+169 0 l
+458 0 l
+458 19 l
+434 19 l
+408 19 388 26 376 40 c
+367 50 362 76 362 118 c
+362 635 l
+457 635 l
+485 635 508 630 525 621 c
+542 612 556 598 566 579 c
+572 567 577 547 581 519 c
+600 519 l
+593 678 l
+38 678 l
+closepath
+} exec
+fill
+} bind def
+/K61 {
+{
+newpath
+306 8 m
+316 -3 329 -9 345 -9 c
+380 -9 415 16 453 66 c
+453 94 l
+433 74 419 62 412 58 c
+408 55 404 54 398 54 c
+393 54 389 56 385 59 c
+381 62 378 69 377 79 c
+375 89 374 115 374 159 c
+374 314 l
+374 358 371 388 365 402 c
+356 424 341 440 322 451 c
+296 464 262 471 222 471 c
+169 471 127 459 98 435 c
+69 411 54 384 54 356 c
+54 341 58 329 66 320 c
+74 311 84 307 96 307 c
+109 307 119 311 127 320 c
+135 328 139 340 139 355 c
+138 384 l
+138 399 144 412 157 423 c
+169 434 186 440 207 440 c
+234 440 255 432 269 415 c
+284 398 291 366 291 321 c
+291 303 l
+212 274 156 250 122 230 c
+88 210 65 189 51 166 c
+41 150 36 130 36 108 c
+36 73 46 44 67 23 c
+87 1 113 -10 145 -10 c
+165 -10 185 -6 203 3 c
+215 8 244 29 291 65 c
+291 38 296 19 306 8 c
+closepath
+190 48 m
+172 48 155 56 141 72 c
+126 87 119 107 119 131 c
+119 150 125 168 136 184 c
+148 200 166 215 193 230 c
+208 238 240 252 291 272 c
+291 98 l
+249 65 216 48 190 48 c
+190 48 l
+closepath
+} exec
+fill
+} bind def
+/K63 {
+{
+newpath
+407 181 m
+390 140 372 112 354 97 c
+328 75 298 64 266 64 c
+220 64 184 85 157 127 c
+130 169 117 217 117 272 c
+117 325 131 368 158 401 c
+178 426 205 438 238 438 c
+259 438 275 433 287 423 c
+298 412 305 397 307 378 c
+309 358 313 344 319 337 c
+328 324 343 318 363 318 c
+377 318 389 322 397 330 c
+405 338 409 348 409 361 c
+409 386 395 411 366 435 c
+337 459 300 471 255 471 c
+195 471 143 449 100 404 c
+57 359 36 300 36 228 c
+36 154 55 95 94 51 c
+133 8 178 -14 230 -14 c
+274 -14 314 2 350 35 c
+386 67 410 113 422 174 c
+407 181 l
+closepath
+} exec
+fill
+} bind def
+/K65 {
+{
+newpath
+426 285 m
+426 342 409 387 376 420 c
+343 454 301 471 250 471 c
+189 471 139 449 98 405 c
+58 362 38 301 38 223 c
+38 150 58 93 97 50 c
+136 7 183 -14 238 -14 c
+289 -14 331 5 365 42 c
+399 80 419 122 426 168 c
+410 178 l
+395 137 376 109 354 93 c
+332 76 306 68 276 68 c
+231 68 192 87 159 126 c
+125 164 109 217 109 285 c
+426 285 l
+closepath
+147 403 m
+169 424 194 435 222 435 c
+240 435 257 430 274 419 c
+291 409 303 394 311 375 c
+317 364 320 343 322 314 c
+109 314 l
+113 352 125 382 147 403 c
+closepath
+} exec
+fill
+} bind def
+/K68 {
+{
+newpath
+144 711 m
+7 655 l
+14 637 l
+30 642 41 645 48 645 c
+57 645 64 643 69 639 c
+74 634 78 626 80 614 c
+83 602 84 570 84 518 c
+84 104 l
+84 75 82 56 78 47 c
+74 37 69 31 62 28 c
+50 21 34 18 14 18 c
+14 0 l
+241 0 l
+241 18 l
+218 18 201 21 192 26 c
+182 31 176 37 172 45 c
+169 53 167 72 167 104 c
+167 345 l
+192 371 213 388 231 397 c
+248 406 265 410 282 410 c
+298 410 311 406 323 398 c
+334 391 342 379 347 363 c
+352 348 355 315 355 265 c
+355 104 l
+355 78 355 62 354 57 c
+350 44 344 34 336 28 c
+328 21 313 18 292 18 c
+281 18 l
+281 0 l
+506 0 l
+506 18 l
+485 18 470 20 462 25 c
+454 30 448 36 445 44 c
+440 55 438 75 438 104 c
+438 266 l
+438 322 435 361 429 382 c
+420 413 406 435 387 450 c
+368 464 346 471 320 471 c
+298 471 277 465 255 454 c
+233 442 204 416 167 375 c
+167 711 l
+144 711 l
+closepath
+} exec
+fill
+} bind def
+/K69 {
+{
+newpath
+112 696 m
+102 686 97 674 97 660 c
+97 646 102 634 112 624 c
+122 614 134 609 148 609 c
+162 609 174 614 184 624 c
+194 634 199 646 199 660 c
+199 674 194 686 184 696 c
+174 706 162 711 148 711 c
+134 711 122 706 112 696 c
+closepath
+168 471 m
+30 415 l
+37 397 l
+50 402 62 405 71 405 c
+80 405 87 402 92 398 c
+97 394 100 387 103 376 c
+106 361 107 329 107 279 c
+107 104 l
+107 76 105 56 100 46 c
+96 36 90 29 82 25 c
+74 20 59 18 37 18 c
+37 0 l
+260 0 l
+260 18 l
+238 18 223 20 215 25 c
+207 30 200 37 196 46 c
+192 56 190 75 190 104 c
+190 471 l
+168 471 l
+closepath
+} exec
+fill
+} bind def
+/K6C {
+{
+newpath
+168 711 m
+31 655 l
+40 637 l
+53 642 64 645 73 645 c
+81 645 87 643 92 639 c
+97 634 101 626 104 614 c
+106 602 107 571 107 519 c
+107 104 l
+107 76 105 56 100 46 c
+96 36 90 29 82 25 c
+75 20 60 18 39 18 c
+39 0 l
+264 0 l
+264 18 l
+240 18 224 20 216 25 c
+207 30 200 37 196 47 c
+192 56 190 75 190 104 c
+190 711 l
+168 711 l
+closepath
+} exec
+fill
+} bind def
+/K6E {
+{
+newpath
+166 471 m
+144 471 l
+6 415 l
+14 397 l
+27 402 38 405 47 405 c
+56 405 63 402 68 398 c
+73 394 77 386 79 374 c
+82 362 83 328 83 273 c
+83 104 l
+83 70 79 48 71 36 c
+62 24 47 18 23 18 c
+13 18 l
+13 0 l
+241 0 l
+241 18 l
+216 18 199 20 191 25 c
+183 29 176 36 172 46 c
+168 54 166 73 166 104 c
+166 345 l
+205 388 245 410 284 410 c
+310 410 328 401 339 382 c
+350 363 355 333 355 291 c
+355 104 l
+355 78 354 62 353 57 c
+350 44 344 34 335 28 c
+327 21 312 18 291 18 c
+281 18 l
+281 0 l
+508 0 l
+508 18 l
+486 18 471 20 463 25 c
+455 30 449 36 445 45 c
+440 55 438 75 438 104 c
+438 299 l
+438 340 434 371 427 391 c
+416 419 402 440 384 452 c
+366 465 345 471 320 471 c
+271 471 220 439 166 375 c
+166 471 l
+closepath
+} exec
+fill
+} bind def
+/K72 {
+{
+newpath
+146 471 m
+7 415 l
+12 397 l
+25 402 37 405 47 405 c
+56 405 63 402 69 398 c
+75 393 79 385 81 375 c
+83 365 84 333 84 280 c
+84 104 l
+84 77 83 61 82 55 c
+78 43 72 35 64 29 c
+53 22 35 18 12 18 c
+12 0 l
+247 0 l
+247 18 l
+226 18 211 21 200 27 c
+189 33 181 40 177 49 c
+170 62 167 82 167 107 c
+167 326 l
+183 357 198 380 213 393 c
+220 400 227 403 233 403 c
+240 403 250 397 265 386 c
+279 375 292 369 304 369 c
+316 369 326 374 335 383 c
+344 392 348 403 348 416 c
+348 430 342 443 330 454 c
+318 465 303 471 285 471 c
+244 471 205 437 167 368 c
+167 471 l
+146 471 l
+closepath
+} exec
+fill
+} bind def
+/K74 {
+{
+newpath
+150 609 m
+136 575 126 552 118 539 c
+103 515 86 494 67 477 c
+47 460 28 447 10 440 c
+10 424 l
+83 424 l
+83 115 l
+83 82 87 57 94 41 c
+101 26 111 13 126 5 c
+141 -4 156 -8 171 -8 c
+194 -8 216 0 237 17 c
+259 33 275 58 287 91 c
+267 91 l
+261 78 253 67 243 60 c
+233 53 222 50 211 50 c
+198 50 187 55 179 66 c
+170 76 166 96 166 126 c
+166 423 l
+273 424 l
+273 458 l
+166 458 l
+166 609 l
+150 609 l
+closepath
+} exec
+fill
+} bind def
+end /CharStrings exch def
+12 dict dup begin
+/K20 [256 0 0 0 0 0] def
+Encoding 32 /K20 put
+/K2D [341 0 42 193 301 268] def
+Encoding 45 /K2D put
+/K54 [626 0 31 0 600 679] def
+Encoding 84 /K54 put
+/K61 [455 0 36 -9 453 472] def
+Encoding 97 /K61 put
+/K63 [455 0 36 -13 422 472] def
+Encoding 99 /K63 put
+/K65 [455 0 38 -13 425 472] def
+Encoding 101 /K65 put
+/K68 [512 0 7 0 506 712] def
+Encoding 104 /K68 put
+/K69 [285 0 31 0 260 712] def
+Encoding 105 /K69 put
+/K6C [285 0 32 0 264 712] def
+Encoding 108 /K6C put
+/K6E [512 0 6 0 507 472] def
+Encoding 110 /K6E put
+/K72 [341 0 7 0 347 472] def
+Encoding 114 /K72 put
+/K74 [285 0 10 -7 287 609] def
+Encoding 116 /K74 put
+end /CharMetrics exch def
+end
+definefont pop
+%%EndFont
+} if
+/EuclidSymbol havefont not {
+%%BeginFont: EuclidSymbol
+/EuclidSymbol
+15 dict dup begin
+/FontName /EuclidSymbol def
+/FontType 3 def
+/FontMatrix [ 0.000977 0 0 0.000977 0 0 ] def
+/FontAscent 975 def
+/FontDescent -256 def
+/FontScript 0 def
+/FontBBox [ 0 -512 1024 1024 ] def
+/Encoding 256 array dup 0 1 255 { /.notdef put dup } for pop def
+/l /lineto load def
+/m /moveto load def
+/c /curveto load def
+/BuildChar {
+ Adobe_Illustrator_AI5_vars exch /_bitlobyte exch put
+ Adobe_Illustrator_AI5_vars exch /_bitfont exch put
+ Adobe_Illustrator_AI5_vars /_bithibyte 0 put
+
+ _bitlobyte 16 4 string cvrs dup length (K) dup length
+ dup 4 -1 roll add string Adobe_Illustrator_AI5_vars exch /_bitkey exch put
+ exch _bitkey copy pop _bitkey exch 3 -1 roll putinterval
+ _bitfont /CharMetrics get _bitkey cvn get dup type /arraytype
+ eq { aload pop setcachedevice }
+ { 0 setcharwidth } ifelse
+ _bitfont /CharStrings get _bitkey cvn get exec
+} bind def
+1 dict dup begin
+/K77 {
+{
+newpath
+18 496 m
+168 0 l
+250 0 l
+330 236 l
+347 289 362 340 375 399 c
+377 399 l
+389 341 403 292 421 237 c
+497 0 l
+579 0 l
+738 496 l
+649 496 l
+579 247 l
+562 188 549 136 541 86 c
+538 86 l
+526 136 512 188 494 248 c
+417 496 l
+341 496 l
+260 244 l
+244 189 227 136 216 86 c
+213 86 l
+204 137 190 188 176 244 c
+111 496 l
+closepath
+} exec
+fill
+} bind def
+end /CharStrings exch def
+1 dict dup begin
+/K77 [754 0 18 0 738 496] def
+Encoding 119 /K77 put
+end /CharMetrics exch def
+end
+definefont pop
+%%EndFont
+} if
+setpacking
+%AI3_EndRider
+[
+39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
+/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute
+/egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde
+/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex
+/udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
+/registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash
+/.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef
+/.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash
+/questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef
+/guillemotleft/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe
+/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide
+/.notdef/ydieresis/Ydieresis/fraction/Euro/guilsinglleft/guilsinglright
+/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
+/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex
+/Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex
+/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla
+/hungarumlaut/ogonek/caron
+TE
+%AI55J_Tsume: None
+%AI3_BeginEncoding: _EuclidSymbol EuclidSymbol
+[/_EuclidSymbol/EuclidSymbol 0 0 0 TZ
+%AI3_EndEncoding TrueType
+%AI55J_Tsume: None
+%AI3_BeginEncoding: _Times-Roman Times-Roman
+[/_Times-Roman/Times-Roman 0 0 1 TZ
+%AI3_EndEncoding AdobeType
+%AI55J_Tsume: None
+%AI3_BeginEncoding: _TimesNewRomanPSMT TimesNewRomanPSMT
+[/_TimesNewRomanPSMT/TimesNewRomanPSMT 0 0 0 TZ
+%AI3_EndEncoding TrueType
+[161/degree 173/notequal 176/infinity/plusminus/lessequal/greaterequal
+181/mu/partialdiff/summation/product/pi/integral 189/Omega
+195/radical 197/approxequal 198/Delta 214/divide/lozenge 240/apple
+/_Symbol_/Symbol 0 0 0 TZ
+%AI5_Begin_NonPrinting
+Np
+%AI8_PluginGroupInfo
+(Adobe Path Blends) (Adobe Blends Plugin) (LiveBlends.aip)
+%AI8_PluginGroupInfo
+(Adobe Tracing Object) (Tracing) (TracingSuite.aip)
+%AI8_PluginGroupInfo
+(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (ScatterBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (ScatterBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (ArtBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (ArtBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (ArtBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (ArtBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe Calligraphic Brush Tool) (Adobe Calligraphic Brush Plugin) (CalligBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe Flare Plugin) (Flare) (Flare.aip)
+%AI8_PluginGroupInfo
+(Adobe Symbolism) (Adobe Symbolism) (ParticleSystem.aip)
+%AI8_PluginGroupInfo
+(Adobe Deform Plugin) (Adobe Envelope Plugin) (Envelope and Warp.aip)
+%AI8_PluginGroupInfo
+(Pathfinder Suite) (Adobe Compound Shape) (PathFinderS.aip)
+%AI8_PluginGroupInfo
+(Adobe Planar Group) (Adobe Live Paint Plugin) (Live Paint.aip)
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+4 Bn
+%AI5_BeginGradient: (Black, White)
+(Black, White) 0 2 Bd
+[
+<
+FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8
+D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988
+87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160
+5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938
+37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110
+0F0E0D0C0B0A09080706050403020100
+>
+0 %_Br
+[
+0 0 50 100 %_BS
+%_0 0 50 100 Bs
+1 0 50 0 %_BS
+%_1 0 50 0 Bs
+BD
+%AI5_EndGradient
+%AI5_BeginGradient: (Chrome)
+(Chrome) 0 6 Bd
+[
+0
+<
+464646454545444444444343434342424241414141404040403F3F3F3E3E3E3E3D3D3D3C3C3C3C3B
+3B3B3B3A3A3A39393939383838383737373636363635353535343434333333333232323131313130
+3030302F2F2F2E2E2E2E2D2D2D2D2C2C2C2B2B2B2B2A2A2A2A292929282828282727272626262625
+2525252424242323232322222222212121202020201F1F1F1F1E1E1E1D1D1D1D1C1C1C1B1B1B1B1A
+1A1A1A1919191818181817171717161616151515151414141413131312121212111111101010100F
+0F0F0F0E0E0E0D0D0D0D0C0C0C0C0B0B0B0A0A0A0A09090909080808070707070606060505050504
+04040403030302020202010101010000
+>
+<
+FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8
+D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988
+87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160
+5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938
+37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110
+0F0E0D0C0B0A09080706050403020100
+>
+<
+1F1E1E1E1E1E1E1E1E1E1D1D1D1D1D1D1D1D1C1C1C1C1C1C1C1C1B1B1B1B1B1B1B1B1B1A1A1A1A1A
+1A1A1A19191919191919191818181818181818181717171717171717161616161616161615151515
+15151515151414141414141414131313131313131312121212121212121211111111111111111010
+1010101010100F0F0F0F0F0F0F0F0F0E0E0E0E0E0E0E0E0D0D0D0D0D0D0D0D0C0C0C0C0C0C0C0C0C
+0B0B0B0B0B0B0B0B0A0A0A0A0A0A0A0A090909090909090909080808080808080807070707070707
+07060606060606060606050505050505050504040404040404040303030303030303030202020202
+02020201010101010101010000000000
+>
+1 %_Br
+0
+0.275
+1
+<
+6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544
+434241403F3E3D3C3B3A393837363534333231302F2E2D2C2B2A292827262524232221201F
+>
+1 %_Br
+0
+<
+00000101010102020202030303040404040505050506060607070707080808090909090A0A0A0A0B
+0B0B0C0C0C0C0D0D0D0D0E0E0E0F0F0F0F1010101011111112121212131313141414141515151516
+161617171717181818181919191A1A1A1A1B1B1B1C1C1C1C1D1D1D1D1E1E1E1F1F1F1F2020202021
+212122222222232323232424242525252526262626272727282828282929292A2A2A2A2B2B2B2B2C
+2C2C2D2D2D2D2E2E2E2E2F2F2F303030303131313132323233333333343434353535353636363637
+373738383838393939393A3A3A3B3B3B3B3C3C3C3D3D3D3D3E3E3E3E3F3F3F404040404141414142
+42424343434344444444454545464646
+>
+<
+000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F
+505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677
+78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F
+A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7
+C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
+F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
+>
+<
+00000101020203030304040505050606070708080809090A0A0B0B0B0C0C0D0D0D0E0E0F0F101010
+1111121212131314141515151616171718181819191A1A1A1B1B1C1C1D1D1D1E1E1F1F1F20202121
+222222232324242525252626272727282829292A2A2A2B2B2C2C2D2D2D2E2E2F2F2F303031313232
+32333334343435353636373737383839393A3A3A3B3B3C3C3C3D3D3E3E3F3F3F4040414142424243
+434444444545464647474748484949494A4A4B4B4C4C4C4D4D4E4E4F4F4F50505151515252535354
+54545555565657575758585959595A5A5B5B5C5C5C5D5D5E5E5E5F5F606061616162626363646464
+6565666666676768686969696A6A6B6B
+>
+1 %_Br
+1
+0 %_Br
+<
+FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8
+D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988
+87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160
+5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938
+37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110
+0F0E0D0C0B0A09080706050403020100
+>
+<
+4D4C4C4C4B4B4B4A4A4A4A4949494848484747474746464645454544444444434343424242414141
+414040403F3F3F3E3E3E3E3D3D3D3C3C3C3B3B3B3B3A3A3A39393938383838373737363636353535
+35343434333333323232323131313030302F2F2F2E2E2E2E2D2D2D2C2C2C2B2B2B2B2A2A2A292929
+282828282727272626262525252524242423232322222222212121202020201F1F1F1E1E1E1D1D1D
+1D1C1C1C1B1B1B1A1A1A1A1919191818181717171616161615151514141413131313121212111111
+101010100F0F0F0E0E0E0D0D0D0D0C0C0C0B0B0B0A0A0A0A09090908080807070707060606050505
+04040404030303020202010101010000
+>
+0
+0
+1 %_Br
+[
+1 0 50 92 %_BS
+%_1 0 50 92 Bs
+0 0.275 1 0.12 1 50 59 %_BS
+%_0 0.275 1 0.12 1 50 59 Bs
+0 0.275 1 0.42 1 50 50 %_BS
+%_0 0.275 1 0.42 1 50 50 Bs
+1 0 50 49 %_BS
+%_1 0 50 49 Bs
+1 0 50 41 %_BS
+%_1 0 50 41 Bs
+1 0.3 0 0 1 50 0 %_BS
+%_1 0.3 0 0 1 50 0 Bs
+BD
+%AI5_EndGradient
+%AI5_BeginGradient: (Rainbow)
+(Rainbow) 0 6 Bd
+[
+<
+FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8
+D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988
+87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160
+5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938
+37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110
+0F0E0D0C0B0A09080706050403020100
+>
+1
+0
+0
+1 %_Br
+1
+<
+0708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E
+2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F50515253545556
+5758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E
+7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6
+A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCE
+CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6
+F7F8F9FAFBFCFDFEFF
+>
+0
+0
+1 %_Br
+1
+<
+00000000000000000000000000000000000001010101010101010101010101010101010101010101
+01010101010101010101010101010202020202020202020202020202020202020202020202020202
+02020202020202020202030303030303030303030303030303030303030303030303030303030303
+03030303030304040404040404040404040404040404040404040404040404040404040404040404
+04040505050505050505050505050505050505050505050505050505050505050505050505050606
+06060606060606060606060606060606060606060606060606060606060606060607070707070707
+07070707070707070707070707070707
+>
+<
+FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8
+D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988
+87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160
+5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938
+37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110
+0F0E0D0C0B0A09080706050403020100
+>
+0
+1 %_Br
+<
+000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F
+505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677
+78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F
+A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7
+C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
+F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
+>
+0
+1
+0
+1 %_Br
+0
+<
+FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8
+D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988
+87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160
+5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938
+37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110
+0F0E0D0C0B0A09080706050403020100
+>
+1
+0
+1 %_Br
+[
+0 1 0 0 1 50 100 %_BS
+%_0 1 0 0 1 50 100 Bs
+1 1 0 0 1 50 80 %_BS
+%_1 1 0 0 1 50 80 Bs
+1 0.0279 0 0 1 50 60 %_BS
+%_1 0.0279 0 0 1 50 60 Bs
+1 0 1 0 1 50 40 %_BS
+%_1 0 1 0 1 50 40 Bs
+0 0 1 0 1 50 20 %_BS
+%_0 0 1 0 1 50 20 Bs
+0 1 1 0 1 50 0 %_BS
+%_0 1 1 0 1 50 0 Bs
+BD
+%AI5_EndGradient
+%AI5_BeginGradient: (Yellow & Orange Radial)
+(Yellow & Orange Radial) 1 2 Bd
+[
+0
+<
+0001010203040506060708090A0B0C0C0D0E0F10111213131415161718191A1B1C1D1D1E1F202122
+232425262728292A2B2B2C2D2E2F303132333435363738393A3B3C3D3E3E3F404142434445464748
+494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60606162636465666768696A6B6C6D6E6F
+707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C
+>
+<
+FFFFFFFFFEFEFEFEFEFEFEFDFDFDFDFDFDFCFCFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAFAF9F9F9F9F9
+F9F8F8F8F8F8F8F7F7F7F7F7F7F6F6F6F6F6F6F5F5F5F5F5F5F4F4F4F4F4F3F3F3F3F3F3F2F2F2F2
+F2F2F1F1F1F1F1F0F0F0F0F0F0EFEFEFEFEFEFEEEEEEEEEEEDEDEDEDEDEDECECECECECEBEBEBEBEB
+EBEAEAEAEAEAE9E9E9E9E9E9E8E8E8E8E8E8E7E7E7E7E7E6E6E6E6E6E6
+>
+0
+1 %_Br
+[
+0 0 1 0 1 52 19 %_BS
+%_0 0 1 0 1 52 19 Bs
+0 0.55 0.9 0 1 50 100 %_BS
+%_0 0.55 0.9 0 1 50 100 Bs
+BD
+%AI5_EndGradient
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI3_BeginPattern: (Brick)
+(Brick) 0 0 72 72 [
+%AI3_Tile
+(0 O 0 R 0.3 0.85 0.85 0 k
+ 0.3 0.85 0.85 0 K
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 1 w 4 M []0 d
+0 XR
+0 0 m
+0 72 L
+72 72 L
+72 0 L
+0 0 L
+f
+%AI6_EndPatternLayer
+) &
+(0 O 0 R 1 g
+ 1 G
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 0.3 w 4 M []0 d
+0 XR
+0 68.4097 m
+72 68.4097 l
+S
+0 61.209 m
+72 61.209 L
+S
+0 54.0088 m
+72 54.0088 L
+S
+0 46.8076 m
+72 46.8076 L
+S
+0 39.6084 m
+72 39.6084 L
+S
+0 32.4072 m
+72 32.4072 L
+S
+0 25.207 m
+72 25.207 L
+S
+0 18.0059 m
+72 18.0059 L
+S
+0 10.8057 m
+72 10.8057 L
+S
+0 3.6064 m
+72 3.6064 L
+S
+68.4102 68.4097 m
+68.4102 61.2217 l
+S
+54.0098 68.4097 m
+54.0098 61.2217 L
+S
+39.6094 68.4097 m
+39.6094 61.2217 L
+S
+25.21 68.4097 m
+25.21 61.2217 L
+S
+10.8105 68.4097 m
+10.8105 61.2217 L
+S
+68.4102 53.9717 m
+68.4102 46.7842 l
+S
+54.0098 53.9717 m
+54.0098 46.7842 L
+S
+39.6094 53.9717 m
+39.6094 46.7842 L
+S
+25.21 53.9717 m
+25.21 46.7842 L
+S
+10.8105 53.9717 m
+10.8105 46.7842 L
+S
+68.4102 39.5967 m
+68.4102 32.4092 l
+S
+54.0098 39.5967 m
+54.0098 32.4092 L
+S
+39.6094 39.5967 m
+39.6094 32.4092 L
+S
+25.21 39.5967 m
+25.21 32.4092 L
+S
+10.8105 39.5967 m
+10.8105 32.4092 L
+S
+68.4102 25.2217 m
+68.4102 18.0342 l
+S
+54.0098 25.2217 m
+54.0098 18.0342 L
+S
+39.6094 25.2217 m
+39.6094 18.0342 L
+S
+25.21 25.2217 m
+25.21 18.0342 L
+S
+10.8105 25.2217 m
+10.8105 18.0342 L
+S
+68.4102 10.7842 m
+68.4102 3.5967 l
+S
+54.0098 10.7842 m
+54.0098 3.5967 L
+S
+39.6094 10.7842 m
+39.6094 3.5967 L
+S
+25.21 10.7842 m
+25.21 3.5967 L
+S
+10.8105 10.7842 m
+10.8105 3.5967 L
+S
+61.1973 3.5967 m
+61.1973 0 L
+S
+46.7969 3.5967 m
+46.7969 0 L
+S
+32.3965 3.5967 m
+32.3965 0 L
+S
+17.9971 3.5967 m
+17.9971 0 L
+S
+3.5967 3.5967 m
+3.5967 0 l
+S
+61.1973 18.0342 m
+61.1973 10.8467 L
+S
+46.7969 18.0342 m
+46.7969 10.8467 L
+S
+32.3965 18.0342 m
+32.3965 10.8467 L
+S
+17.9971 18.0342 m
+17.9971 10.8467 L
+S
+3.5967 18.0342 m
+3.5967 10.8467 l
+S
+61.1973 32.4092 m
+61.1973 25.2217 L
+S
+46.7969 32.4092 m
+46.7969 25.2217 L
+S
+17.9971 32.4092 m
+17.9971 25.2217 L
+S
+3.5967 32.4092 m
+3.5967 25.2217 l
+S
+61.1973 46.7842 m
+61.1973 39.5967 L
+S
+46.7969 46.7842 m
+46.7969 39.5967 L
+S
+32.3965 46.7842 m
+32.3965 39.5967 L
+S
+17.9971 46.7842 m
+17.9971 39.5967 L
+S
+3.5967 46.7842 m
+3.5967 39.5967 l
+S
+61.1973 61.2217 m
+61.1973 54.0347 L
+S
+46.7969 61.2217 m
+46.7969 54.0347 L
+S
+32.3965 61.2217 m
+32.3965 54.0347 L
+S
+17.9971 61.2217 m
+17.9971 54.0347 L
+S
+3.5967 61.2217 m
+3.5967 54.0347 l
+S
+61.1973 71.959 m
+61.1973 68.4717 L
+S
+46.7969 71.959 m
+46.7969 68.4717 L
+S
+32.3965 71.959 m
+32.3965 68.4717 L
+S
+17.9971 71.959 m
+17.9971 68.4717 L
+S
+3.5967 71.959 m
+3.5967 68.4717 l
+S
+32.3965 32.4092 m
+32.3965 25.2217 L
+S
+%AI6_EndPatternLayer
+) &
+] E
+%AI3_EndPattern
+%AI3_BeginPattern: (Confetti)
+(Confetti) 4.85 3.617 76.85 75.617 [
+%AI3_Tile
+(0 O 0 R 1 g
+ 1 G
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 1 w 4 M []0 d
+0 XR
+4.85 3.617 m
+4.85 75.617 L
+76.85 75.617 L
+76.85 3.617 L
+4.85 3.617 L
+f
+%AI6_EndPatternLayer
+) &
+(0 O 0 R 0 g
+ 0 G
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 0.3 w 4 M []0 d
+0 XR
+10.6 64.867 m
+7.85 62.867 l
+S
+9.1 8.617 m
+6.85 6.867 l
+S
+78.1 68.617 m
+74.85 67.867 l
+S
+76.85 56.867 m
+74.35 55.117 l
+S
+79.6 51.617 m
+76.6 51.617 l
+S
+76.35 44.117 m
+73.6 45.867 l
+S
+78.6 35.867 m
+76.6 34.367 l
+S
+76.1 23.867 m
+73.35 26.117 l
+S
+78.1 12.867 m
+73.85 13.617 l
+S
+68.35 14.617 m
+66.1 12.867 l
+S
+76.6 30.617 m
+73.6 30.617 l
+S
+62.85 58.117 m
+60.956 60.941 l
+S
+32.85 59.617 m
+31.196 62.181 l
+S
+47.891 64.061 m
+49.744 66.742 l
+S
+72.814 2.769 m
+73.928 5.729 l
+S
+67.976 2.633 m
+67.35 5.909 l
+S
+61.85 27.617 m
+59.956 30.441 l
+S
+53.504 56.053 m
+51.85 58.617 l
+S
+52.762 1.779 m
+52.876 4.776 l
+S
+45.391 5.311 m
+47.244 7.992 l
+S
+37.062 3.375 m
+35.639 5.43 l
+S
+55.165 34.828 m
+57.518 37.491 l
+S
+20.795 3.242 m
+22.12 5.193 l
+S
+14.097 4.747 m
+15.008 8.965 l
+S
+9.736 1.91 m
+8.073 4.225 l
+S
+31.891 5.573 m
+32.005 8.571 l
+S
+12.1 70.367 m
+15.6 68.867 l
+S
+9.35 54.867 m
+9.6 58.117 l
+S
+12.85 31.867 m
+14.35 28.117 l
+S
+10.1 37.367 m
+12.35 41.117 l
+S
+34.1 71.117 m
+31.85 68.617 l
+S
+38.35 71.117 m
+41.6 68.367 l
+S
+55.1 71.117 m
+58.35 69.117 l
+S
+57.35 65.117 m
+55.35 61.867 l
+S
+64.35 66.367 m
+69.35 68.617 l
+S
+71.85 62.867 m
+69.35 61.117 l
+S
+23.6 70.867 m
+23.6 67.867 l
+S
+20.6 65.867 m
+17.35 65.367 l
+S
+24.85 61.367 m
+25.35 58.117 l
+S
+25.85 65.867 m
+29.35 66.617 l
+S
+14.1 54.117 m
+16.85 56.117 l
+S
+12.35 11.617 m
+12.6 15.617 l
+S
+12.1 19.867 m
+14.35 22.367 l
+S
+26.1 9.867 m
+23.6 13.367 l
+S
+34.6 47.117 m
+32.1 45.367 l
+S
+62.6 41.867 m
+59.85 43.367 l
+S
+31.6 35.617 m
+27.85 36.367 l
+S
+36.35 26.117 m
+34.35 24.617 l
+S
+33.85 14.117 m
+31.1 16.367 l
+S
+37.1 9.867 m
+35.1 11.117 l
+S
+34.35 20.867 m
+31.35 20.867 l
+S
+44.6 56.617 m
+42.1 54.867 l
+S
+47.35 51.367 m
+44.35 51.367 l
+S
+44.1 43.867 m
+41.35 45.617 l
+S
+43.35 33.117 m
+42.6 30.617 l
+S
+43.85 23.617 m
+41.1 25.867 l
+S
+44.35 15.617 m
+42.35 16.867 l
+S
+67.823 31.1 m
+64.823 31.1 l
+S
+27.1 32.617 m
+29.6 30.867 l
+S
+31.85 55.117 m
+34.85 55.117 l
+S
+19.6 40.867 m
+22.1 39.117 l
+S
+16.85 35.617 m
+19.85 35.617 l
+S
+20.1 28.117 m
+22.85 29.867 l
+S
+52.1 42.617 m
+54.484 44.178 l
+S
+52.437 50.146 m
+54.821 48.325 l
+S
+59.572 54.133 m
+59.35 51.117 l
+S
+50.185 10.055 m
+53.234 9.928 l
+S
+51.187 15.896 m
+53.571 14.075 l
+S
+58.322 19.883 m
+59.445 16.823 l
+S
+53.1 32.117 m
+50.6 30.367 l
+S
+52.85 24.617 m
+49.6 25.617 l
+S
+61.85 9.117 m
+59.1 10.867 l
+S
+69.35 34.617 m
+66.6 36.367 l
+S
+67.1 23.617 m
+65.1 22.117 l
+S
+24.435 46.055 m
+27.484 45.928 l
+S
+25.437 51.896 m
+27.821 50.075 l
+S
+62.6 47.117 m
+65.321 46.575 l
+S
+19.85 19.867 m
+20.35 16.617 l
+S
+21.85 21.867 m
+25.35 22.617 l
+S
+37.6 62.867 m
+41.6 62.117 l
+S
+38.323 42.1 m
+38.823 38.6 l
+S
+69.35 52.617 m
+66.85 53.867 l
+S
+14.85 62.117 m
+18.1 59.367 l
+S
+9.6 46.117 m
+7.1 44.367 l
+S
+20.6 51.617 m
+18.6 50.117 l
+S
+46.141 70.811 m
+47.994 73.492 l
+S
+69.391 40.561 m
+71.244 43.242 l
+S
+38.641 49.311 m
+39.35 52.117 l
+S
+25.141 16.811 m
+25.85 19.617 l
+S
+36.6 32.867 m
+34.6 31.367 l
+S
+6.1 68.617 m
+2.85 67.867 l
+S
+4.85 56.867 m
+2.35 55.117 l
+S
+7.6 51.617 m
+4.6 51.617 l
+S
+6.6 35.867 m
+4.6 34.367 l
+S
+6.1 12.867 m
+1.85 13.617 l
+S
+4.6 30.617 m
+1.6 30.617 l
+S
+72.814 74.769 m
+73.928 77.729 l
+S
+67.976 74.633 m
+67.35 77.909 l
+S
+52.762 73.779 m
+52.876 76.776 l
+S
+37.062 75.375 m
+35.639 77.43 l
+S
+20.795 75.242 m
+22.12 77.193 l
+S
+9.736 73.91 m
+8.073 76.225 l
+S
+10.1 23.617 m
+6.35 24.367 l
+S
+73.217 18.276 m
+71.323 21.1 l
+S
+28.823 39.6 m
+29.505 42.389 l
+S
+49.6 38.617 m
+47.6 37.117 l
+S
+60.323 73.6 m
+62.323 76.6 l
+S
+60.323 1.6 m
+62.323 4.6 l
+S
+%AI6_EndPatternLayer
+) &
+] E
+%AI3_EndPattern
+%AI3_BeginPattern: (Leaves - Fall )
+(Leaves - Fall ) 0 0 64.0781 78.9336 [
+%AI3_Tile
+(0 O 0 R 0.05 0.2 1 0 k
+ 0.05 0.2 1 0 K
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 1 w 4 M []0 d
+0 XR
+64.0781 78.9336 m
+64.0781 0 L
+0 0 L
+0 78.9336 L
+64.0781 78.9336 L
+f
+%AI6_EndPatternLayer
+) &
+(0 O 0 R 0.83 0 1 0 k
+ 0.83 0 1 0 K
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 1 w 4 M []0 d
+0 XR
+29.7578 0.9902 m
+30.4346 1.1914 30.7246 1.3428 V
+29.2559 4.0547 33.707 8.3359 34.627 9.0762 C
+35.2275 8.8506 35.3477 6.3184 34.6699 4.9805 C
+35.5137 5.1035 37.7031 3.7256 38.4609 2.4365 C
+38.5254 3.125 40.0957 6.0664 40.9219 6.4434 C
+40.002 6.8408 39.3359 8.3135 38.5742 9.7617 C
+39.5957 9.9287 40.9961 9.0078 42.4668 8.1025 C
+42.9814 8.9043 44.3555 9.875 45.6143 10.3916 C
+44.5264 11.0781 44.0313 11.8203 43.5352 13.2793 C
+42.4922 12.7139 40.3057 12.5645 39.7764 12.8516 C
+40.291 13.9648 42.5371 14.5078 43.2676 14.4551 C
+43.0137 15.3164 42.8652 17.4697 43.0391 20.0625 C
+41.3789 18.7461 39.834 17.4297 38.1738 17.4883 C
+38.4434 16.0664 37.8076 14.2607 37.4307 13.7676 C
+36.8574 14.5117 36.4463 15.3389 36.8008 17.3164 C
+35.3486 17.8008 34.1113 18.3467 32.7373 19.6045 C
+32.7373 17.7734 32.166 16.5723 31.2969 15.2959 C
+32.5576 14.8076 33.8301 13.6045 33.8252 12.5664 C
+32.9775 12.7178 31.2852 13.4619 30.793 14.4551 C
+30.0742 13.707 28.3906 12.3984 26.7871 12.3945 C
+27.9746 11.5391 28.8945 10.5059 28.9893 8.5938 C
+30.2422 9.5645 32.6953 10.1797 34.0752 9.582 C
+29.2344 5.3457 29.7031 2.3125 29.7578 0.9902 C
+f
+13.8525 29.9844 m
+13.3281 29.5127 13.1309 29.25 V
+15.623 27.4326 13.3691 21.6074 12.8555 20.5439 C
+12.2168 20.4883 10.8096 23.2285 10.8457 24.7266 C
+9.7129 23.9707 8.0488 24.0918 6.4463 24.3779 C
+7.0186 23.2891 6.6172 21.3447 5.8164 20.5439 C
+6.8184 20.5801 8.1699 19.8652 9.4785 18.8838 C
+8.6436 18.0645 6.8164 18.2246 4.9004 18.8838 C
+4.9004 17.5107 4.0781 15.7734 3.2412 14.5918 C
+4.5576 14.6484 5.7031 13.9629 6.5605 12.9316 C
+7.2256 14.5 9.2598 15.6133 10.166 15.5645 C
+10.1826 14.1992 8.6094 12.1094 7.5879 11.7109 C
+8.1875 11.041 9.207 9.5107 10.166 7.0947 C
+10.9648 9.0205 12.1348 10.2627 13.3672 11.1953 C
+12.2256 12.7578 12.3994 13.6289 12.7988 15.1074 C
+13.541 14.5664 14.5723 14.1338 14.7441 12.1309 C
+16.4609 12.416 17.5957 12.3447 19.0938 11.4434 C
+18.6387 13.1055 18.6348 14.707 18.9551 16.4063 C
+17.1055 16.2666 15.5449 16.4795 14.5156 17.9688 C
+15.3457 18.1953 17.6055 18.2549 18.4795 17.3223 C
+18.8066 18.3047 19.7012 19.7109 21.1475 20.4043 C
+19.707 20.6641 18.7227 21.7637 17.8135 23.4492 C
+17.1006 22.0332 14.873 20.3691 13.3711 20.3145 C
+15.373 24.3779 15.373 27.2959 13.8525 29.9844 C
+f
+41.2324 26.0742 m
+41.5518 26.7021 41.7549 26.959 V
+44.1523 25.0176 48.958 28.3262 49.8535 29.0957 C
+49.7432 29.7266 47.6182 30.8643 45.9004 29.834 C
+46.3408 31.123 45.4395 33.084 44.2402 34.126 C
+45.9805 34.0254 48.126 35.3867 48.6484 36.1289 C
+48.8701 35.1514 50.0527 33.8809 51.3379 32.8672 C
+51.6895 33.8398 50.9941 35.958 50.0781 37.5605 C
+51.3125 38.0605 52.4248 38.9912 52.8828 40.25 C
+53.3398 38.9336 54.3428 38.2598 55.6875 37.5039 C
+54.5273 36.0762 53.7471 33.9023 54.0273 33.0391 C
+55.3496 33.374 56.9209 36.0918 57.0439 37.1816 C
+57.9189 36.415 59.4727 35.7285 62.0537 35.4219 C
+60.3535 34.3438 59.9902 32.3516 59.4063 30.9219 C
+58.2588 31.3682 56.0898 31.4277 55.1152 30.8643 C
+55.8281 30.2852 57.168 29.7344 59.1777 29.7207 C
+59.1777 28.1758 59.6406 27.043 60.8945 25.8281 C
+59.1719 25.8418 57.0723 25.3555 55.5762 24.9629 C
+55.3281 26.292 54.4844 27.8887 53.3398 28.2891 C
+53.334 27.4277 53.5996 25.1797 54.4844 24.5117 C
+53.6201 23.9443 52.3672 22.5674 51.9102 20.8496 C
+51.2881 22.1758 50.4268 23.4805 48.5645 23.9238 C
+49.749 24.9766 50.584 26.9941 50.25 28.4609 C
+45.1973 24.4785 42.5215 25.7773 41.2324 26.0742 C
+f
+27.7578 38.7324 m
+28.4346 38.9316 28.7246 39.084 V
+27.2559 41.7969 31.707 46.0776 32.627 46.8169 C
+33.2275 46.5918 33.3477 44.0586 32.6699 42.7227 C
+33.5137 42.8457 35.7031 41.4678 36.4609 40.1787 C
+36.5254 40.8652 38.0957 43.8066 38.9219 44.1846 C
+38.002 44.582 37.3359 46.0547 36.5742 47.5039 C
+37.5957 47.6709 38.9961 46.7485 40.4668 45.8438 C
+40.9814 46.6445 42.3555 47.6177 43.6143 48.1328 C
+42.5264 48.8198 42.0313 49.5615 41.5352 51.0205 C
+40.4922 50.4556 38.3057 50.3057 37.7764 50.5938 C
+38.291 51.7056 40.5371 52.2485 41.2676 52.1958 C
+41.0137 53.0576 40.8652 55.2109 41.0391 57.8037 C
+39.3789 56.4878 37.834 55.1719 36.1738 55.2285 C
+36.4434 53.8076 35.8076 52.002 35.4307 51.5088 C
+34.8574 52.2529 34.4463 53.0796 34.8008 55.0576 C
+33.3486 55.5425 32.1113 56.0879 30.7373 57.3467 C
+30.7373 55.5146 30.166 54.314 29.2969 53.0366 C
+30.5576 52.5488 31.8301 51.3467 31.8252 50.3076 C
+30.9775 50.46 29.2852 51.2036 28.793 52.1958 C
+28.0742 51.4497 26.3906 50.1396 24.7871 50.1357 C
+25.9746 49.2817 26.8945 48.2466 26.9893 46.335 C
+28.2422 47.3057 30.6953 47.9209 32.0752 47.3237 C
+27.2344 43.0869 27.7031 40.0547 27.7578 38.7324 C
+f
+13.5195 70.3916 m
+12.9941 69.9209 12.7988 69.6587 V
+15.2891 67.8418 13.0352 62.0146 12.5225 60.9517 C
+11.8828 60.8955 10.4766 63.6367 10.5117 65.1348 C
+9.3809 64.3789 7.7148 64.4995 6.1133 64.7856 C
+6.6855 63.6987 6.2842 61.7529 5.4834 60.9517 C
+6.4854 60.9878 7.8359 60.2729 9.1455 59.2925 C
+8.3105 58.4717 6.4834 58.6338 4.5674 59.2925 C
+4.5674 57.9189 3.7461 56.1816 2.9082 54.9995 C
+4.2246 55.0576 5.3691 54.3706 6.2275 53.3408 C
+6.8926 54.9097 8.9258 56.0215 9.832 55.9727 C
+9.8496 54.6079 8.2764 52.5176 7.2539 52.1187 C
+7.8545 51.4497 8.873 49.9189 9.832 47.5039 C
+10.6309 49.4297 11.8008 50.6719 13.0342 51.6045 C
+11.8926 53.1655 12.0664 54.0366 12.4648 55.5146 C
+13.209 54.9746 14.2393 54.5415 14.4102 52.5386 C
+16.127 52.8247 17.2637 52.7529 18.7598 51.8525 C
+18.3057 53.5137 18.3027 55.1147 18.623 56.8149 C
+16.7725 56.6748 15.2129 56.8887 14.1826 58.377 C
+15.0117 58.6035 17.2725 58.6626 18.1465 57.731 C
+18.4736 58.7129 19.3691 60.1187 20.8145 60.8125 C
+19.375 61.0728 18.3896 62.1719 17.4805 63.8579 C
+16.7676 62.4429 14.541 60.7769 13.0371 60.7227 C
+15.041 64.7856 15.041 67.7046 13.5195 70.3916 C
+f
+41.2324 64.4824 m
+41.5518 65.1113 41.7549 65.3682 V
+44.1523 63.4272 48.958 66.7354 49.8535 67.5034 C
+49.7432 68.1362 47.6182 69.2725 45.9004 68.2422 C
+46.3408 69.5313 45.4395 71.4922 44.2402 72.5342 C
+45.9805 72.4341 48.126 73.7954 48.6484 74.5371 C
+48.8701 73.5601 50.0527 72.29 51.3379 71.2754 C
+51.6895 72.249 50.9941 74.3662 50.0781 75.9683 C
+51.3125 76.4692 52.4248 77.3994 52.8828 78.6582 C
+53.3398 77.3423 54.3428 76.667 55.6875 75.9111 C
+54.5273 74.4844 53.7471 72.3101 54.0273 71.4473 C
+55.3496 71.7822 56.9209 74.5 57.0439 75.5903 C
+57.9189 74.8232 59.4727 74.1372 62.0537 73.8311 C
+60.3535 72.7534 59.9902 70.7612 59.4063 69.3301 C
+58.2588 69.7773 56.0898 69.8364 55.1152 69.2725 C
+55.8281 68.6934 57.168 68.1431 59.1777 68.1284 C
+59.1777 66.583 59.6406 65.4512 60.8945 64.2373 C
+59.1719 64.249 57.0723 63.7632 55.5762 63.3721 C
+55.3281 64.7002 54.4844 66.2974 53.3398 66.6973 C
+53.334 65.8364 53.5996 63.5874 54.4844 62.9214 C
+53.6201 62.353 52.3672 60.9751 51.9102 59.2583 C
+51.2881 60.583 50.4268 61.8882 48.5645 62.333 C
+49.749 63.3862 50.584 65.4033 50.25 66.8691 C
+45.1973 62.8872 42.5215 64.1851 41.2324 64.4824 C
+f
+%AI6_EndPatternLayer
+) &
+] E
+%AI3_EndPattern
+%AI3_BeginPattern: (Stripes)
+(Stripes) 8.45 4.6001 80.45 76.6001 [
+%AI3_Tile
+(0 O 0 R 1 0.07 1 0 k
+ 1 0.07 1 0 K
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 3.6 w 4 M []0 d
+0 XR
+8.2 8.2 m
+80.7 8.2 L
+S
+8.2 22.6001 m
+80.7 22.6001 L
+S
+8.2 37.0002 m
+80.7 37.0002 L
+S
+8.2 51.4 m
+80.7 51.4 L
+S
+8.2 65.8001 m
+80.7 65.8001 L
+S
+8.2 15.4 m
+80.7 15.4 L
+S
+8.2 29.8001 m
+80.7 29.8001 L
+S
+8.2 44.2 m
+80.7 44.2 L
+S
+8.2 58.6001 m
+80.7 58.6001 L
+S
+8.2 73.0002 m
+80.7 73.0002 L
+S
+%AI6_EndPatternLayer
+) &
+] E
+%AI3_EndPattern
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI8_BeginBrushPattern
+(New Pattern 1)
+0 A
+u
+1 Ap
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-7966.8496 8072.5967 m
+-7966.8496 8048.5967 L
+-8016.8496 8048.5967 L
+-8016.8496 8072.5967 L
+-7966.8496 8072.5967 L
+n
+u
+0 Ap
+0 O
+1 g
+-7986.8496 8070.5967 m
+-7999.0596 8073.6494 -8007.543 8063.6572 -8016.8496 8056.5479 C
+F
+-7976.8496 8070.5967 m
+-7993.2275 8074.6904 -8002.9004 8055.3193 -8016.8496 8050.9121 C
+F
+-8016.8496 8050.5967 m
+-7996.8496 8045.5967 -7986.8496 8075.5967 -7966.8496 8070.5967 C
+F
+-8006.8496 8050.5967 m
+-7990.4717 8046.502 -7980.7988 8065.874 -7966.8496 8070.2813 C
+F
+-7996.8496 8050.5967 m
+-7984.6396 8047.5439 -7976.1563 8057.5361 -7966.8496 8064.6455 C
+F
+-7976.8496 8050.5967 m
+-7973.2275 8049.6904 -7969.9351 8049.9375 -7966.8496 8050.9121 C
+F
+-8006.8496 8070.5967 m
+-8010.4717 8071.502 -8013.7651 8071.2559 -8016.8496 8070.2813 C
+F
+-7976.8813 8050.7217 m
+-7983.0005 8049.2129 -7986.8813 8050.7217 V
+-7990.9771 8049.2441 -7996.8813 8050.7217 V
+-8001.8442 8049.0459 -8006.8813 8050.7217 V
+-8012.8965 8049.1709 -8016.8813 8050.7217 V
+-8016.8813 8070.4063 L
+-8013.7954 8071.3809 -8010.3965 8071.5879 -8006.4795 8070.5049 C
+-8000.313 8072.0879 -7996.563 8070.5049 V
+-7991.563 8072.0879 -7986.4795 8070.4209 V
+-7982.147 8072.0049 -7976.4795 8070.5049 V
+-7970.9795 8071.9209 -7966.8813 8070.7217 V
+-7966.8813 8051.0361 L
+-7969.625 8050.0254 -7972.751 8049.5254 -7976.8813 8050.7217 C
+f
+0 R
+0 G
+1 J 1 j 0.5 w
+-7996.8496 8070.5967 m
+-8004.6396 8072.5439 -8010.9131 8069.1816 -8016.8496 8064.6455 C
+S
+-7986.8496 8070.5967 m
+-7999.0596 8073.6494 -8007.543 8063.6572 -8016.8496 8056.5479 C
+S
+-7976.8496 8070.5967 m
+-7993.2275 8074.6904 -8002.9004 8055.3193 -8016.8496 8050.9121 C
+S
+-8016.8496 8050.5967 m
+-7996.8496 8045.5967 -7986.8496 8075.5967 -7966.8496 8070.5967 C
+S
+-8006.8496 8050.5967 m
+-7990.4717 8046.502 -7980.7988 8065.874 -7966.8496 8070.2813 C
+S
+-7996.8496 8050.5967 m
+-7984.6396 8047.5439 -7976.1563 8057.5361 -7966.8496 8064.6455 C
+S
+-7986.8496 8050.5967 m
+-7979.0596 8048.6494 -7972.7871 8052.0117 -7966.8496 8056.5479 C
+S
+-7976.8496 8050.5967 m
+-7973.2275 8049.6904 -7969.9351 8049.9375 -7966.8496 8050.9121 C
+S
+-8006.8496 8070.5967 m
+-8010.4717 8071.502 -8013.7651 8071.2559 -8016.8496 8070.2813 C
+S
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 10)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.0996 8071.5967 m
+-7965.9917 8071.5967 L
+-7965.9917 8015.5723 L
+-8016.0996 8015.5723 L
+-8016.0996 8071.5967 L
+n
+u
+0 O
+0.1 1 1 0 k
+-7979.001 8037.1719 m
+-7980.8174 8030.6924 -7990.9243 8034.0625 Y
+-7990.8911 8034.127 L
+-8000.9995 8030.7568 -8002.814 8037.2363 V
+-8008.7754 8054.6025 -8003.5918 8061.3408 V
+-7996.8525 8070.9336 -7992.7051 8070.9336 V
+-7989.1099 8070.8672 L
+-7984.9634 8070.8672 -7978.2251 8061.2783 Y
+-7973.0405 8054.5391 -7979.001 8037.1719 Y
+f
+u
+0 0 0 1 k
+-7983.4922 8015.5723 m
+-7984.2163 8017.0166 -7985.0234 8018.0713 V
+-7984.5054 8017.6592 -7983.6147 8016.7881 -7983.4922 8015.5723 C
+f
+-7997.1641 8018.082 m
+-7997.9707 8017.0273 -7998.6938 8015.583 Y
+-7998.5723 8016.7988 -7997.6821 8017.6699 -7997.1641 8018.082 C
+f
+U
+0 0.61 0.74 0 k
+-7982.6973 8040.0576 m
+-7984.0034 8035.3926 -7991.2813 8037.8184 Y
+-7991.2563 8037.8652 L
+-7998.5361 8035.4395 -7999.8413 8040.1045 V
+-8004.1333 8052.6084 -8000.4014 8057.46 V
+-7995.5483 8064.3652 -7992.563 8064.3652 V
+-7989.9751 8064.3193 L
+-7986.9883 8064.3193 -7982.1362 8057.4141 Y
+-7978.4038 8052.5605 -7982.6973 8040.0576 Y
+f
+u
+1 Ap
+0.73 0.43 1 0.22 k
+0 R
+0 0 0 1 K
+-7986.7222 8042.8721 m
+-7985.9131 8042.8721 -7985.2554 8042.2148 -7985.2554 8041.4063 c
+-7985.2554 8040.5967 -7985.9131 8039.9385 -7986.7222 8039.9385 c
+-7987.5317 8039.9385 -7988.1885 8040.5967 -7988.1885 8041.4063 c
+-7988.1885 8042.2148 -7987.5317 8042.8721 -7986.7222 8042.8721 c
+b
+-7986.4634 8054.5938 m
+-7985.1802 8054.5938 -7984.1411 8053.7168 -7984.1411 8052.6387 c
+-7984.1411 8051.5576 -7985.1802 8050.6836 -7986.4634 8050.6836 c
+-7987.7451 8050.6836 -7988.7842 8051.5576 -7988.7842 8052.6387 c
+-7988.7842 8053.7168 -7987.7451 8054.5938 -7986.4634 8054.5938 c
+b
+-7985.9341 8066.3828 m
+-7984.3813 8066.3828 -7983.1235 8065.7256 -7983.1235 8064.918 c
+-7983.1235 8064.1084 -7984.3813 8063.4512 -7985.9341 8063.4512 c
+-7987.4858 8063.4512 -7988.7451 8064.1084 -7988.7451 8064.918 c
+-7988.7451 8065.7256 -7987.4858 8066.3828 -7985.9341 8066.3828 c
+b
+-7981.71 8038.123 m
+-7980.9683 8038.123 -7980.3667 8037.4121 -7980.3667 8036.5332 c
+-7980.3667 8035.6553 -7980.9683 8034.9443 -7981.71 8034.9443 c
+-7982.4531 8034.9443 -7983.0542 8035.6553 -7983.0542 8036.5332 c
+-7983.0542 8037.4121 -7982.4531 8038.123 -7981.71 8038.123 c
+b
+-7980.103 8059.6797 m
+-7980.9814 8059.332 -7981.249 8057.9316 -7980.7031 8056.5508 c
+-7980.1563 8055.1719 -7979.001 8054.332 -7978.123 8054.6816 c
+-7977.2451 8055.0293 -7976.9771 8056.4297 -7977.5229 8057.8105 c
+-7978.0698 8059.1904 -7979.2251 8060.0283 -7980.103 8059.6797 c
+b
+u
+-7995.1563 8042.7559 m
+-7995.9658 8042.7559 -7996.6235 8042.0986 -7996.6235 8041.29 c
+-7996.6235 8040.4795 -7995.9658 8039.8232 -7995.1563 8039.8232 c
+-7994.3481 8039.8232 -7993.6909 8040.4795 -7993.6909 8041.29 c
+-7993.6909 8042.0986 -7994.3481 8042.7559 -7995.1563 8042.7559 c
+b
+-7995.4155 8054.4766 m
+-7996.6987 8054.4766 -7997.7378 8053.6016 -7997.7378 8052.5215 c
+-7997.7378 8051.4414 -7996.6987 8050.5664 -7995.4155 8050.5664 c
+-7994.1338 8050.5664 -7993.0947 8051.4414 -7993.0947 8052.5215 c
+-7993.0947 8053.6016 -7994.1338 8054.4766 -7995.4155 8054.4766 c
+b
+-7995.9453 8066.2676 m
+-7997.4971 8066.2676 -7998.7554 8065.6113 -7998.7554 8064.8008 c
+-7998.7554 8063.9902 -7997.4971 8063.335 -7995.9453 8063.335 c
+-7994.3931 8063.335 -7993.1348 8063.9902 -7993.1348 8064.8008 c
+-7993.1348 8065.6113 -7994.3931 8066.2676 -7995.9453 8066.2676 c
+b
+-8000.1675 8038.0059 m
+-8000.9111 8038.0059 -8001.5117 8037.2949 -8001.5117 8036.418 c
+-8001.5117 8035.54 -8000.9111 8034.8301 -8000.1675 8034.8301 c
+-7999.4258 8034.8301 -7998.8237 8035.54 -7998.8237 8036.418 c
+-7998.8237 8037.2949 -7999.4258 8038.0059 -8000.1675 8038.0059 c
+b
+-8001.7754 8059.5645 m
+-8000.8979 8059.2168 -8000.6294 8057.8154 -8001.1758 8056.4336 c
+-8001.7222 8055.0537 -8002.8774 8054.2168 -8003.7554 8054.5645 c
+-8004.6338 8054.9131 -8004.9028 8056.3145 -8004.3564 8057.6934 c
+-8003.8101 8059.0742 -8002.6548 8059.9121 -8001.7754 8059.5645 c
+b
+U
+U
+0 Ap
+0 0 0 1 k
+-7991.2314 8038.252 m
+-7991.2314 8070.9111 l
+F
+u
+-7975.4902 8024.127 m
+-7976.1812 8023.4336 -7979.1191 8024.2988 Y
+-7980.3291 8024.4707 -7980.1558 8026.8896 Y
+-7979.1191 8028.9648 -7979.8101 8028.791 Y
+-7980.3994 8028.791 -7981.9551 8028.7109 -7982.8818 8028.6592 C
+-7983.2222 8027.2656 -7984.7124 8026.0713 -7986.8213 8025.3662 C
+-7984.8574 8022.0742 -7986.6172 8021.3916 -7988.3931 8021.3867 C
+-7988.4092 8021.2988 -7988.4321 8021.2129 -7988.4595 8021.1289 C
+-7986.2085 8021.1758 -7985.7388 8018.8555 Y
+-7985.5044 8018.6592 -7985.2603 8018.3828 -7985.0234 8018.0713 C
+-7985.2412 8018.2441 -7985.394 8018.3359 Y
+-7986.3579 8018.3359 -7987.9771 8020.0908 -7988.5962 8020.8037 C
+-7989.019 8020.04 -7989.9531 8019.5078 -7991.043 8019.5078 c
+-7992.1694 8019.5078 -7993.1318 8020.0752 -7993.5308 8020.8809 C
+-7994.0981 8020.2207 -7995.7964 8018.3477 -7996.7939 8018.3477 C
+-7996.9458 8018.2539 -7997.1641 8018.082 V
+-7996.9277 8018.3896 -7996.6831 8018.6699 -7996.4478 8018.8652 C
+-7995.9634 8021.2529 -7993.625 8021.1309 V
+-7993.6445 8021.1855 -7993.667 8021.2393 -7993.6802 8021.2988 C
+-7997.0234 8021.2891 -7996.0371 8023.9141 -7995.3101 8025.2568 C
+-7997.6914 8025.9727 -7999.3643 8027.2969 -7999.6235 8028.8467 C
+-8000.5469 8028.8965 -8001.7725 8028.9551 -8002.2798 8028.9551 C
+-8002.9722 8029.1279 -8001.9351 8027.0547 V
+-8001.7622 8024.6357 -8002.9722 8024.4629 V
+-8005.9092 8023.5986 -8006.6011 8024.29 V
+-8007.2915 8025.1533 -8008.1558 8023.9424 V
+-8007.2915 8025.6719 -8005.3911 8025.1533 V
+-8002.7979 8024.4629 -8003.4902 8026.1904 V
+-8004.0083 8029.6465 -8002.2798 8030.3369 V
+-8000.1338 8031.4512 -7998.3818 8031.6855 V
+-7998.0083 8032.0107 -7997.5635 8032.3076 -7997.0581 8032.5732 C
+-7999.6558 8032.6436 -8002.3242 8033.5176 -8003.1748 8036.5527 C
+-8003.6147 8037.8398 -8004.1514 8039.8398 V
+-8005.2021 8040.4219 -8006.4019 8041.6045 -8007.6411 8043.8584 C
+-8008.4941 8047.0469 -8009.2671 8042.3096 V
+-8010.4971 8039.2461 -8011.75 8039.1348 V
+-8010.5698 8040.8838 -8011.0034 8042.0127 V
+-8009.3994 8046.5137 -8007.7134 8045.4961 V
+-8006.1982 8044.8164 -8004.7881 8042.4121 V
+-8005.1694 8044.0938 -8005.5322 8046.0137 -8005.7739 8047.9873 C
+-8006.5884 8047.9941 L
+-8008.4502 8047.0752 -8008.4258 8050.5557 V
+-8009.2222 8054.542 -8008.459 8057.2793 V
+-8007.7471 8059.7471 -8010.2271 8058.5273 V
+-8011.3838 8058.9209 -8012.0835 8058.3848 V
+-8014.4878 8057.0088 -8016.0996 8058.7207 V
+-8014.2471 8058.4766 -8013.5479 8059.0137 V
+-8012.0781 8059.1582 -8011.9971 8059.7744 V
+-8009.0557 8060.4521 -8008.2881 8059.6729 V
+-8006.5171 8058.8105 -8007.23 8055.9561 V
+-8007.9795 8048.0781 -8006.4194 8050.002 V
+-8006.2178 8050.0176 -8005.978 8050.1143 V
+-8006.2515 8054.0293 -8005.9014 8057.9209 -8004.0957 8060.4473 C
+-8007.5532 8052.9297 -8002.397 8037.9004 Y
+-8001.0605 8033.127 -7995.2271 8033.6982 -7992.2451 8034.3311 C
+-7992.1714 8035.7256 -7991.937 8037.5449 -7991.2314 8038.252 C
+-7990.313 8036.292 -7990.3354 8034.6699 V
+-7989.1758 8034.3184 -7982.3813 8032.4414 -7979.5483 8035.9336 C
+-7980.5308 8033.4102 -7982.9258 8032.6152 -7985.3003 8032.5156 C
+-7984.7671 8032.2285 -7984.3037 8031.9014 -7983.9253 8031.5469 C
+-7982.1411 8031.3828 -7979.8101 8030.1729 Y
+-7978.0811 8029.4824 -7978.6011 8026.0273 Y
+-7979.2915 8024.2988 -7976.6987 8024.9902 Y
+-7974.7998 8025.5078 -7973.9351 8023.7803 Y
+-7974.7998 8024.9902 -7975.4902 8024.127 Y
+f
+-7970.0078 8058.5488 m
+-7970.707 8059.0859 -7971.8628 8058.6904 Y
+-7974.3442 8059.9102 -7973.6323 8057.4424 Y
+-7972.8691 8054.707 -7973.6641 8050.7188 Y
+-7973.6411 8047.2412 -7975.501 8048.1563 Y
+-7976.1338 8048.1523 L
+-7976.4194 8046.208 -7976.8042 8044.3516 -7977.1895 8042.7656 C
+-7975.8125 8045.0166 -7974.3774 8045.6592 Y
+-7972.6909 8046.6787 -7971.0874 8042.1758 Y
+-7971.521 8041.0469 -7970.3413 8039.2988 Y
+-7971.5933 8039.4092 -7972.8242 8042.4727 Y
+-7973.5972 8047.2119 -7974.4507 8044.0234 Y
+-7975.6772 8041.7871 -7976.8691 8040.6064 -7977.9141 8040.0195 C
+-7978.3022 8038.6592 -7978.5854 8037.8359 Y
+-7978.7998 8037.0693 -7979.1333 8036.4453 -7979.5483 8035.9336 C
+-7979.4795 8036.1094 -7979.417 8036.2949 -7979.3628 8036.4873 C
+-7973.4019 8053.8555 -7978.5854 8060.5938 V
+-7985.3242 8070.1836 -7989.4717 8070.1836 V
+-7993.0659 8070.248 L
+-7997.2134 8070.248 -8003.9531 8060.6582 Y
+-8004.0034 8060.5928 -8004.0459 8060.5176 -8004.0957 8060.4473 C
+-8003.8374 8061.0107 -8003.5371 8061.5371 -8003.1748 8062.0059 C
+-7996.4355 8071.5967 -7992.2891 8071.5967 V
+-7988.6938 8071.5313 L
+-7984.5479 8071.5313 -7977.8091 8061.9414 Y
+-7975.6797 8059.1729 -7975.4302 8054.6143 -7975.8765 8050.2021 C
+-7975.7549 8050.1719 -7975.6694 8050.1641 Y
+-7974.1108 8048.2441 -7974.8594 8056.1211 Y
+-7975.5742 8058.9756 -7973.8022 8059.8369 Y
+-7973.0347 8060.6152 -7970.0942 8059.9385 Y
+-7970.0132 8059.3223 -7968.543 8059.1777 Y
+-7967.8442 8058.6416 -7965.9917 8058.8848 Y
+-7967.6021 8057.1729 -7970.0078 8058.5488 Y
+f
+U
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 2)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.0996 8071.5967 m
+-7951.2871 8071.5967 L
+-7951.2871 8007.499 L
+-8016.0996 8007.499 L
+-8016.0996 8071.5967 L
+n
+u
+0 O
+0 g
+-7981.7974 8030.0264 m
+-7983.709 8007.499 L
+-7985.6211 8030.0264 L
+-7985.0029 8029.9033 -7984.3638 8029.8369 -7983.709 8029.8369 c
+-7983.0547 8029.8369 -7982.4155 8029.9033 -7981.7974 8030.0264 C
+f
+-7993.3398 8037.9941 m
+-8016.0996 8039.9268 L
+-7993.2134 8041.8701 L
+-7993.3853 8041.1436 -7993.4844 8040.3896 -7993.4844 8039.6123 c
+-7993.4844 8039.0596 -7993.4277 8038.5215 -7993.3398 8037.9941 C
+f
+-7988.6191 8031.1689 m
+-8002.2622 8022.4014 L
+-7992.3149 8034.9736 L
+-7991.457 8033.3877 -7990.1714 8032.0732 -7988.6191 8031.1689 C
+f
+-7985.5811 8049.2041 m
+-7983.6782 8071.5967 L
+-7981.7764 8049.1934 L
+-7982.4014 8049.3193 -7983.0469 8049.3877 -7983.709 8049.3877 c
+-7984.3496 8049.3877 -7984.9731 8049.3213 -7985.5811 8049.2041 C
+f
+-7974.0605 8041.1035 m
+-7951.2871 8039.1689 L
+-7974.1831 8037.2256 L
+-7974.1831 8037.4473 L
+-7974.0254 8038.1455 -7973.9341 8038.8662 -7973.9341 8039.6123 c
+-7973.9341 8040.1201 -7973.9844 8040.6152 -7974.0605 8041.1035 C
+f
+-7992.2134 8044.4229 m
+-8002.2637 8057.126 L
+-7988.3774 8048.2021 L
+-7989.9819 8047.3271 -7991.311 8046.0127 -7992.2134 8044.4229 C
+f
+-7975.0957 8034.9912 m
+-7964.9751 8022.2021 L
+-7978.8662 8031.1279 L
+-7977.2764 8032.0381 -7975.9629 8033.376 -7975.0957 8034.9912 C
+f
+-7978.7891 8048.0479 m
+-7964.9731 8056.9248 L
+-7975.0654 8044.1689 L
+-7975.9194 8045.7861 -7977.2148 8047.1279 -7978.7891 8048.0479 C
+f
+-7974.9883 8044.21 m
+-7974.4858 8043.2607 -7974.1431 8042.2168 -7973.9751 8041.1152 c
+-7973.8989 8040.626 -7973.8481 8040.124 -7973.8481 8039.6123 c
+-7973.8481 8038.8604 -7973.9395 8038.1318 -7974.0981 8037.4277 c
+-7974.2954 8036.5537 -7974.6045 8035.7207 -7975.0181 8034.9512 c
+-7975.895 8033.3213 -7977.2188 8031.9707 -7978.8237 8031.0527 c
+-7979.729 8030.5342 -7980.7222 8030.1504 -7981.7798 8029.9424 c
+-7982.4043 8029.8174 -7983.0493 8029.748 -7983.709 8029.748 c
+-7984.3691 8029.748 -7985.0151 8029.8174 -7985.6387 8029.9424 c
+-7986.7231 8030.1572 -7987.7378 8030.5537 -7988.6621 8031.0928 c
+-7990.231 8032.0068 -7991.5278 8033.332 -7992.3911 8034.9316 c
+-7992.8965 8035.8662 -7993.2451 8036.8936 -7993.4258 8037.9785 c
+-7993.5151 8038.5127 -7993.5723 8039.0557 -7993.5723 8039.6123 c
+-7993.5723 8040.3975 -7993.4707 8041.1572 -7993.2974 8041.8896 c
+-7993.0811 8042.8037 -7992.7402 8043.6699 -7992.2871 8044.4668 c
+-7991.3789 8046.0693 -7990.0391 8047.3975 -7988.417 8048.2793 c
+-7987.5483 8048.752 -7986.5996 8049.0947 -7985.5957 8049.29 c
+-7984.9844 8049.4072 -7984.355 8049.4736 -7983.709 8049.4736 c
+-7983.041 8049.4736 -7982.3896 8049.4053 -7981.7598 8049.2793 c
+-7980.6782 8049.0635 -7979.666 8048.6621 -7978.7451 8048.124 c
+-7977.1563 8047.1943 -7975.8511 8045.8408 -7974.9883 8044.21 c
+f
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 3)
+0 A
+u
+1 Ap
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8006.8496 8072.5967 m
+-8006.8496 8048.5967 L
+-8016.8496 8048.5967 L
+-8016.8496 8072.5967 L
+-8006.8496 8072.5967 L
+n
+u
+u
+0 Ap
+0 O
+1 g
+-8007.5054 8064.1328 m
+-8007.0874 8063.0313 -8006.8496 8061.8438 -8006.8496 8060.5967 c
+-8006.8496 8058.7344 -8007.3677 8056.9961 -8008.2539 8055.5039 c
+-8009.9971 8052.5703 -8013.1895 8050.5967 -8016.8496 8050.5967 C
+-8016.8496 8070.5967 L
+-8016.5293 8070.5967 -8016.2139 8070.5781 -8015.9014 8070.5488 c
+-8014.0117 8070.3721 -8012.2803 8069.6611 -8010.8438 8068.5791 c
+-8009.3467 8067.4512 -8008.1797 8065.915 -8007.5054 8064.1328 c
+f
+0 R
+0 G
+1 J 1 j 0.5 w
+-8016.8496 8050.9141 m
+-8013.8203 8051.8711 -8010.9922 8053.5293 -8008.2539 8055.5039 C
+S
+-8016.8496 8056.5479 m
+-8013.6987 8058.9531 -8010.6431 8061.6836 -8007.5054 8064.1328 C
+S
+-8010.8438 8068.5791 m
+-8012.9102 8067.4873 -8014.8989 8066.1309 -8016.8496 8064.6396 C
+S
+-8015.9014 8070.5488 m
+-8016.2188 8070.4648 -8016.5371 8070.3818 -8016.8496 8070.2832 C
+S
+-8010.8438 8068.5791 m
+-8012.2803 8069.6611 -8014.0117 8070.3711 -8015.9014 8070.5488 C
+S
+-8007.5054 8064.1328 m
+-8007.0874 8063.0313 -8006.8496 8061.8438 -8006.8496 8060.5967 c
+-8006.8496 8058.7344 -8007.3677 8056.9961 -8008.2539 8055.5039 C
+S
+-8016.8496 8070.5967 m
+-8016.5293 8070.5967 -8016.2139 8070.5781 -8015.9014 8070.5488 C
+S
+-8010.8438 8068.5791 m
+-8009.3467 8067.4512 -8008.1797 8065.915 -8007.5054 8064.1328 C
+S
+-8008.2539 8055.5039 m
+-8009.9971 8052.5703 -8013.1895 8050.5967 -8016.8496 8050.5967 C
+S
+U
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 34)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.125 8071.623 m
+-7960.1538 8071.623 L
+-7960.1538 8010.1309 L
+-8016.125 8010.1309 L
+-8016.125 8071.623 L
+n
+u
+u
+0 O
+0.0745 0.9 0.9019 0.18 k
+0 R
+0 0 0 1 K
+1 J 1 j 0.0518 w
+-7989.6987 8048.3184 m
+-7989.459 8059.1182 -7994.979 8069.4365 v
+-7994.5005 8071.5967 -7993.0591 8071.5967 v
+-7993.2998 8068.2373 -7992.3389 8067.7568 v
+-7988.0195 8055.7568 -7988.7378 8047.8369 v
+-7989.6987 8048.3184 l
+b
+-7989.6987 8048.3184 m
+-7991.3789 8053.5967 -8003.1387 8054.7979 v
+-8007.459 8055.2773 -8007.6987 8056.7168 v
+-8001.2202 8047.1152 -8000.2598 8047.3574 v
+-8013.459 8041.5977 -8016.0996 8036.3164 v
+-8011.0591 8039.1973 -8007.6987 8037.0361 v
+-7999.7798 8036.7979 -7994.7402 8038.958 v
+-7990.9004 8040.8779 -7998.8198 8024.7979 v
+-7994.979 8036.5576 -7991.3789 8010.1572 v
+-7990.4194 8015.4375 -7988.9795 8016.8779 v
+-7982.9795 8024.5576 -7983.9395 8026.7168 v
+-7984.4194 8030.5576 -7979.8594 8024.3174 v
+-7980.0996 8033.918 -7982.5005 8037.2773 v
+-7984.6587 8040.8779 -7978.6587 8038.7168 v
+-7972.6587 8036.7979 -7967.3789 8038.4775 v
+-7961.8594 8039.916 -7960.1797 8037.0361 v
+-7971.9395 8049.5176 -7977.6987 8049.2773 v
+-7976.019 8052.8779 l
+-7973.6191 8057.6777 -7974.0996 8058.8779 v
+-7989.3677 8049.4795 -7989.6987 8048.3184 v
+b
+-7989.6987 8048.3184 m
+-7987.0591 8029.8369 -7989.6987 8022.1572 v
+-7992.0981 8011.5977 -7991.3789 8010.1572 v
+S
+-7988.2598 8037.0361 m
+-7982.2598 8032.2373 -7981.0591 8026.9561 v
+S
+-7988.2598 8036.3164 m
+-7997.1387 8028.6377 -7998.8198 8024.7979 v
+S
+-7960.1797 8037.0361 m
+-7961.3789 8039.1973 -7989.459 8047.3574 y
+-7994.5005 8041.8389 -8006.0195 8039.4375 v
+-8013.6982 8038.4775 -8016.0996 8036.3164 v
+S
+-8006.7378 8055.2773 m
+-7995.2188 8046.1582 -7989.459 8047.3574 y
+-7975.2988 8053.5967 -7974.0996 8058.8779 v
+S
+U
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 36)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8015.9492 8071.5928 m
+-7966.0596 8071.5928 L
+-7966.0596 8020.5225 L
+-8015.9492 8020.5225 L
+-8015.9492 8071.5928 L
+n
+u
+0 O
+0.025 0.1 0.475 0 k
+-7994.25 8039.5 m
+-7996.5762 8038.4092 -7998.791 8038.04 -8000.4731 8038.5205 c
+-8001.1514 8038.7129 -8001.7451 8039.0439 -8002.2231 8039.5205 c
+-8002.7002 8039.999 -8003.0293 8040.5918 -8003.2231 8041.2695 c
+-8004.1084 8044.3672 -8002.1099 8049.2744 -7998.0229 8053.3633 c
+-7993.9341 8057.4502 -7989.0293 8059.4473 -7985.9282 8058.5625 c
+-7985.2515 8058.3672 -7984.6582 8058.0391 -7984.1802 8057.5625 c
+-7983.7031 8057.084 -7983.375 8056.4912 -7983.1821 8055.8135 c
+-7982.6172 8053.8428 -7983.2222 8051.1416 -7984.7852 8048.3857 c
+-7985.6821 8046.8066 -7986.8911 8045.21 -7988.3789 8043.7197 c
+-7990.25 8041.8496 -7992.291 8040.4209 -7994.25 8039.5 c
+f
+u
+0.0035 0.014 0.0665 0 k
+-7993.3179 8038.5693 m
+-7995.9302 8037.6182 -7998.4971 8037.5654 -8000.4731 8038.5205 C
+-7998.791 8038.04 -7996.5762 8038.4092 -7994.25 8039.5 c
+-7993.7188 8039.751 -7993.1802 8040.04 -7992.6431 8040.3643 C
+-7990.998 8039.6504 L
+-7991.7671 8039.2139 -7992.543 8038.8496 -7993.3179 8038.5693 c
+f
+0.015 0.06 0.285 0 k
+-7990.998 8039.6504 m
+-7992.6431 8040.3643 L
+-7991.1958 8041.2314 -7989.7422 8042.3574 -7988.3789 8043.7197 c
+-7988.2534 8043.8467 -7988.1323 8043.9736 -7988.0098 8044.1025 C
+-7987.3149 8042.46 L
+-7988.4702 8041.3193 -7989.7188 8040.3779 -7990.998 8039.6504 C
+f
+U
+u
+0.039 0.156 0.741 0 k
+-7981.7871 8027 m
+-7982.0742 8027.2881 -7993.3179 8038.5693 Y
+-7992.543 8038.8496 -7991.7671 8039.2139 -7990.998 8039.6504 C
+-7977.5142 8026.167 L
+-7979.1611 8025.6953 -7980.7402 8025.9521 -7981.7871 8027 c
+f
+0.025 0.1 0.475 0 k
+-7977.5142 8026.167 m
+-7990.998 8039.6504 L
+-7989.6841 8040.3984 -7988.3965 8041.3721 -7987.2139 8042.5537 c
+-7987.1841 8042.583 -7987.1582 8042.6123 -7987.1274 8042.6416 C
+-7973.4404 8028.9541 L
+-7973.626 8028.7295 -7973.8198 8028.5107 -7974.0298 8028.2969 c
+-7975.1099 8027.2197 -7976.3301 8026.5049 -7977.5142 8026.167 C
+f
+U
+u
+0.0115 0.046 0.2185 0 k
+-7968.0342 8035.9893 m
+-7965.6333 8033.5859 -7965.4351 8029.6865 -7967.2378 8026.2939 C
+-7968.395 8026.7148 L
+-7966.1934 8030.0928 -7965.9395 8033.8916 -7968.0342 8035.9893 c
+f
+0.015 0.06 0.285 0 k
+-7975.6333 8021.1924 m
+-7974.6821 8020.5225 L
+-7977.3042 8019.9482 -7979.9302 8020.5107 -7981.7202 8022.3027 c
+-7980.2715 8020.8545 -7978.0078 8020.5273 -7975.6333 8021.1924 C
+f
+0.0295 0.118 0.5605 0 k
+-7975.6333 8021.1924 m
+-7978.0078 8020.5273 -7980.2715 8020.8545 -7981.7202 8022.3027 c
+-7983.1191 8023.7021 -7983.4702 8025.8604 -7982.895 8028.1436 C
+-7980.9668 8025.1416 -7977.5078 8026.1504 V
+-7975.6851 8021.2275 L
+-7975.6333 8021.1924 L
+f
+*u
+1 D
+0.048 0.192 0.912 0 k
+-7968.0342 8035.9893 m
+-7969.3813 8037.335 -7971.4321 8037.71 -7973.623 8037.2236 C
+-7983.771 8047.3701 L
+-7983.8691 8047.1641 -7983.8691 8047.1641 -7983.771 8047.3701 c
+-7982.3242 8050.4111 -7982.0698 8053.5127 -7983.1821 8055.8135 C
+-7982.6172 8053.8428 -7983.2222 8051.1416 -7984.7852 8048.3857 c
+-7985.605 8046.9404 -7986.6914 8045.4814 -7988.0098 8044.1025 C
+-7987.3149 8042.46 L
+-7987.2813 8042.4912 -7987.2461 8042.5205 -7987.2139 8042.5537 c
+-7987.1841 8042.584 -7987.1563 8042.6143 -7987.127 8042.6436 c
+-7987.1274 8042.6436 -7987.1274 8042.6436 -7987.1274 8042.6416 C
+-7973.4404 8028.9541 L
+-7968.4258 8026.7256 L
+-7968.395 8026.7148 L
+-7966.1934 8030.0928 -7965.9395 8033.8916 -7968.0342 8035.9893 c
+f
+*U
+0 D
+0.0215 0.086 0.4085 0 k
+-7974.6821 8020.5225 m
+-7975.6333 8021.1924 L
+-7973.7842 8021.708 -7971.8652 8022.8252 -7970.2134 8024.4795 c
+-7969.5059 8025.1855 -7968.8994 8025.9385 -7968.395 8026.7148 C
+-7967.2378 8026.2939 L
+-7967.7549 8025.3213 -7968.437 8024.3896 -7969.2798 8023.5479 c
+-7970.8691 8021.9561 -7972.7754 8020.9385 -7974.6821 8020.5225 C
+f
+0.0205 0.082 0.3895 0 k
+-7968.395 8026.7148 m
+-7968.8994 8025.9385 -7969.5059 8025.1855 -7970.2134 8024.4795 c
+-7971.8652 8022.8252 -7973.7842 8021.708 -7975.6333 8021.1924 C
+-7975.6851 8021.2275 L
+-7977.5078 8026.1504 L
+-7976.311 8026.5176 -7975.0874 8027.2393 -7974.0298 8028.2969 c
+-7973.8198 8028.5107 -7973.626 8028.7295 -7973.4404 8028.9541 C
+-7968.4258 8026.7256 L
+-7968.395 8026.7148 L
+f
+U
+u
+0.445 0.356 0.267 0 k
+-8015.9492 8071.5928 m
+-7994.0571 8048.5654 L
+-7994.3003 8048.2461 -7994.6748 8048.21 -7994.9883 8048.2559 C
+-7999.2798 8052.8857 -8010.4141 8065.0527 -8014.8262 8069.876 C
+-8015.6646 8070.9482 -8016.0996 8071.5898 -8015.9492 8071.5928 C
+f
+0.15 0.12 0.09 0 k
+-8015.9341 8071.5928 m
+-8014.7603 8071.2998 -7993.793 8049.5996 Y
+-7993.793 8049.0986 -7993.8989 8048.7725 -7994.0571 8048.5654 C
+-8015.9492 8071.5928 L
+-8015.9438 8071.5928 -8015.9414 8071.5967 -8015.9341 8071.5928 c
+f
+0.2 0.16 0.12 0 k
+-8014.8262 8069.876 m
+-8010.4141 8065.0527 -7999.2798 8052.8857 -7994.9883 8048.2559 C
+-7995.2998 8048.3008 -7995.5522 8048.4268 Y
+-7996.7031 8048.7295 -8010.6738 8064.5576 -8014.8262 8069.876 C
+f
+U
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 37)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8015.0498 8070.8281 m
+-7965.1387 8070.8281 L
+-7965.1387 8006.7119 L
+-8015.0498 8006.7119 L
+-8015.0498 8070.8281 L
+n
+u
+0 O
+0 0 0 1 k
+0 R
+0 0 0 1 K
+0 w
+-7965.3354 8006.7119 m
+-7965.7061 8006.8447 -7966.0854 8006.8799 -7966.4829 8006.7998 c
+-7966.5859 8006.7646 l
+-7966.625 8006.7568 -7966.6699 8006.7744 -7966.7021 8006.7959 c
+-7967.043 8006.9893 l
+-7970.8125 8008.8926 -7974.1958 8011.4932 -7976.5996 8015.0439 c
+-7978.063 8017.1885 -7979.2231 8019.4756 -7980.8989 8021.4521 c
+-7981.2725 8021.8057 -7981.2754 8022.3691 -7980.9341 8022.7275 c
+-7980.5947 8023.0977 -7980.0181 8023.1045 -7979.6611 8022.7617 c
+-7979.5034 8022.8066 l
+-7979.3638 8022.7256 -7979.1738 8022.667 -7979.123 8022.5537 c
+-7977.9531 8019.7998 -7977.2891 8017.1104 -7975.5332 8014.7354 c
+-7973.2715 8011.6904 -7970.2773 8009.5908 -7967.1294 8007.6201 c
+-7966.4668 8007.2021 L
+-7966.5962 8007.2314 L
+-7965.8691 8007.2393 l
+-7965.8911 8007.208 -7965.9004 8007.1924 -7965.9219 8007.1611 C
+-7965.7061 8007.1201 -7965.4771 8007.0713 -7965.2622 8007.0303 c
+-7965.1758 8007.0205 -7965.1182 8006.9355 -7965.1387 8006.835 c
+-7965.1499 8006.748 -7965.2378 8006.7051 -7965.3354 8006.7119 c
+-7965.3354 8006.7119 l
+b
+-7981.3218 8020.5918 m
+-7981.6738 8020.4033 -7982.0654 8020.2686 -7982.3481 8019.9854 c
+-7988.5518 8013.7686 -7998.7798 8012.8701 -8006.1484 8019.2822 C
+-8006.2578 8019.3779 -8006.2578 8019.5537 -8006.1631 8019.6611 C
+-8003.1523 8018.54 -7994.9834 8019.9717 -7991.4219 8023.0088 C
+-7991.353 8023.0635 -7991.2461 8023.0488 -7991.2051 8022.9678 C
+-7991.1499 8022.9014 -7991.166 8022.792 -7991.2324 8022.7529 C
+-7994.6621 8019.6816 -7999.167 8017.8867 -8003.7725 8018.3447 C
+-8000.9531 8016.7822 -7997.731 8016.0908 -7994.498 8016.2852 c
+-7989.814 8016.5684 -7985.563 8018.7158 -7981.4707 8020.876 c
+-7981.3911 8020.916 -7981.2974 8020.8896 -7981.2549 8020.8076 C
+-7981.2012 8020.7275 -7981.2422 8020.6318 -7981.3218 8020.5918 c
+b
+-7990.7471 8021.9326 m
+-7992.3262 8025.958 -7994.4907 8029.916 -7997.9014 8032.6729 c
+-7998.0645 8032.8086 -7998.0942 8033.0459 -7997.9707 8033.2021 c
+-7997.834 8033.3643 -7997.6045 8033.376 -7997.4478 8033.2529 c
+-7993.2231 8031.1934 -7990.29 8026.7275 -7990.2622 8021.998 c
+-7990.2622 8021.998 l
+-7990.2324 8021.8633 -7990.335 8021.7305 -7990.4629 8021.7188 c
+-7990.6035 8021.7021 -7990.7314 8021.7939 -7990.7471 8021.9326 c
+-7990.7471 8021.9326 l
+b
+-7985.041 8026.6143 m
+-7985.1421 8026.7783 -7985.2148 8026.9805 -7985.3613 8027.0791 c
+-7988.1802 8028.9873 -7991.0781 8030.2275 -7993.9844 8031.7295 c
+-7994.1499 8031.8057 -7994.2114 8032.0146 -7994.1309 8032.167 c
+-7994.0508 8032.3193 -7993.8555 8032.376 -7993.6895 8032.3008 c
+-7990.5391 8030.9199 -7986.4131 8030.0967 -7984.7725 8026.7764 c
+-7984.7285 8026.708 -7984.7451 8026.6113 -7984.8262 8026.5615 c
+-7984.8955 8026.5166 -7984.9971 8026.5449 -7985.041 8026.6143 c
+-7985.041 8026.6143 l
+b
+-7984.7598 8027.5146 m
+-7984.5435 8028.0264 -7984.2427 8028.4863 -7984.1499 8029.0313 c
+-7983.3179 8033.874 -7983.2148 8038.6387 -7984.3481 8043.2832 c
+-7984.3481 8043.2832 l
+-7984.4414 8043.5488 -7984.311 8043.8408 -7984.0435 8043.9355 c
+-7983.7773 8044.0303 -7983.4878 8043.9092 -7983.3931 8043.6445 c
+-7981.3931 8038.4072 -7981.9971 8032.334 -7984.4707 8027.3799 c
+-7984.5059 8027.2969 -7984.5981 8027.2656 -7984.6821 8027.2881 c
+-7984.7637 8027.3232 -7984.7974 8027.4316 -7984.7598 8027.5146 c
+-7984.7598 8027.5146 l
+b
+-7983.6348 8043.1904 m
+-7980.998 8040.8232 -7978.7813 8037.8486 -7977.9531 8034.332 c
+-7977.9531 8034.332 l
+-7977.8242 8033.7783 -7978.1738 8033.2197 -7978.7412 8033.0869 c
+-7979.2988 8032.9717 -7979.8574 8033.3213 -7979.9858 8033.876 c
+-7980.6646 8037.1279 -7981.9707 8040.2695 -7983.895 8042.9824 c
+-7983.895 8042.9824 l
+-7983.9458 8043.0518 -7983.9341 8043.1543 -7983.8691 8043.2168 c
+-7983.7988 8043.2656 -7983.6973 8043.2549 -7983.6348 8043.1904 c
+-7983.6348 8043.1904 l
+b
+-7968.4707 8035.7793 m
+-7969.811 8031.4268 -7972.3594 8027.666 -7975.7891 8024.75 C
+-7975.8291 8024.6689 -7975.9238 8024.6289 -7976.0034 8024.6816 C
+-7976.0859 8024.7236 -7976.1118 8024.8174 -7976.0718 8024.8984 C
+-7976.0571 8025.3857 -7975.814 8025.8301 -7975.5454 8026.1279 c
+-7970.5059 8031.7588 -7967.0898 8040.3164 -7969.4429 8047.5518 C
+-7969.1758 8042.0479 -7970.8237 8035.8975 -7974.2358 8031.2705 c
+-7975.2603 8029.8662 -7976.8418 8029.7168 -7978.4077 8029.7998 C
+-7978.502 8029.7861 -7978.583 8029.8398 -7978.5957 8029.9336 c
+-7978.6094 8030.0156 -7978.5547 8030.1104 -7978.4619 8030.1221 C
+-7975.2476 8031.3662 -7973.5874 8034.8213 -7972.1841 8037.791 c
+-7970.5151 8041.3408 -7969.8013 8045.2354 -7970.105 8049.0967 C
+-7970.145 8049.2744 -7970.2134 8050.9941 -7970.0771 8051.0068 C
+-7969.9302 8051.0361 -7969.8091 8050.9404 -7969.7798 8050.791 C
+-7969.7451 8050.6416 -7966.7422 8041.3945 -7968.4707 8035.7793 c
+b
+-7976.5859 8023.0879 m
+-7975.4941 8019.2168 -7973.209 8015.8477 -7970.582 8012.835 c
+-7970.4302 8012.7012 -7970.4141 8012.4824 -7970.5498 8012.332 c
+-7970.6748 8012.1973 -7970.9043 8012.1787 -7971.0571 8012.3145 c
+-7974.4302 8014.9287 -7975.5483 8019.1377 -7976.895 8022.9717 c
+-7976.895 8022.9717 l
+-7976.9258 8023.0615 -7976.875 8023.1553 -7976.7979 8023.1836 c
+-7976.709 8023.2158 -7976.6162 8023.1641 -7976.5859 8023.0879 c
+-7976.5859 8023.0879 l
+b
+-7970.6309 8047.7061 m
+-7970.6987 8047.6533 -7970.8071 8047.6797 -7970.8481 8047.7471 C
+-7971.063 8048.0713 -7972.791 8050.1152 -7973.4922 8050.7373 c
+-7978.2715 8054.9912 -7981.6133 8059.5576 -7989.6387 8063.3193 c
+-7996.5508 8066.5605 -7999.2109 8069.1924 -8006.4858 8067.4229 c
+-8009.7871 8066.626 -8011.1309 8066.1279 -8012.5347 8061.0518 C
+-8014.0469 8054.8955 -8012.9668 8057.3799 -8013.1841 8050.0352 c
+-8013.3218 8045.2939 -8016.0996 8034.0518 -8003.625 8019.8564 C
+-8003.5195 8019.7451 -8003.5332 8019.5928 -8003.6333 8019.5039 C
+-8003.7324 8019.3984 -8003.8955 8019.4121 -8003.9858 8019.5127 C
+-8009.6782 8024.3135 -8013.123 8031.2549 -8014.4141 8038.5391 c
+-8015.3867 8044.0635 -8015.0195 8048.8467 -8014.7661 8055.2334 c
+-8014.6685 8057.6904 -8015.7852 8064.6689 -8011.0098 8068.6592 c
+-8007.4922 8071.5967 -8002.4907 8071.1436 -7998.4541 8069.7529 c
+-7992.7988 8067.8086 -7988.0723 8064.7432 -7982.9707 8061.2061 c
+-7979.3652 8058.7217 -7971.3877 8048.8809 -7970.5781 8047.9229 C
+-7970.5347 8047.8555 -7970.5498 8047.7471 -7970.6309 8047.7061 C
+b
+-8005.1499 8034.9023 m
+-8004.2681 8034.0996 -8003.8013 8035.4424 -8003.5293 8036.1982 c
+-8003.2622 8036.9541 -8002.2891 8036.8467 -8002.6123 8037.1689 c
+-8002.9365 8037.4941 -8002.9365 8037.5488 -8003.4229 8037.1152 c
+-8003.9082 8036.6846 -8003.9082 8037.332 -8004.6646 8036.8467 c
+-8005.4194 8036.3584 -8005.7451 8035.4424 -8005.1499 8034.9023 c
+b
+-7997.7515 8039.5449 m
+-7997.4653 8039.1885 -7996.7798 8039.1689 -7996.5645 8039.4912 c
+-7996.3496 8039.8164 -7995.4302 8039.8701 -7995.5933 8040.1934 c
+-7995.7539 8040.5176 -7995.7012 8040.7354 -7996.187 8040.5176 c
+-7996.6733 8040.3008 -7996.5117 8040.8965 -7996.9971 8040.6807 c
+-7997.4829 8040.4639 -7997.9683 8039.8164 -7997.7515 8039.5449 c
+b
+-7989.707 8044.6758 m
+-7989.2202 8044.3525 -7987.979 8045.1084 -7988.5723 8045.1084 c
+-7989.167 8045.1084 -7988.4111 8045.8633 -7988.9517 8046.0801 c
+-7989.4902 8046.2959 -7989.3828 8046.0264 -7989.707 8046.2412 c
+-7990.0293 8046.458 -7990.4629 8046.8359 -7990.6235 8046.0264 c
+-7990.7852 8045.2158 -7990.4629 8045.2158 -7990.0845 8044.9463 c
+-7989.707 8044.6758 -7989.707 8044.6758 y
+b
+-8004.3398 8044.9463 m
+-8003.207 8044.8389 -8003.9629 8045.5947 -8003.3691 8046.0801 c
+-8002.7734 8046.5664 -8002.0181 8047.2139 -8002.8291 8046.9961 c
+-8003.6387 8046.7822 -8005.0957 8047.2686 -8005.043 8046.1348 c
+-8004.9883 8045 -8004.7324 8044.9824 -8004.3398 8044.9463 c
+b
+-7998.6699 8053.208 m
+-7998.2012 8052.9404 -7998.7798 8053.3164 -7998.1299 8053.208 c
+-7997.4829 8053.1006 -7996.8882 8053.208 -7997.3203 8053.4248 c
+-7997.7515 8053.6406 -7998.4004 8053.748 -7998.563 8053.5859 c
+-7998.7251 8053.4248 -7999.0469 8053.4248 -7998.6699 8053.208 c
+b
+-7989.167 8052.7764 m
+-7989.5781 8051.7764 -7988.1958 8052.0205 -7987.5469 8052.3428 c
+-7986.8994 8052.6689 -7985.9258 8052.0742 -7986.5205 8052.5068 c
+-7987.1133 8052.9385 -7986.8994 8052.5068 -7987.4922 8052.8301 c
+-7988.0869 8053.1533 -7988.7891 8053.6943 -7989.167 8052.7764 c
+b
+-8004.7734 8058.6631 m
+-8004.8218 8057.6719 -8003.9082 8058.5537 -8003.3691 8058.6084 c
+-8002.8291 8058.6631 -8002.1797 8058.6631 -8002.3428 8058.8779 c
+-8002.5034 8059.0947 -8002.5591 8059.0947 -8003.2622 8059.3096 c
+-8003.9629 8059.5264 -8004.7188 8059.7412 -8004.7734 8058.6631 c
+b
+-8005.2578 8053.208 m
+-8006.166 8053.5713 -8006.3931 8053.4775 -8006.6621 8053.8008 c
+-8006.9341 8054.126 -8007.2554 8054.8281 -8007.6348 8053.6943 c
+-8008.0117 8052.5596 -8007.5278 8051.3721 -8007.1475 8051.5342 c
+-8006.771 8051.6953 -8006.3931 8052.3428 -8005.9614 8052.5596 c
+-8005.5293 8052.7764 -8004.7188 8052.9912 -8005.2578 8053.208 c
+b
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 41)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.0996 8071.5967 m
+-7935.0996 8071.5967 L
+-7935.0996 7966.5967 L
+-8016.0996 7966.5967 L
+-8016.0996 8071.5967 L
+n
+u
+u
+u
+0 O
+0 0 0 1 k
+-7997.9053 7984.0225 m
+-7998.1738 7982.2588 -7999.2598 7980.8877 -8000.6235 7980.9932 c
+-8001.9858 7981.0986 -8002.8071 7982.6201 -8002.8428 7984.4033 c
+-8002.8481 7984.666 -8002.7739 7985.8408 -8002.73 7986.0742 C
+-8002.7378 7986.1787 -8002.7188 7986.2705 -8002.71 7986.377 c
+-8002.6138 7987.6221 -8001.457 7988.9561 -8000.041 7988.8467 c
+-7998.6245 7988.7373 -7997.5894 7987.458 -7997.7363 7986.0693 c
+-7997.7441 7986.0039 -7997.7954 7985.2227 -7997.8071 7985.1592 C
+-7997.7813 7984.8809 -7997.8594 7984.3223 -7997.9053 7984.0225 c
+f
+-8008.3643 7993.3301 m
+-8009.0942 8001.5127 -8003.6011 8000.7158 v
+-8000.4678 7999.6152 -8001.541 7996.7168 v
+-8001.7422 7995.3486 -8003.8843 7994.0947 v
+-8004.2461 7993.8467 -8004.8628 7992.6982 v
+-8005.229 7991.1943 -8006.6182 7990.8945 v
+-8008.1758 7990.8477 -8008.3643 7993.3301 v
+f
+-7982.8643 8002.0938 m
+F
+-7982.1758 7999.9375 m
+-7982.8843 7998.79 -7985.9844 7999.2246 Y
+-7986.9111 7999.2852 -7987.4795 7998.708 Y
+-7989.939 7994.6885 -7993.1382 7995.4824 -7993.5078 7995.5898 C
+-7993.5093 7995.583 L
+-7997.0991 7996.2012 -7997.3662 8001.1992 V
+-7997.5908 8001.9785 -7998.4351 8002.3662 V
+-8001.3691 8003.458 -8001.4478 8004.8047 V
+-8001.9995 8006.7119 -7999.7002 8007.3389 V
+-7997.7788 8007.8535 -7995.8882 8005.4912 V
+-7994.7109 8004.2764 -7991.6758 8003.5361 V
+-7991.6724 8003.5488 L
+-7988.459 8002.6416 -7986.7388 8003.1855 Y
+-7983.9517 8004.3643 -7982.5059 8002.998 Y
+-7980.7822 8001.3525 -7982.1758 7999.9375 Y
+f
+-7996.083 7983.4756 m
+-7996.6851 7981.7969 -7996.3818 7980.0742 -7995.1323 7979.5195 c
+-7993.8838 7978.9639 -7992.438 7979.9131 -7991.5581 7981.4639 c
+-7991.4282 7981.6924 -7990.9355 7982.7617 -7990.8628 7982.9873 C
+-7990.8062 7983.0752 -7990.7788 7983.1641 -7990.7358 7983.2637 c
+-7990.2285 7984.4053 -7990.6118 7986.127 -7991.9102 7986.7041 c
+-7993.2085 7987.2822 -7994.7275 7986.6494 -7995.2578 7985.3584 c
+-7995.2827 7985.2969 -7995.6074 7984.584 -7995.6294 7984.5225 C
+-7995.7827 7984.292 -7995.9805 7983.7627 -7996.083 7983.4756 c
+f
+-7981.8125 7986.5273 m
+-7977.2798 7993.3789 -7982.4907 7995.291 v
+-7985.771 7995.8135 -7986.2031 7992.7529 v
+-7986.6782 7991.4521 -7985.3896 7989.332 v
+-7985.1899 7988.9414 -7985.1934 7987.6367 v
+-7985.5854 7986.1416 -7984.5078 7985.2148 v
+-7983.1587 7984.4326 -7981.8125 7986.5273 v
+f
+U
+u
+-7956.8354 8035.7041 m
+-7956.4683 8033.959 -7957.0044 8032.292 -7958.3179 8031.9131 c
+-7959.6318 8031.5342 -7960.9341 8032.6719 -7961.5933 8034.3291 c
+-7961.6899 8034.5742 -7962.0322 8035.6992 -7962.0742 8035.9336 C
+-7962.1172 8036.0293 -7962.1318 8036.1211 -7962.1621 8036.2246 c
+-7962.5083 8037.4238 -7961.8931 8039.0771 -7960.5278 8039.4717 c
+-7959.1631 8039.8662 -7957.7451 8039.0332 -7957.3965 8037.6816 c
+-7957.3789 8037.6172 -7957.1548 8036.8672 -7957.1421 8036.8037 C
+-7957.021 8036.5518 -7956.8979 8036.002 -7956.8354 8035.7041 c
+f
+-7970.3701 8040.2139 m
+-7973.9238 8047.6201 -7968.4995 8048.8027 v
+-7965.1797 8048.8721 -7965.1685 8045.7813 v
+-7964.8774 8044.4277 -7966.4429 8042.5039 v
+-7966.6938 8042.1416 -7966.8691 8040.8496 v
+-7966.6851 8039.3145 -7967.8789 8038.5449 v
+-7969.3218 8037.9561 -7970.3701 8040.2139 v
+f
+-7949.5645 8057.3662 m
+F
+-7948.1631 8055.5879 m
+-7948.4243 8054.2656 -7951.4795 8053.584 Y
+-7952.3696 8053.3164 -7952.6982 8052.5752 Y
+-7953.5918 8047.9502 -7956.8662 8047.5713 -7957.249 8047.542 C
+-7957.249 8047.5361 L
+-7960.8267 8046.8555 -7962.8311 8051.4424 V
+-7963.3149 8052.0928 -7964.2412 8052.1592 V
+-7967.3721 8052.1523 -7967.9165 8053.3857 V
+-7969.1035 8054.9775 -7967.1709 8056.3721 V
+-7965.5522 8057.5273 -7962.9531 8055.9785 V
+-7961.4238 8055.2549 -7958.3218 8055.626 V
+-7958.3228 8055.6387 L
+-7954.9961 8055.918 -7953.5762 8057.0293 Y
+-7951.3789 8059.1113 -7949.5459 8058.3398 Y
+-7947.355 8057.4023 -7948.1631 8055.5879 Y
+f
+-7954.937 8035.832 m
+-7954.9131 8034.0479 -7954.0254 8032.542 -7952.6597 8032.46 c
+-7951.2939 8032.376 -7950.2739 8033.7734 -7949.9951 8035.5352 c
+-7949.9541 8035.7939 -7949.8662 8036.9678 -7949.8774 8037.2061 C
+-7949.8555 8037.3076 -7949.8613 8037.4004 -7949.8555 8037.5088 c
+-7949.7803 8038.7559 -7950.7441 8040.2334 -7952.1621 8040.3184 c
+-7953.5811 8040.4033 -7954.7822 8039.2793 -7954.8242 8037.8838 c
+-7954.8267 8037.8184 -7954.8818 8037.0361 -7954.8794 8036.9717 C
+-7954.9429 8036.7012 -7954.9419 8036.1367 -7954.937 8035.832 c
+f
+-7943.1182 8043.1592 m
+-7941.2773 8051.1641 -7946.8267 8051.127 v
+-7950.083 8050.4648 -7949.415 8047.4473 v
+-7949.4028 8046.0635 -7947.4531 8044.5293 v
+-7947.1274 8044.2344 -7946.6738 8043.0117 v
+-7946.5171 8041.4727 -7945.1831 8040.9844 v
+-7943.645 8040.7246 -7943.1182 8043.1592 v
+f
+U
+U
+1 Ap
+-8016.0996 8071.5967 m
+-8016.0996 7966.5967 L
+-7935.0996 7966.5967 L
+-7935.0996 8071.5967 L
+-8016.0996 8071.5967 L
+n
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 42)
+0 A
+u
+0 Ap
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-7989.5605 8044.6816 m
+-8017.0996 8044.6816 L
+-8017.0996 8072.2207 L
+-7989.5605 8072.2207 L
+-7989.5605 8044.6816 L
+n
+0 O
+0 0.55 1 0.12 k
+-8003.8594 8062.959 m
+-8003.8594 8072.5967 L
+-8002.7339 8072.5967 L
+-8002.7339 8062.959 L
+-8003.8594 8062.959 L
+f
+0 0.55 1 0.3 k
+-8007.5229 8058.4727 m
+-8006.4092 8056.752 -8002.9805 8055.0537 -7998.5962 8055.0537 c
+-7994.2148 8055.0537 -7990.7134 8056.7031 -7989.6714 8058.4707 C
+-7989.6714 8058.4707 L
+-7990.7134 8060.1973 -7994.2148 8061.8945 -7998.5962 8061.8945 c
+-8002.9751 8061.8945 -8006.4238 8060.1582 -8007.5229 8058.4727 C
+f
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 45)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8017.0996 8029.5146 m
+-8017.0996 8072.5967 L
+-7930.3213 8072.5967 L
+-7930.3213 8029.5146 L
+-8017.0996 8029.5146 L
+n
+u
+u
+0 O
+0 0 0 1 k
+-7957.3213 8058.832 m
+-7957.3213 8066.6709 L
+-7945.3213 8059.7412 L
+-7933.3213 8052.8135 L
+-7945.3213 8045.8857 L
+-7957.3213 8038.958 L
+-7957.3213 8047.0791 L
+-8016.0347 8033.3135 L
+-8003.0874 8052.3984 L
+-8017.0996 8072.5967 L
+-7957.3213 8058.832 L
+f
+0 1 1 0.1 k
+0 R
+0 0 0 1 K
+-7955.3213 8055.832 m
+-7955.3213 8063.6709 L
+-7943.3213 8056.7412 L
+-7931.3213 8049.8135 L
+-7943.3213 8042.8857 L
+-7955.3213 8035.958 L
+-7955.3213 8044.0791 L
+-8014.0347 8030.3135 L
+-7999.375 8049.9561 L
+-8014.0347 8069.5967 L
+-7955.3213 8055.832 L
+b
+U
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 5)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-7858.499 8072.5967 m
+-7858.499 8059.0166 L
+-8017.0996 8059.0166 L
+-8017.0996 8072.5967 L
+-7858.499 8072.5967 L
+n
+u
+u
+0 O
+0.285 0.228 0.171 0 k
+-7873.1782 8071.0811 m
+-7873.1431 8072.2861 L
+-7859.6099 8073.1143 -7858.9414 8071.8789 v
+-7858.8438 8071.6982 -7858.7471 8071.3115 -7858.6611 8070.79 C
+-7860.6841 8071.4209 -7870.3911 8071.168 -7873.1782 8071.0811 C
+f
+0.44 0.352 0.264 0 k
+-7873.5059 8059.6201 m
+-7873.4707 8060.8633 L
+-7870.5908 8060.6455 -7860.291 8059.9131 -7858.6431 8060.4619 C
+-7858.8027 8059.8154 -7859.0195 8059.3613 -7859.3042 8059.2119 c
+-7860.9302 8058.3623 -7873.5059 8059.6201 Y
+f
+0.145 0.116 0.087 0 k
+-7873.4707 8060.8633 m
+-7873.1782 8071.0811 L
+-7870.3911 8071.168 -7860.6841 8071.4209 -7858.6611 8070.79 C
+-7858.2515 8068.374 -7858.0254 8062.9561 -7858.6431 8060.4619 C
+-7860.291 8059.9131 -7870.5908 8060.6455 -7873.4707 8060.8633 C
+f
+U
+u
+0.155 0.124 0.093 0 k
+-7899.0371 8064.8701 m
+-7897.9971 8065.2529 L
+-7879.1724 8060.7432 L
+-7879.5811 8059.9111 L
+-7898.4629 8062.3213 L
+-7899.3521 8062.6025 L
+-7899.75 8062.4902 -7900.293 8062.4209 V
+-7899.709 8062.834 -7899.2422 8063.7373 -7899.0371 8064.8701 C
+f
+u
+0.085 0.068 0.051 0 k
+-7903.8989 8069.2627 m
+-7904.6973 8069.3184 -7901.8491 8069.2607 Y
+-7902.4478 8068.6143 -7902.8711 8067.416 -7902.9102 8066.0342 c
+-7902.9165 8065.8213 -7902.9102 8065.6143 -7902.8989 8065.4102 C
+-7903.1411 8065.3037 -7903.1914 8065.3701 -7903.7285 8065.1611 C
+-7903.0996 8069.208 -7903.8989 8069.2627 v
+f
+0.305 0.244 0.183 0 k
+-7902.4438 8062.4639 m
+-7902.6523 8062.4072 -7902.5933 8064.5273 Y
+-7901.5781 8065.3545 L
+-7899.9355 8064.54 L
+-7899.0371 8064.8701 L
+-7899.2422 8063.7373 -7899.709 8062.834 -7900.293 8062.4209 C
+-7900.709 8062.3672 -7901.9741 8062.3965 -7902.4438 8062.4639 C
+f
+U
+0.115 0.092 0.069 0 k
+-7899.0371 8064.8701 m
+-7899.9355 8064.54 L
+-7901.5781 8065.3545 L
+-7902.5933 8064.5273 L
+-7902.8931 8065.3047 -7902.8989 8065.4102 V
+-7901.6133 8065.9756 -7900.2827 8066.3369 -7898.9395 8066.5225 C
+-7898.8896 8066.3232 -7898.8838 8066.1396 -7898.8896 8065.9336 c
+-7898.8994 8065.5684 -7898.9214 8065.2148 -7899.0371 8064.8701 C
+f
+0.41 0.328 0.246 0 k
+-7879.5508 8060.9932 m
+-7881.4771 8062.2393 -7890.4858 8067.6953 -7898.9395 8066.5225 C
+-7899.0034 8067.6895 -7899.3481 8068.6875 -7899.8496 8069.2598 C
+-7899.2891 8069.2588 L
+-7878.8398 8072.3525 L
+-7879.1362 8062.0225 L
+-7879.1724 8060.7432 L
+-7879.3042 8060.834 -7879.5508 8060.9932 v
+f
+0.395 0.316 0.237 0 k
+-7902.9102 8066.0342 m
+-7902.8711 8067.416 -7902.4478 8068.6143 -7901.8491 8069.2607 C
+-7899.7803 8069.2598 L
+-7899.2778 8068.6875 -7898.9214 8067.668 -7898.9395 8066.5225 C
+-7900.2827 8066.3369 -7901.6133 8065.9756 -7902.8989 8065.4102 C
+-7902.9102 8065.6143 -7902.9165 8065.8213 -7902.9102 8066.0342 c
+f
+U
+u
+0 0 0 0.11 k
+-7873.3638 8059.7979 m
+-7872.3403 8059.6318 L
+-7873.3638 8059.7979 L
+-7873.3638 8059.7979 L
+f
+0 0 0 0.34 k
+-7879.5811 8059.9111 m
+-7879.1724 8060.7432 L
+-7877.771 8060.5146 L
+-7876.623 8060.3281 L
+-7874.7754 8060.0273 L
+-7873.3638 8059.7979 L
+-7872.3403 8059.6318 L
+-7872.395 8059.3135 -7872.4668 8059.0947 -7872.5645 8059.0166 C
+-7879.5811 8059.9111 L
+f
+0 0 0 0.32 k
+-7877.9038 8064.8037 m
+-7878.1411 8072.458 L
+-7872.814 8072.5967 L
+-7871.8262 8069.1113 -7872.2813 8064.751 V
+-7877.9038 8064.8037 L
+f
+U
+0.025 0.02 0.015 0 k
+-7871.4219 8061.9814 m
+-7868.4731 8062.5166 -7865.3398 8062.7568 -7862.4155 8061.958 c
+-7862.3853 8061.9463 -7862.375 8061.915 -7862.3867 8061.8936 c
+-7862.3877 8061.8623 -7862.4194 8061.8525 -7862.4414 8061.8525 c
+-7865.3418 8062.6611 -7868.4751 8062.4209 -7871.4038 8061.875 c
+-7871.4258 8061.876 -7871.457 8061.8877 -7871.4668 8061.9189 c
+-7871.4658 8061.9404 -7871.4551 8061.9717 -7871.4219 8061.9814 c
+-7871.4219 8061.9814 l
+f
+-7869.937 8060.9033 m
+-7869.8291 8060.9756 -7869.731 8061.0908 -7869.623 8061.0986 c
+-7865.8882 8061.4287 -7862.2627 8061.3779 -7858.5742 8061.2607 c
+-7858.5522 8061.2607 -7858.5205 8061.2393 -7858.521 8061.2168 c
+-7858.521 8061.1846 -7858.5547 8061.1641 -7858.5762 8061.1641 c
+-7861.4219 8061.2783 -7864.2397 8061.2959 -7867.1035 8061.1318 c
+-7868.0332 8061.0732 -7869.0078 8061.3369 -7869.8774 8060.8174 c
+-7869.8989 8060.8076 -7869.9302 8060.8076 -7869.9502 8060.8301 c
+-7869.9614 8060.8525 -7869.959 8060.8838 -7869.937 8060.9033 c
+-7869.937 8060.9033 l
+f
+-7865.4731 8062.9639 m
+-7863.6094 8064.2764 -7861.4019 8064.9707 -7859.1997 8065.4824 c
+-7859.1675 8065.4932 -7859.147 8065.4814 -7859.1362 8065.4502 c
+-7859.127 8065.416 -7859.1484 8065.3975 -7859.1699 8065.3867 c
+-7861.3613 8064.8623 -7863.5591 8064.1992 -7865.4102 8062.876 c
+-7865.4429 8062.8564 -7865.4751 8062.8672 -7865.4844 8062.8896 c
+-7865.5054 8062.9111 -7865.4941 8062.9424 -7865.4731 8062.9639 c
+-7865.4731 8062.9639 l
+f
+-7871.0317 8069.6533 m
+-7868.8291 8070.167 -7866.6294 8070.627 -7864.3794 8070.8721 c
+-7864.3594 8070.8809 -7864.3291 8070.8604 -7864.3291 8070.8389 c
+-7864.3179 8070.8057 -7864.3403 8070.7744 -7864.3726 8070.7744 c
+-7866.6118 8070.4775 -7868.8301 8070.1143 -7871.0122 8069.5469 c
+-7871.0347 8069.5479 -7871.0669 8069.5596 -7871.0762 8069.5908 c
+-7871.0747 8069.6123 -7871.0645 8069.6445 -7871.0317 8069.6533 c
+-7871.0317 8069.6533 l
+f
+-7870.5391 8068.9561 m
+-7868.4453 8069.7939 -7866.2012 8069.5264 -7864.002 8069.5596 c
+-7863.9702 8069.5576 -7863.9492 8069.5361 -7863.9502 8069.5049 c
+-7863.9517 8069.4717 -7863.9731 8069.4521 -7863.9941 8069.4521 c
+-7866.1924 8069.4404 -7868.437 8069.6953 -7870.5205 8068.8496 c
+-7870.543 8068.8496 -7870.5742 8068.8623 -7870.583 8068.8936 c
+-7870.583 8068.915 -7870.5718 8068.9473 -7870.5391 8068.9561 c
+-7870.5391 8068.9561 l
+f
+-7869.8071 8070.3008 m
+-7868.4829 8070.3486 -7867.25 8070.1436 -7865.9268 8069.8057 c
+-7865.459 8069.6953 -7865.0195 8069.8232 -7864.5605 8069.8096 c
+-7863.9971 8069.7939 l
+-7863.9741 8069.792 -7863.9629 8069.7822 -7863.9531 8069.7705 c
+-7863.9341 8069.748 -7863.9438 8069.7168 -7863.9658 8069.6953 c
+-7864.1621 8069.542 l
+-7864.1738 8069.542 -7864.1851 8069.5313 -7864.1958 8069.5313 c
+-7864.5996 8069.5439 l
+-7866.0547 8069.7881 -7867.5571 8070.2686 -7868.9922 8069.6709 c
+-7869.0254 8069.6611 -7869.0571 8069.6816 -7869.0669 8069.7041 c
+-7869.0669 8069.7354 -7869.0547 8069.7568 -7869.0332 8069.7676 c
+-7867.7471 8070.2959 -7866.271 8070.0713 -7864.9814 8069.6504 c
+-7864.1914 8069.6396 L
+-7864.2241 8069.6299 L
+-7864.0278 8069.7832 L
+-7863.998 8069.6865 L
+-7864.5635 8069.7031 l
+-7865.0317 8069.7373 -7865.4844 8069.5801 -7865.9395 8069.6992 c
+-7867.2539 8070.0576 -7868.4971 8070.2217 -7869.8096 8070.1953 c
+-7869.8418 8070.1963 -7869.8638 8070.2168 -7869.8613 8070.25 c
+-7869.8613 8070.2822 -7869.8398 8070.3027 -7869.8071 8070.3008 c
+-7869.8071 8070.3008 l
+f
+-7870.6714 8070.6572 m
+-7867.9707 8071.8174 -7865.002 8071.167 -7862.2275 8070.7783 c
+-7861.8828 8070.8857 l
+-7861.8613 8070.8955 -7861.8413 8070.8838 -7861.8203 8070.8623 c
+-7861.8096 8070.8408 -7861.8213 8070.8096 -7861.8418 8070.7988 c
+-7862.1797 8070.6064 l
+-7864.875 8069.9893 -7867.6387 8070.3779 -7870.3711 8070.3818 c
+-7870.4019 8070.3838 -7870.4229 8070.4053 -7870.4219 8070.4365 c
+-7870.4194 8070.4688 -7870.3979 8070.4893 -7870.3677 8070.4893 c
+-7867.7734 8070.5313 -7865.1299 8070.04 -7862.5723 8070.6709 c
+-7861.895 8070.8857 L
+-7861.853 8070.7881 L
+-7862.2402 8070.6816 l
+-7865.0054 8071.0391 -7867.9414 8071.7305 -7870.6309 8070.5713 c
+-7870.6533 8070.5615 -7870.6851 8070.5615 -7870.6958 8070.5947 c
+-7870.7051 8070.6152 -7870.7051 8070.6475 -7870.6714 8070.6572 c
+-7870.6714 8070.6572 l
+f
+-7867.7891 8063.9912 m
+-7866.4941 8064.4971 -7865.083 8064.2432 -7863.7798 8063.9404 c
+-7863.7471 8063.9385 -7863.7363 8063.916 -7863.7378 8063.8857 c
+-7863.75 8063.8535 -7863.771 8063.8428 -7863.8027 8063.8447 c
+-7865.0981 8064.127 -7866.4771 8064.4121 -7867.75 8063.8936 c
+-7867.7822 8063.8838 -7867.814 8063.8955 -7867.8242 8063.9277 c
+-7867.8218 8063.9492 -7867.811 8063.9814 -7867.7891 8063.9912 c
+-7867.7891 8063.9912 l
+f
+-7868.2397 8065.8174 m
+-7866.3262 8066.2861 -7864.4141 8066.6992 -7862.4551 8066.9209 c
+-7862.4238 8066.9307 -7862.4019 8066.9092 -7862.3931 8066.876 c
+-7862.395 8066.8564 -7862.4155 8066.8252 -7862.437 8066.8252 c
+-7864.3955 8066.6045 -7866.3091 8066.1787 -7868.2202 8065.71 c
+-7868.2422 8065.7119 -7868.2734 8065.7227 -7868.2827 8065.7549 c
+-7868.2827 8065.7764 -7868.2715 8065.8076 -7868.2397 8065.8174 c
+-7868.2397 8065.8174 l
+f
+-7869.0332 8068.2314 m
+-7866.5991 8069.0576 -7863.9644 8068.6504 -7861.4453 8068.6846 c
+-7861.4131 8068.6846 -7861.3931 8068.6631 -7861.3931 8068.6299 c
+-7861.395 8068.6084 -7861.4155 8068.5889 -7861.4478 8068.5889 c
+-7863.957 8068.5127 -7866.5811 8068.9814 -7868.9941 8068.123 c
+-7869.0278 8068.124 -7869.0591 8068.1357 -7869.0684 8068.1572 c
+-7869.0674 8068.1885 -7869.0557 8068.2207 -7869.0332 8068.2314 c
+-7869.0332 8068.2314 l
+f
+-7864.1538 8069.4463 m
+-7862.7578 8070.1416 -7861.1499 8070 -7859.6338 8070.0635 c
+-7859.6021 8070.0615 -7859.582 8070.04 -7859.582 8070.0088 c
+-7859.583 8069.9873 -7859.605 8069.9561 -7859.6362 8069.9561 c
+-7861.1133 8069.8174 -7862.7485 8070.1201 -7864.1035 8069.3584 c
+-7864.1362 8069.3496 -7864.1675 8069.3604 -7864.1782 8069.3828 c
+-7864.1875 8069.4043 -7864.1763 8069.4365 -7864.1538 8069.4463 c
+-7864.1538 8069.4463 l
+f
+-7863.4414 8066.0215 m
+-7862.4922 8065.9941 -7861.5332 8065.9668 -7860.5835 8065.9385 c
+-7860.5522 8065.9385 -7860.5308 8065.916 -7860.5332 8065.8848 c
+-7860.5332 8065.8525 -7860.5547 8065.832 -7860.5874 8065.832 c
+-7861.5371 8065.8604 -7862.4971 8065.8877 -7863.4453 8065.915 c
+-7863.4771 8065.915 -7863.4971 8065.9385 -7863.4971 8065.9697 c
+-7863.4971 8066 -7863.4741 8066.0225 -7863.4414 8066.0215 c
+-7863.4414 8066.0215 l
+f
+-7861.2588 8063.6328 m
+-7860.7891 8063.6611 -7860.3091 8063.6689 -7859.8379 8063.6885 c
+-7859.8164 8063.6875 -7859.7852 8063.665 -7859.7861 8063.6328 c
+-7859.7871 8063.6006 -7859.8096 8063.5801 -7859.8413 8063.5801 c
+-7860.311 8063.584 -7860.7813 8063.5342 -7861.251 8063.5361 c
+-7861.2827 8063.5264 -7861.3027 8063.5479 -7861.313 8063.5801 c
+-7861.3125 8063.6123 -7861.291 8063.6328 -7861.2588 8063.6328 c
+-7861.2588 8063.6328 l
+f
+-7869.0698 8065.8311 m
+-7868.6685 8066.1064 -7868.2251 8066.2764 -7867.7451 8066.3477 c
+-7867.7109 8066.3574 -7867.6914 8066.335 -7867.6802 8066.3135 c
+-7867.6699 8066.2822 -7867.6924 8066.251 -7867.7148 8066.251 c
+-7868.1851 8066.1689 -7868.6172 8065.999 -7869.0205 8065.7441 c
+-7869.0518 8065.7344 -7869.0845 8065.7344 -7869.0942 8065.7676 c
+-7869.1035 8065.79 -7869.0918 8065.8213 -7869.0698 8065.8311 c
+-7869.0698 8065.8311 l
+f
+-7870.29 8071.6816 m
+-7867.834 8072.124 -7865.3979 8072.5977 -7862.8989 8072.3232 c
+-7862.8774 8072.3232 -7862.8564 8072.3008 -7862.8574 8072.2686 c
+-7862.8574 8072.2373 -7862.8794 8072.2158 -7862.9019 8072.2158 c
+-7865.3911 8072.4697 -7867.834 8072.0811 -7870.2715 8071.5742 c
+-7870.293 8071.5752 -7870.3252 8071.5869 -7870.334 8071.6182 c
+-7870.334 8071.6396 -7870.3218 8071.6719 -7870.29 8071.6816 c
+-7870.29 8071.6816 l
+f
+0.195 0.156 0.117 0 k
+-7870.2661 8060.2412 m
+-7867.8965 8059.8633 -7865.5054 8059.9443 -7863.1294 8060.1865 c
+-7863.0981 8060.1846 -7863.0762 8060.1631 -7863.0762 8060.1318 c
+-7863.0781 8060.1104 -7863.0996 8060.0791 -7863.1211 8060.0791 c
+-7865.5078 8059.8389 -7867.8911 8059.7568 -7870.269 8060.1357 c
+-7870.3022 8060.1357 -7870.3218 8060.1572 -7870.3213 8060.1904 c
+-7870.3203 8060.2217 -7870.2988 8060.2432 -7870.2661 8060.2412 c
+-7870.2661 8060.2412 l
+f
+0.335 0.268 0.201 0 k
+-7869.5347 8059.708 m
+-7867.0278 8059.7119 -7864.5142 8059.874 -7862.0181 8059.4932 c
+-7861.9858 8059.4912 -7861.9644 8059.4697 -7861.9658 8059.4385 c
+-7861.9668 8059.4053 -7861.9893 8059.3857 -7862.0205 8059.3857 c
+-7864.5181 8059.7656 -7867.0293 8059.626 -7869.5371 8059.6025 c
+-7869.5596 8059.6025 -7869.5811 8059.624 -7869.5781 8059.6553 c
+-7869.5781 8059.6885 -7869.5571 8059.708 -7869.5347 8059.708 c
+-7869.5347 8059.708 l
+f
+0.205 0.164 0.123 0 k
+-7871.0762 8059.9229 m
+-7869.6035 8060.2646 -7868.1074 8059.999 -7866.6387 8059.8174 c
+-7866.6074 8059.8174 -7866.5869 8059.7939 -7866.5991 8059.7627 c
+-7866.5996 8059.7305 -7866.6211 8059.71 -7866.6533 8059.7217 c
+-7868.1099 8059.8809 -7869.5957 8060.1797 -7871.0469 8059.8154 c
+-7871.0781 8059.8174 -7871.1099 8059.8281 -7871.1094 8059.8604 c
+-7871.1191 8059.8809 -7871.0981 8059.9131 -7871.0762 8059.9229 c
+-7871.0762 8059.9229 l
+f
+-7864.4531 8059.3916 m
+-7863.2974 8059.5176 -7862.127 8059.4111 -7860.9922 8059.1865 c
+-7860.9707 8059.1748 -7860.9502 8059.1533 -7860.9614 8059.1211 c
+-7860.9619 8059.0996 -7860.9941 8059.0791 -7861.0161 8059.0908 c
+-7862.1499 8059.3369 -7863.291 8059.3896 -7864.4458 8059.2852 c
+-7864.479 8059.2861 -7864.498 8059.3076 -7864.5083 8059.3291 c
+-7864.5078 8059.3613 -7864.4858 8059.3818 -7864.4531 8059.3916 c
+-7864.4531 8059.3916 l
+f
+0.335 0.268 0.201 0 k
+-7871.3677 8062.0439 m
+-7870.021 8062.7852 -7868.4063 8062.1943 -7866.9551 8062.2383 c
+-7866.9219 8062.2373 -7866.9019 8062.2158 -7866.9019 8062.1816 c
+-7866.9038 8062.1621 -7866.9258 8062.1416 -7866.957 8062.1416 c
+-7868.3882 8062.0869 -7869.9819 8062.6768 -7871.3164 8061.9473 c
+-7871.3379 8061.9365 -7871.3691 8061.9482 -7871.3911 8061.9707 c
+-7871.4004 8061.9912 -7871.3882 8062.0244 -7871.3677 8062.0439 c
+-7871.3677 8062.0439 l
+f
+-7869.9941 8064.1611 m
+-7867.7715 8064.6416 -7865.4893 8064.2129 -7863.25 8064.1592 c
+-7863.2173 8064.1582 -7863.1973 8064.1357 -7863.1973 8064.1045 c
+-7863.1997 8064.083 -7863.2314 8064.0635 -7863.2515 8064.0635 c
+-7865.4829 8064.0742 -7867.7515 8064.5771 -7869.9751 8064.0537 c
+-7869.9971 8064.0537 -7870.0283 8064.0654 -7870.0371 8064.0986 c
+-7870.0371 8064.1191 -7870.0254 8064.1504 -7869.9941 8064.1611 c
+-7869.9941 8064.1611 l
+f
+-7864.127 8060.7373 m
+-7862.4492 8061.5654 -7860.5991 8062.0986 -7858.7031 8061.958 c
+-7858.6714 8061.958 -7858.6509 8061.9355 -7858.6523 8061.9033 c
+-7858.6523 8061.8721 -7858.6738 8061.8496 -7858.707 8061.8525 c
+-7860.5811 8062.0127 -7862.4194 8061.457 -7864.0869 8060.6504 c
+-7864.1074 8060.6416 -7864.1411 8060.6416 -7864.1499 8060.6748 c
+-7864.1611 8060.6953 -7864.1611 8060.7275 -7864.127 8060.7373 c
+-7864.127 8060.7373 l
+f
+u
+0.5 0.85 1 0.45 k
+-8017.0996 8067.5049 m
+-8017.125 8068.084 -8016.666 8068.7832 -8015.2671 8069.5869 C
+-8014.9517 8069.5996 -8013.4941 8069.6201 -8011.1885 8069.6455 C
+-8011.1885 8067.4189 L
+-8013.2378 8067.4424 -8015.2173 8067.4824 -8017.0996 8067.5049 C
+f
+-8016.6084 8066.5654 m
+-8011.1885 8066.4414 L
+-8011.1885 8065.4111 L
+-8014.7441 8065.5557 L
+-8015.9141 8065.9268 -8016.6084 8066.5654 V
+f
+0.5 0.85 1 0.32 k
+-8011.1885 8066.4219 m
+-8016.5742 8066.54 L
+-8016.8691 8066.8105 -8017.0845 8067.1533 -8017.0996 8067.5244 C
+-8015.2173 8067.5029 -8013.2378 8067.4814 -8011.1885 8067.458 C
+-8011.1885 8066.4219 L
+f
+0.5 0.85 1 0.45 k
+-7906.25 8066.2139 m
+-7984.458 8067.1377 -8011.2075 8067.4385 V
+-8011.2075 8069.6455 L
+-7994.9141 8069.8281 -7936.0898 8070.3037 Y
+-7901.8491 8069.2607 L
+-7902.5571 8066.1641 L
+-7906.25 8066.2139 L
+f
+0.5 0.85 1 0.12 k
+-8011.2075 8065.4111 m
+-8011.2075 8066.4414 L
+-7902.5254 8064.5967 L
+-7902.4829 8062.46 L
+-7935.7549 8062.3096 L
+-8011.2075 8065.4111 L
+f
+u
+0.065 0.052 0.039 0 k
+-7879.1724 8060.7432 m
+-7879.1362 8062.0225 L
+-7879.395 8060.7129 L
+-7897.9971 8065.2529 L
+-7899.0371 8064.8701 L
+-7898.979 8065.2021 -7898.9395 8065.5537 -7898.9302 8065.9189 c
+-7898.9238 8066.124 -7898.9277 8066.3252 -7898.9395 8066.5225 C
+-7890.4858 8067.6953 -7881.063 8063.2686 -7879.1362 8062.0225 C
+-7878.8398 8072.3525 L
+-7878.1411 8072.458 L
+-7877.9038 8064.8037 L
+-7872.2813 8064.751 L
+-7872.1895 8062.6104 -7872.1714 8060.6182 -7872.3403 8059.6318 C
+-7879.1724 8060.7432 L
+f
+0.4 0.7 1 0 k
+-7902.5571 8066.1846 m
+-7902.5254 8064.5771 L
+-8011.2075 8066.4219 L
+-8011.2075 8067.458 L
+-7984.458 8067.1572 -7902.5571 8066.1846 Y
+f
+U
+U
+0.025 0.02 0.015 0 k
+-7866.834 8068.626 m
+-7866.834 8068.6592 -7866.8125 8068.6787 -7866.7798 8068.6787 c
+-7863.771 8068.71 -7861.521 8068.542 -7858.5151 8068.4561 C
+-7858.5083 8068.3623 L
+-7861.4258 8068.4668 -7863.8604 8068.6045 -7866.7837 8068.5713 C
+-7866.8164 8068.5732 -7866.8354 8068.5947 -7866.834 8068.626 C
+f
+-7858.499 8068.3623 m
+-7858.5078 8068.3408 L
+-7858.5083 8068.3623 L
+-7858.5059 8068.3623 -7858.5029 8068.3623 -7858.499 8068.3623 C
+f
+-7862.5483 8067.0205 m
+-7863.5454 8066.8887 -7864.439 8067.3623 -7865.311 8067.7939 C
+-7865.3438 8067.8047 -7865.353 8067.8369 -7865.3418 8067.8672 C
+-7865.3301 8067.8896 -7865.2979 8067.8984 -7865.2773 8067.8877 c
+-7864.4258 8067.4268 -7863.5308 8067.0166 -7862.5674 8067.1152 c
+-7861.2075 8067.2588 -7860.0034 8067.9717 -7858.625 8068.0488 C
+-7858.5459 8067.9561 L
+-7860.1396 8067.8623 -7860.9644 8067.2197 -7862.5483 8067.0205 c
+f
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 50)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.0996 8071.5967 m
+-7888.9771 8071.5967 L
+-7888.9771 8024.0117 L
+-8016.0996 8024.0117 L
+-8016.0996 8071.5967 L
+n
+u
+*u
+0 O
+0.9529 0.949 0.1961 0.0745 k
+-7989.8931 8056.0137 m
+-7989.9229 8055.8633 L
+-7992.0845 8049.9609 -7993.0435 8047.2344 -7993.375 8045.8857 c
+-7993.4653 8045.8857 L
+-7993.7949 8047.2041 -7994.875 8049.9316 -7997.0669 8055.8633 c
+-7997.0962 8056.0137 L
+-7989.8931 8056.0137 l
+f
+1 D
+-8000.2178 8064.5645 m
+-8001.7188 8068.1328 -8002.499 8070.3057 -8000.2178 8070.5137 c
+-8000.2178 8071.5645 L
+-8002.7988 8071.5342 -8005.6802 8071.5137 -8008.4414 8071.5137 c
+-8012.1646 8071.5137 -8014.627 8071.5342 -8016.0996 8071.5645 c
+-8016.0996 8070.5137 L
+-8014.2061 8070.3057 -8013.1538 8068.1641 -8005.6509 8051.0996 c
+-7993.7949 8024.0117 L
+-7991.9634 8024.0117 L
+-7980.2578 8051.0996 L
+-7972.9043 8068.1045 -7971.8242 8070.3057 -7969.9883 8070.5137 c
+-7969.9883 8071.5645 L
+-7971.6138 8071.5342 -7974.0161 8071.5137 -7977.6763 8071.5137 c
+-7980.6484 8071.5137 -7983.769 8071.5342 -7986.8022 8071.5645 c
+-7986.8022 8070.5137 L
+-7984.5811 8070.3057 -7985.4214 8068.1045 -7986.8613 8064.5645 C
+-8000.2178 8064.5645 l
+f
+*U
+*u
+0 D
+-7945.1758 8039.6777 m
+-7945.1758 8036.0684 -7947.4531 8033.6904 -7951.229 8033.6904 c
+-7952.3379 8033.6904 -7953.1763 8033.8125 -7953.627 8033.8408 c
+-7953.627 8046.1445 L
+-7952.9668 8046.2041 -7952.3081 8046.2041 -7951.8291 8046.2041 c
+-7950.2998 8046.2041 -7948.8022 8045.7236 -7947.7837 8045.002 c
+-7946.4941 8044.1289 -7945.1758 8042.3848 -7945.1758 8039.7383 C
+-7945.1758 8039.6777 l
+f
+1 D
+-7964.1802 8043.9893 m
+-7964.1802 8028.2412 -7964.1802 8026.0254 -7966.6421 8025.875 c
+-7966.6421 8024.915 L
+-7965.1421 8024.8555 -7962.417 8024.7959 -7959.666 8024.7656 c
+-7957.7534 8024.7051 -7954.4941 8024.6152 -7952.2476 8024.5742 c
+-7948.6821 8024.5742 -7945.6851 8025.0225 -7943.1045 8025.8584 c
+-7938.4531 8027.4443 -7934.0698 8031.4492 -7934.0698 8039.2568 c
+-7934.0698 8044.3398 -7936.501 8047.916 -7938.603 8049.6572 c
+-7939.6831 8050.6182 -7940.9131 8051.4287 -7941.874 8051.9092 c
+-7941.874 8052.0596 L
+-7939.623 8055.0879 -7937.7021 8057.6592 -7931.4902 8066.2393 c
+-7929.5996 8068.6611 -7928.0098 8070.335 -7926.8398 8070.5742 c
+-7926.8398 8071.5967 L
+-7928.7598 8071.5967 -7931.0996 8071.4814 -7933.229 8071.4814 c
+-7935.4507 8071.4814 -7936.9517 8071.5967 -7938.542 8071.5967 c
+-7939.7725 8071.5967 -7940.8237 8071.5371 -7941.6035 8070.8691 c
+-7945.1147 8065.4443 -7949.0117 8059.3525 -7952.2178 8054.3105 c
+-7952.6074 8054.3105 -7953.0571 8054.3105 -7953.627 8054.3105 c
+-7953.627 8056.8809 L
+-7953.627 8068.123 -7953.5371 8070.3652 -7951.2891 8070.5742 c
+-7951.2891 8071.5664 L
+-7952.7275 8071.5371 -7956.019 8071.5117 -7958.7988 8071.5117 c
+-7962.0283 8071.5117 -7964.9917 8071.5371 -7966.6118 8071.5664 c
+-7966.6118 8070.5742 L
+-7964.1514 8070.3652 -7964.1802 8068.123 -7964.1802 8051.1885 C
+-7964.1802 8043.9893 l
+f
+*U
+*u
+0 D
+-7913.5557 8051.1895 m
+-7913.5557 8068.0908 -7913.5557 8070.2441 -7916.3828 8070.5742 C
+-7916.3828 8071.5664 l
+-7914.4883 8071.5371 -7911.1538 8071.5117 -7907.8818 8071.5117 c
+-7904.729 8071.5117 -7901.6685 8071.5371 -7899.3877 8071.5664 C
+-7899.3877 8070.5742 l
+-7902.3574 8070.5742 -7902.3877 8068.1211 -7902.3877 8051.1895 C
+-7902.3877 8033.748 L
+-7894.9189 8033.748 l
+-7892.0991 8033.748 -7890.6294 8034.5566 -7889.999 8036.8584 C
+-7889.0068 8036.8584 l
+-7889.0068 8032.0664 -7888.9771 8028.0117 -7888.9771 8024.7676 c
+-7893.4482 8024.7979 -7898.8481 8024.8281 -7904.1597 8024.8281 C
+-7911.8442 8024.8281 l
+-7916.6533 8024.8281 -7922.0962 8024.7979 -7927.061 8024.7676 c
+-7927.061 8027.9814 -7927.0322 8032.0664 -7927.0322 8036.8584 C
+-7926.0068 8036.8584 l
+-7925.4653 8034.7061 -7923.8711 8033.748 -7921.0435 8033.748 C
+-7913.5557 8033.748 l
+-7913.5557 8051.1895 L
+f
+*U
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 6)
+0 A
+u
+1 Ap
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.8496 8048.5967 m
+-8016.8496 8072.5967 L
+-8006.8496 8072.5967 L
+-8006.8496 8048.5967 L
+-8016.8496 8048.5967 L
+n
+0 Ap
+0 O
+1 g
+-8006.8496 8050.5967 m
+-8007.1699 8050.5967 -8007.4854 8050.6152 -8007.7979 8050.6445 c
+-8009.6875 8050.8223 -8011.4194 8051.5313 -8012.8555 8052.6143 c
+-8014.3525 8053.7432 -8015.5195 8055.2783 -8016.1938 8057.0605 c
+-8016.6118 8058.1611 -8016.8496 8059.3496 -8016.8496 8060.5967 c
+-8016.8496 8062.459 -8016.3315 8064.1963 -8015.4453 8065.6885 c
+-8013.7021 8068.624 -8010.5098 8070.5967 -8006.8496 8070.5967 C
+-8006.8496 8050.5967 L
+f
+0 R
+0 G
+1 J 1 j 0.5 w
+-8006.8496 8070.2783 m
+-8009.8789 8069.3223 -8012.707 8067.6641 -8015.4453 8065.6885 C
+S
+-8006.8496 8064.6455 m
+-8009.9995 8062.2393 -8013.0571 8059.5088 -8016.1938 8057.0605 C
+S
+-8012.8555 8052.6143 m
+-8010.79 8053.7051 -8008.8013 8055.0635 -8006.8496 8056.5537 C
+S
+-8007.7979 8050.6445 m
+-8007.4805 8050.7275 -8007.1631 8050.8105 -8006.8496 8050.9111 C
+S
+-8012.8555 8052.6143 m
+-8011.4189 8051.5313 -8009.6875 8050.8223 -8007.7979 8050.6445 C
+S
+-8016.1938 8057.0605 m
+-8016.6118 8058.1611 -8016.8496 8059.3496 -8016.8496 8060.5967 c
+-8016.8496 8062.459 -8016.3311 8064.1963 -8015.4453 8065.6885 C
+S
+-8006.8496 8050.5967 m
+-8007.1699 8050.5967 -8007.4854 8050.6152 -8007.7979 8050.6445 C
+S
+-8012.8555 8052.6143 m
+-8014.3525 8053.7432 -8015.5195 8055.2783 -8016.1938 8057.0605 C
+S
+-8015.4453 8065.6885 m
+-8013.7021 8068.624 -8010.5098 8070.5967 -8006.8496 8070.5967 C
+S
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 62)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8017.0996 8072.5967 m
+-8017.0996 8034.3271 L
+-7978.8301 8034.3271 L
+-7978.8301 8072.5967 L
+-8017.0996 8072.5967 L
+n
+0 O
+1 0.14 0.09 0 k
+-7978.8301 8055.5 m
+-7978.8301 8046.9375 L
+-8017.0996 8046.9375 L
+-8017.0996 8055.5 L
+-7978.8301 8055.5 L
+f
+-7978.8301 8058.6934 m
+-7978.8301 8058.0195 L
+-8017.0996 8058.0195 L
+-8017.0996 8058.6934 L
+-7978.8301 8058.6934 L
+f
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 63)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8017.0996 8072.5967 m
+-8017.0996 8034.3271 L
+-7978.8301 8034.3271 L
+-7978.8301 8072.5967 L
+-8017.0996 8072.5967 L
+n
+0 O
+1 0.14 0.09 0 k
+-7978.8301 8051.4229 m
+-7978.8301 8059.9863 L
+-7991.4404 8059.9863 L
+-7991.4404 8072.5967 L
+-8000.0034 8072.5967 L
+-8000.0059 8051.4229 L
+-8000.0034 8051.4229 L
+-8000.0034 8051.4219 L
+-7978.8301 8051.4229 L
+f
+-7978.8301 8048.9033 m
+-8002.5229 8048.9033 L
+-8002.5229 8072.5967 L
+-8003.1963 8072.5967 L
+-8003.1973 8048.2295 L
+-7978.8301 8048.2295 L
+-7978.8301 8048.9033 L
+f
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 64)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8017.0996 8072.5957 m
+-8017.0996 8034.3252 L
+-7978.8301 8034.3252 L
+-7978.8301 8072.5957 L
+-8017.0996 8072.5957 L
+n
+0 O
+1 0.14 0.09 0 k
+-7978.8301 8046.9355 m
+-8004.4893 8046.9355 L
+-8004.4893 8072.5957 L
+-7995.9258 8072.5967 L
+-7995.9258 8055.5 L
+-7978.8301 8055.5 L
+-7978.8301 8046.9355 L
+f
+-7978.8301 8058.0176 m
+-7993.4077 8058.0176 L
+-7993.4077 8072.5967 L
+-7992.7334 8072.5967 L
+-7992.7334 8058.6924 L
+-7978.8301 8058.6924 L
+-7978.8301 8058.0176 L
+f
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 65)
+0 A
+u
+1 Ap
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-7989.1621 8045.0576 m
+-8016.7021 8045.0576 L
+-8016.7021 8072.5967 L
+-7989.1621 8072.5967 L
+-7989.1621 8045.0576 L
+n
+0 O
+0 0.55 1 0.12 k
+-7988.9414 8058.2969 m
+-8017.0996 8058.2969 L
+-8017.0996 8059.4219 L
+-7988.9414 8059.4219 L
+-7988.9414 8058.2969 L
+f
+u
+0 0.55 1 0.3 k
+-8016.0811 8046.1182 m
+-8016.5098 8048.1221 -8015.2861 8051.748 -8012.187 8054.8477 c
+-8009.0874 8057.9463 -8005.4453 8059.2568 -8003.459 8058.7422 C
+-8003.459 8058.7422 L
+-8002.9751 8056.7861 -8004.2515 8053.1084 -8007.3496 8050.0107 c
+-8010.4453 8046.915 -8014.1118 8045.7031 -8016.0811 8046.1182 C
+f
+0 0.39 0.7 0.12 k
+-8016.0811 8071.5879 m
+-8016.5098 8069.584 -8015.2861 8065.958 -8012.187 8062.8584 c
+-8009.0874 8059.7607 -8005.4453 8058.4502 -8003.459 8058.9639 C
+-8003.459 8058.9639 L
+-8002.9751 8060.9209 -8004.2515 8064.5977 -8007.3496 8067.6953 c
+-8010.4453 8070.792 -8014.1118 8072.0029 -8016.0811 8071.5879 C
+f
+U
+u
+0 0.55 1 0.3 k
+-8002.2778 8071.5879 m
+-8002.707 8069.584 -8001.4834 8065.958 -7998.3838 8062.8584 c
+-7995.2852 8059.7607 -7991.6431 8058.4502 -7989.6572 8058.9639 C
+-7989.6563 8058.9639 L
+-7989.1714 8060.9209 -7990.4492 8064.5977 -7993.5469 8067.6953 c
+-7996.6431 8070.792 -8000.3091 8072.0029 -8002.2778 8071.5879 C
+f
+0 0.39 0.7 0.12 k
+-8002.2778 8046.1182 m
+-8002.707 8048.1221 -8001.4834 8051.748 -7998.3838 8054.8477 c
+-7995.2852 8057.9463 -7991.6431 8059.2568 -7989.6572 8058.7422 C
+-7989.6563 8058.7422 L
+-7989.1714 8056.7861 -7990.4492 8053.1084 -7993.5469 8050.0107 c
+-7996.6431 8046.915 -8000.3091 8045.7031 -8002.2778 8046.1182 C
+f
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 67)
+0 A
+u
+0 Ap
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-7989.5605 8044.6816 m
+-8017.0996 8044.6816 L
+-8017.0996 8072.2207 L
+-7989.5605 8072.2207 L
+-7989.5605 8044.6816 L
+n
+0 O
+0 0.55 1 0.12 k
+-8003.8594 8062.959 m
+-8003.8594 8072.5967 L
+-8002.7339 8072.5967 L
+-8002.7339 8062.959 L
+-8003.8594 8062.959 L
+f
+0 0.55 1 0.3 k
+-8007.5229 8058.4727 m
+-8006.4092 8056.752 -8002.9805 8055.0537 -7998.5962 8055.0537 c
+-7994.2148 8055.0537 -7990.7134 8056.7031 -7989.6714 8058.4707 C
+-7989.6714 8058.4707 L
+-7990.7134 8060.1973 -7994.2148 8061.8945 -7998.5962 8061.8945 c
+-8002.9751 8061.8945 -8006.4238 8060.1582 -8007.5229 8058.4727 C
+f
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 69)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-7989.5605 8045.0576 m
+-8017.0996 8045.0576 L
+-8017.0996 8072.5967 L
+-7989.5605 8072.5967 L
+-7989.5605 8045.0576 L
+n
+0 O
+0 0.55 1 0.3 k
+-8007.5229 8058.8486 m
+-8006.4092 8057.1279 -8002.9805 8055.4297 -7998.5962 8055.4297 c
+-7994.2148 8055.4297 -7990.7134 8057.0791 -7989.6714 8058.8467 C
+-7989.6714 8058.8467 L
+-7990.7134 8060.5732 -7994.2148 8062.2705 -7998.5962 8062.2705 c
+-8002.9751 8062.2705 -8006.4238 8060.5342 -8007.5229 8058.8486 C
+f
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 8)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.0518 8069.9092 m
+-7908.895 8069.9092 L
+-7908.895 8055.7822 L
+-8016.0518 8055.7822 L
+-8016.0518 8069.9092 L
+n
+u
+0 O
+0 0 0 1 k
+-8014.3828 8069.2197 m
+-8014.9531 8071.5967 -8014.918 8067.6006 V
+-8015.1475 8064.3984 L
+-8015.7163 8062.0518 L
+-8015.5498 8059.7197 L
+-8014.0498 8059.0518 -7997.3828 8057.7197 V
+-7990.7163 8056.3857 -7981.7163 8056.3857 V
+-7916.4932 8057.0732 -7911.5908 8058.4814 v
+-7952.4878 8056.4717 -7955.0684 8057.1084 v
+-7915.9565 8058.7568 -7912.9541 8060.0283 v
+-7950.8896 8058.1436 -7954.2671 8059.7744 v
+-7919.3491 8061.5068 -7915.1211 8063.1279 v
+-7921.8213 8062.4795 -7923.6123 8062.6787 v
+-7920.4893 8063.167 l
+-7925.519 8063.0986 l
+-7928.4214 8062.7256 l
+-7920.5518 8063.8389 -7920.0029 8064.4053 v
+-7916.415 8063.7275 -7930.6182 8063.9814 v
+-7964.2173 8060.0518 -8014.3828 8069.2197 V
+f
+/BBAccumRotation (5.805971) XT
+0 R
+0 0 0 0.5 K
+0.025 w
+-8016.0498 8058.7197 m
+-7995.7671 8056.8916 -7976.0723 8055.8174 v
+-7933.251 8056.0986 -7928.6733 8056.4971 v
+-7916.2627 8056.6279 -7908.8955 8057.624 v
+S
+/BBAccumRotation (5.805971) XT
+0 0 0 1 K
+-7953.9365 8056.0049 m
+-7957.3955 8055.624 -7983.3604 8055.876 Y
+-7993.7271 8055.7568 -8016.0498 8058.7197 Y
+S
+/BBAccumRotation (5.805971) XT
+-7953.0869 8059.2607 m
+-7922.4604 8060.1787 -7915.7603 8060.8281 v
+S
+/BBAccumRotation (5.805971) XT
+0 0 0 0.5 K
+-7961.7197 8063.8008 m
+-7926.4702 8065.2139 -7923.5054 8065.7373 v
+S
+/BBAccumRotation (5.805971) XT
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 83)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.0996 8071.5313 m
+-7802.5005 8071.5313 L
+-7802.5005 8063.7305 L
+-8016.0996 8063.7305 L
+-8016.0996 8071.5313 L
+n
+0 O
+0 0 0 1 k
+-8016.0996 8067.6318 m
+-8006.0854 8070.124 -7999.2871 8071.4717 -7987.3003 8071.5313 c
+-7974.3179 8071.5967 -7909.2998 8071.5313 y
+-7844.2813 8071.5967 -7831.2998 8071.5313 v
+-7819.3125 8071.4717 -7812.5151 8070.124 -7802.5005 8067.6318 C
+-7812.5151 8065.1396 -7819.3125 8063.792 -7831.2998 8063.7305 c
+-7844.2813 8063.666 -7909.2998 8063.7305 y
+-7974.3179 8063.666 -7987.3003 8063.7305 v
+-7999.2871 8063.792 -8006.0854 8065.1396 -8016.0996 8067.6318 C
+f
+U
+%AI8_EndBrushPattern
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI8_BeginPluginObject
+(Adobe Brush Manager Order)
+(Adobe Brush Manager Order)
+( Adobe Calligraphic Brush Tool/ 6 pt Flat / Adobe Calligraphic) -
+( Brush Tool/ 10 pt Oval/ Adobe Calligraphic Brush Tool/ 12 pt ) -
+(Oval / Adobe Calligraphic Brush Tool/ 20 pt Oval/ Adobe Callig) -
+(raphic Brush Tool/ 25 pt Round / Adobe Calligraphic Brush Tool) -
+(/ 50 pt Flat/ Adobe Scatter Brush Tool/ Dog Tracks/ Adobe Scat) -
+(ter Brush Tool/ Fall Leaf/ Adobe Scatter Brush Tool/ Ladybug/ ) -
+(Adobe Scatter Brush Tool/ Push Pin/ Adobe Scatter Brush Tool/ ) -
+(Strawberry/ Adobe Scatter Brush Tool/ Twinkle Star / Adobe Art) -
+(OnPath Brush Tool/ Marker/ Adobe ArtOnPath Brush Tool/ Tapered) -
+( Stroke/ Adobe ArtOnPath Brush Tool/ Arrow/ Adobe ArtOnPath Br) -
+(ush Tool/ Paintbrush/ Adobe ArtOnPath Brush Tool/ Type/ Adobe ) -
+(PatternOnPath Brush Tool/ Double Lines/ Adobe PatternOnPath Br) -
+(ush Tool/ Laurel/ Adobe PatternOnPath Brush Tool/ Rope /) .
+%AI8_EndPluginObject
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI8_BeginPluginObject
+(Adobe Calligraphic Brush Tool)
+(10 pt Oval)
+(1 1 19 15 15 130 130 2 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Calligraphic Brush Tool)
+(12 pt Oval )
+(1 7 17 45 45 0 0 2 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Calligraphic Brush Tool)
+(20 pt Oval)
+(1 20 20 20 100 40 80 0 2 1 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Calligraphic Brush Tool)
+(25 pt Round )
+(1 10 40 100 100 0 0 2 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Calligraphic Brush Tool)
+(50 pt Flat)
+(1 40 60 0 0 44 44 0 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Calligraphic Brush Tool)
+(6 pt Flat )
+(1 4 8 10 10 90 90 2 0 0 0) .
+%AI8_EndPluginObject
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI8_BeginPluginObject
+(Adobe ArtOnPath Brush Tool)
+(Arrow)
+(1 / New Pattern 45/ / / / / 5 0.898039 0 0 / 2 0 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe ArtOnPath Brush Tool)
+(Marker)
+(1 / New Pattern 8/ / / / / 0 0 / 1 1 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe ArtOnPath Brush Tool)
+(Paintbrush)
+(1 / New Pattern 5/ / / / / 1 0.5 0.85 1 0.45 / 0 0 1 0 1 0 0 ) -
+(0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe ArtOnPath Brush Tool)
+(Tapered Stroke)
+(1 / New Pattern 83/ / / / / 1 0 0 0 1 / 1 1 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe ArtOnPath Brush Tool)
+(Type)
+(1 / New Pattern 50/ / / / / 1 0.952941 0.94902 0.196078 0.0745) -
+(098 / 1 0 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI8_BeginPluginObject
+(Adobe PatternOnPath Brush Tool)
+(Double Lines)
+(1 / New Pattern 62/ New Pattern 63/ New Pattern 64/ / / 1 1 0.) -
+(14 0.09 0 / 1 0 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe PatternOnPath Brush Tool)
+(Laurel)
+(1 / New Pattern 65/ New Pattern 42/ New Pattern 67/ / New Patt) -
+(ern 69/ 1 0 0.55 1 0.3 / 1 0 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe PatternOnPath Brush Tool)
+(Rope )
+(1 / New Pattern 1/ / / New Pattern 3/ New Pattern 6/ 5 0 0 0 /) -
+( 1 0 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI8_BeginPluginObject
+(Adobe Scatter Brush Tool)
+(Dog Tracks)
+(1 /New Pattern 41/ 1 0 0 0 1 / 0 1 1 0 1 1 0 0 0 0 -90 -90 0 1) -
+( 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Scatter Brush Tool)
+(Fall Leaf)
+(1 /New Pattern 34/ 1 0.0745 0.9 0.9019 0.18 / 0 0.602793 1 1 0) -
+(.1 1 1 -1 1 1 -180 180 1 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Scatter Brush Tool)
+(Ladybug)
+(1 /New Pattern 10/ 5 0.898039 0 0 / 0 1 1 0 0.803911 1.2 1 -1.) -
+(55 1.55 1 -180 180 1 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Scatter Brush Tool)
+(Push Pin)
+(1 /New Pattern 36/ 1 0.025 0.1 0.475 0 / 0 1 1 0 0.401676 1 1 ) -
+(-1.06145 1.06 1 -180 180 1 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Scatter Brush Tool)
+(Strawberry)
+(1 /New Pattern 37/ 1 0 0 0 1 / 0 0.803911 1 1 0.803911 1 1 -0.) -
+(5 0.5 1 -75 75.419 1 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Scatter Brush Tool)
+(Twinkle Star )
+(1 /New Pattern 2/ 0 1 / 1 0.5 1 1 0.25 1 1 -0.5 0.5 1 0 0 0 0 ) -
+(0) .
+%AI8_EndPluginObject
+%AI5_End_NonPrinting--
+%AI5_BeginPalette
+0 0 Pb
+1 1 1 1 ([Registration]) 0 Xs
+([Registration])
+Pc
+0 0 0 0 k
+(C=0 M=0 Y=0 K=0)
+Pc
+0 0 0 1 k
+(C=0 M=0 Y=0 K=100)
+Pc
+0 0.1 1 0 k
+(C=0 M=10 Y=100 K=0)
+Pc
+0 0.5 0 0 k
+(C=0 M=50 Y=0 K=0)
+Pc
+0 0.5 1 0 k
+(C=0 M=50 Y=100 K=0)
+Pc
+1 0.55 1 0 k
+(C=100 M=55 Y=100 K=0)
+Pc
+1 0.9 0.1 0 k
+(C=100 M=90 Y=10 K=0)
+Pc
+0.15 1 1 0 k
+(C=15 M=100 Y=100 K=0)
+Pc
+0.45 0.9 0 0 k
+(C=45 M=90 Y=0 K=0)
+Pc
+0.5 0.4 0.3 0 k
+(C=50 M=40 Y=30 K=0)
+Pc
+0.5 0.85 1 0 k
+(C=50 M=85 Y=100 K=0)
+Pc
+0.75 0.05 1 0 k
+(C=75 M=5 Y=100 K=0)
+Pc
+0.75 0.9 0 0 k
+(C=75 M=90 Y=0 K=0)
+Pc
+0.8 0.05 0 0 k
+(C=80 M=5 Y=0 K=0)
+Pc
+Bb
+2 (Black, White) 0 0 0 1 1 0 0 1 0 0 Bg
+0 BB
+(Black, White)
+Pc
+Bb
+2 (Chrome) 0 0 0 1 1 0 0 1 0 0 Bg
+0 BB
+(Chrome)
+Pc
+Bb
+2 (Rainbow) 0 0 0 1 1 0 0 1 0 0 Bg
+0 BB
+(Rainbow)
+Pc
+Bb
+0 0 0 0 Bh
+2 (Yellow & Orange Radial) 0 0 0 1 1 0 0 1 0 0 Bg
+0 BB
+(Yellow & Orange Radial)
+Pc
+(Brick) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
+(Brick)
+Pc
+(Confetti) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
+(Confetti)
+Pc
+(Leaves - Fall ) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
+(Leaves - Fall )
+Pc
+(Stripes) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
+(Stripes)
+Pc
+PB
+%AI5_EndPalette
+%%EndSetup
+%AI5_BeginLayer
+1 1 1 1 0 0 1 0 79 128 255 0 50 Lb
+(Layer 1) Ln
+0 A
+1 Ap
+0 R
+0 0 0 1 K
+0 J 0 j 0.5 w 4 M []0 d
+0 XR
+1.65039 -30.082 m
+1.65039 -107.5005 64.2109 -170.2607 141.3828 -170.2607 c
+218.5547 -170.2607 281.1152 -107.5005 281.1152 -30.082 c
+281.1152 47.3364 218.5547 110.0967 141.3828 110.0967 c
+64.2109 110.0967 1.65039 47.3364 1.65039 -30.082 c
+s
+281.1152 -30.082 m
+281.1152 -45.4795 218.5547 -57.9609 141.3828 -57.9609 c
+64.2109 -57.9609 1.65039 -45.4795 1.65039 -30.082 c
+S
+[3 3 ]0 d
+73.9961 -54.5142 m
+73.3154 -46.5801 72.9604 -38.416 72.9604 -30.082 c
+72.9604 -13.7324 74.3267 1.96338 76.8374 16.5527 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+73.5713 -49.5581 m
+75.2725 -48.313 l
+75.3184 -48.3706 l
+74.4067 -51.397 l
+74.27 -52.436 74.1333 -53.4751 73.9961 -54.5142 c
+73.6846 -53.5137 73.3726 -52.5132 73.061 -51.5127 c
+71.6475 -48.6855 l
+71.6729 -48.6221 l
+73.5713 -49.5581 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+203.2236 -90.145 m
+205.8076 -78.9985 207.6943 -67.043 208.7695 -54.5142 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+208.3438 -59.4702 m
+206.4561 -60.4072 l
+206.4199 -60.3428 l
+207.834 -57.5156 l
+208.1455 -56.5151 208.457 -55.5146 208.7695 -54.5142 c
+208.9063 -55.5532 209.043 -56.5923 209.1797 -57.6313 c
+210.0908 -60.6577 l
+210.0557 -60.7163 l
+208.3438 -59.4702 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+132.7236 -58.333 m
+132.6206 -49.2075 132.5664 -39.7593 132.5664 -30.082 c
+132.5664 -6.75684 132.8809 15.2373 133.437 34.5859 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+132.5942 -52.9297 m
+134.3833 -51.814 l
+134.4248 -51.875 l
+133.2915 -54.8252 l
+133.0776 -55.8511 132.8643 -56.8774 132.6504 -57.9033 c
+132.4141 -56.8823 132.1772 -55.8613 131.9404 -54.8403 c
+130.7407 -51.9165 l
+130.7705 -51.855 l
+132.5942 -52.9297 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+149.041 -123.3916 m
+150.0586 -105.3013 150.7847 -82.9971 151.1025 -58.333 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+151.0381 -63.3066 m
+149.2227 -64.3789 l
+149.1831 -64.3169 l
+150.3872 -61.3945 l
+150.6255 -60.374 150.8638 -59.3535 151.1025 -58.333 c
+151.3145 -59.3594 151.5264 -60.3857 151.7383 -61.4121 c
+152.8672 -64.3643 l
+152.8354 -64.4253 l
+151.0381 -63.3066 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+46.3086 -50.2456 m
+48.0527 -67.916 52.0557 -84.521 57.8765 -99.4175 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+46.8477 -55.7026 m
+45.1621 -56.9697 l
+45.1157 -56.9126 l
+45.9883 -53.875 l
+46.1118 -52.8345 46.2349 -51.7935 46.3589 -50.7529 c
+46.6836 -51.749 47.0078 -52.7456 47.3325 -53.7422 c
+48.7822 -56.5508 l
+48.7578 -56.6147 l
+46.8477 -55.7026 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+213.7168 62.1602 m
+228.4912 37.5093 237.4434 5.23926 237.4434 -30.082 c
+237.4434 -36.9287 237.1074 -43.6611 236.457 -50.2456 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+236.9951 -45.7964 m
+238.8955 -44.8833 l
+238.9307 -44.9482 l
+237.4805 -47.7568 l
+237.1563 -48.7534 236.8311 -49.75 236.5068 -50.7461 c
+236.3828 -49.7056 236.2598 -48.6646 236.1357 -47.624 c
+235.2637 -44.5859 l
+235.3008 -44.5283 l
+236.9951 -45.7964 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+27.624 -46.2749 m
+27.1348 -40.9619 26.8833 -35.5586 26.8833 -30.082 c
+26.8833 1.07373 35.0229 29.856 48.792 53.1289 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+27.3008 -41.1309 m
+28.9941 -39.875 l
+29.0405 -39.9321 l
+28.1479 -42.9644 l
+28.0181 -44.0044 27.8877 -45.0439 27.7568 -46.084 c
+27.439 -45.0854 27.1211 -44.0869 26.8027 -43.0884 c
+25.3716 -40.27 l
+25.3965 -40.2065 l
+27.3008 -41.1309 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+211.8789 -141.3818 m
+235.4023 -118.854 251.5781 -84.9604 255.1416 -46.2749 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+254.6855 -51.228 m
+252.791 -52.1533 l
+252.7559 -52.0889 l
+254.1875 -49.2705 l
+254.5059 -48.272 254.8232 -47.2734 255.1416 -46.2749 c
+255.2725 -47.3145 255.4023 -48.3545 255.5332 -49.3945 c
+256.4248 -52.4268 l
+256.3887 -52.4849 l
+254.6855 -51.228 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+103.0664 -56.5005 m
+105.3403 -96.9932 112.7441 -131.3076 122.894 -151.3486 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+103.3457 -61.4668 m
+101.6084 -62.6611 l
+101.564 -62.6025 l
+102.5645 -59.604 l
+102.7314 -58.5693 102.8989 -57.5352 103.0664 -56.5005 c
+103.3486 -57.5098 103.6309 -58.519 103.9131 -59.5283 c
+105.2427 -62.3955 l
+105.2158 -62.4585 l
+103.3457 -61.4668 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+160.9014 89.0835 m
+172.6255 64.3555 180.4316 20.2324 180.4316 -30.082 c
+180.4316 -39 \ No newline at end of file
diff --git a/Build/source/texk/dvipsk/testdata/pfbincl.tex b/Build/source/texk/dvipsk/testdata/pfbincl.tex
new file mode 100644
index 00000000000..9e1441c3e6a
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/pfbincl.tex
@@ -0,0 +1,20 @@
+% this test is from David Jones, see 2008-05-07 ChangeLog entry.
+% The bug was an eps file that includes a pfb font, i.e., arbitrary bytes.
+% We don't want to strip out CTRL-D, etc.
+\documentclass{article}
+
+\usepackage{graphicx}
+
+\begin{document}
+
+A a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
+a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
+a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a.
+\begin{figure}[h]
+\includegraphics{pfbincl.eps}
+\end{figure}
+A a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
+a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
+a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a.
+
+\end{document}
diff --git a/Build/source/texk/dvipsk/testdata/pfbincl.xdv b/Build/source/texk/dvipsk/testdata/pfbincl.xdv
new file mode 100644
index 00000000000..2c995b21f1c
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/pfbincl.xdv
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/pfbincl.xps b/Build/source/texk/dvipsk/testdata/pfbincl.xps
new file mode 100644
index 00000000000..0c461f65685
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/pfbincl.xps
@@ -0,0 +1,11364 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.98dev Copyright 2010 Radical Eye Software
+%%Title: ../../../texk/dvipsk/testdata/pfbincl.xdv
+%%CreationDate: Fri May 7 14:06:17 2010
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%DocumentFonts: CMR10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: ./dvips -D 300
+%+ ../../../texk/dvipsk/testdata/pfbincl.xdv -o pfbincl.ps
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2009.05.28:1334
+%%BeginProcSet: texc.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginProcSet: special.pro 0 0
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
+@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
+newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
+closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
+/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
+currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
+N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
+neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
+rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
+scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
+lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
+ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
+/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
+pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
+restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
+/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
+setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
+moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
+matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
+savematrix setmatrix}N end
+
+%%EndProcSet
+%%BeginFont: CMR10
+%!PS-AdobeFont-1.1: CMR10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:52
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 46 /period put
+dup 49 /one put
+dup 65 /A put
+dup 97 /a put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
+92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
+295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
+409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
+4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
+2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
+0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
+B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
+24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
+43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
+D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
+5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
+96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3A3F5227524C4A2F39
+CA1A051624664D7F64567C9DC21A376ECD0302F3976D8AC8880CCF3EEAC4658C
+E24F7DEA160AE48B967273A51E56A298EAC9BA292CC9230BF283B611F1467F9E
+3A95B26BD7F0E7AA0A2C5C7D279051FAB8406A0D53459138C37E31BD451B61A9
+450664751BBAF49D13B3A98CF599C671ED2663E2CCAA6A5D50DC4FD4790CC8A4
+85CD0B565AD1447A7FE4282BA1294BCEEA64B7B3BFDC1BCEE990AA8B26441324
+A228BF89C162EB68EA6DB15691F445DD18C42150008FFFDC9DA85E46A319CEB2
+46DE1E57E1B738ADF6FD49E6A53BF48C6C2A730AE985B6EA0D59D1D2749D40D9
+52A27047D6A5FE354C7E876D3A2E7E499D9D4104762FD19BA0526D38D1F12B5E
+1A22FE803AFB2171FE5A3E58B2FB78175770EC2140DC00FD5F6F1725AE16D44B
+8FE84C3E122D4EBCE7ABB9AD43927837F9B19E1BC01AD5D9081E247BA5358E0A
+1B05164210F4453883898DE5BA43091340BF27979656F1A784A31205E7FCD7CD
+AE6896C7ADE22B3A50C3275885620061EB2DF4472122948167369C32BB614830
+B33AEFDA5E40DF238862E45E699A220A3E39C772AB771A74EB93E3DAC78B1A95
+2BCB3C63ABB68AF0DFE853171B0D1612A3DFA5264D6B64371277ABFABFF62611
+EF483C9711E1B0D84F44171C48CF754AB1E627EEC7FB8DCB92B7BB4C8AE7AE77
+C7BF3544E99D2B7E139C4371DBF46D0F06053DF9D12BF3C5837E4B6632FF6D53
+076BCA820F31513270C66D023F327DC3897E4DB66CA9AB7408DC9222E1E405A7
+ACDF23B73F6E52ED2F1DD38A57AB9AA6FC582E9A9B3EF96AAC484E58D9063DF8
+846397C4002392AC424665DA8863744609E7D1D6E64A866955FDBDEDBE874E95
+0F44B5510AA5DCCF129D5478DCDDE23D488CECE5733E90D1CCDA927170EDA7DE
+5F3FFCE4DA65F284086887575C6B9C7C0A4301A9661A0FB87BBE1A085E7CC196
+1E29B7A20F9F27C8553011E82D7929FDC9CE8EBB647CFC4DD5DAC8C5B077D8A0
+70F49EE5C3857DCDA2BAF6E0A56922B78F78B1203F35C40672603327E5607BE5
+72C04A7465C04E129C18E53ECC3FEED26EEBEE5DA303409AAD9B168191F02C01
+19FCE5924F53DD644CCF860B18B364F5E87C56392DF1070CC4C62DBFEF7FAA14
+6D42DA2B954D4D9967D6D73B860CDEA52A982789A5778758241D18A5CAD7CB6B
+92459C050FC765DF1C525500D5FBC1F7AF391E97DA1442522781E594E54686FE
+897E9AD50D3CFDDE2F3D981E8DD6C30DF1BDFBFEA6FCF2E1410C026A478BDD5D
+1BF3F35E404FE784161CAFD9F5BEC956452AF2DD4282747641C524D246471A11
+0148A5FF37CD998FCDC0C29B7E827AD294ACEBFB0A4F9519712365BADFD65089
+C2D4D2B6EC41DF3E227F6C5784D0A1BF690E6FD4B2299901451AC56BD90E7D90
+209C4CB6E359DECE4B1EAAF0AC78AEEE735FDB9EC8D72A85BA998263AB4EABE6
+CA1A81AF095CFB7FAF0BD1B47A54F4048461D876640D9B7809C4388F8D68F56E
+34A158752237C634CBC5B804D5D5EB1E4FE13ACC3272AA3AA02295E5F62D9B8C
+1C7FCF513906F09288AFACF88B7574395FB57C2119DDB8FE9BFBBE06FAEB1B28
+242A48BDC8725E93EE1AE270936078D3910CCD55B063927BD2D5ACF20885133E
+8E8CF472035BBB13745CEDDA9E16751982B9EE54C3AA812A3F96DAFE4C1BE830
+9FECF9BBE54467B1D2936D682BBF715A479A341863503A28236F4920146711B1
+2632DBBA7FD7E0ED130B5DADA63DED3C2C6D8C9C333D7734D41E730BAE16E866
+A50DD23152E45755C20647DAA5F9F248C36B18A4C707216BDB381A1CC05569E4
+34553D6397A76687C349E27C4A1F9C920D01
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(../../../texk/dvipsk/testdata/pfbincl.xdv)
+@start /Fa 158[21 31[31 15[21 2[12 46[{}4 41.511 /CMR10
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 320 262 a Fa(A)12 b(a)h(a)f(a)h(a)f(a)h(a)f(a)h
+(a)f(a)h(a)f(a)h(a)f(a)h(a)f(a)h(a)f(a)g(a)h(a)f(a)h(a)f(a)h(a)f(a)h(a)
+f(a)h(a)f(a)h(a)f(a)h(a)f(a)g(a)h(a)f(a)h(a)f(a)h(a)f(a)h(a)257
+311 y(a)g(a)g(a)f(a)h(a)f(a)h(a)g(a)f(a)h(a)f(a)h(a)g(a)f(a)h(a)f(a)h
+(a)g(a)f(a)h(a)f(a)h(a)g(a)f(a)h(a)f(a)h(a)g(a)f(a)h(a)f(a)h(a)g(a)f(a)
+h(a)g(a)f(a)h(a)f(a)h(a)g(a)f(a)h(a)257 361 y(a)g(a)g(a)g(a)f(a)h(a)g
+(a)g(a)f(a)h(a)g(a)g(a)g(a)f(a)h(a)g(a)g(a)f(a)h(a)g(a)g(a.)k(A)c(a)g
+(a)g(a)g(a)f(a)h(a)g(a)g(a)f(a)h(a)g(a)g(a)f(a)h(a)g(a)g(a)f(a)h(a)g(a)
+g(a)257 1703 y @beginspecial 1 @llx -186 @lly 347 @urx
+124 @ury 3460 @rwi @setspecial
+%%BeginDocument: pfbincl.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Adobe Illustrator(R) 8.0
+%%AI8_CreatorVersion: 12.0.1
+%%For: (len) (ams)
+%%Title: (condensation-of-zeta-functions.eps)
+%%CreationDate: 4/25/07 1:33 PM
+%%BoundingBox: 1 -186 347 124
+%%HiResBoundingBox: 1.40039 -185.0195 346.4609 123.5684
+%%DocumentProcessColors: Black
+%%DocumentFonts: EuclidSymbol
+%%+ Times-Roman
+%%+ TimesNewRomanPSMT
+%%DocumentSuppliedFonts: EuclidSymbol
+%%+ Times-Roman
+%%+ TimesNewRomanPSMT
+%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
+%%+ procset Adobe_screens_AI5 1.0 0
+%%+ procset Adobe_typography_AI5 1.0 1
+%%+ procset AGM_Gradient 1.0 0
+%%+ procset Adobe_ColorImage_AI6 1.3 0
+%%+ procset Adobe_Illustrator_AI5 1.3 0
+%%+ procset Adobe_pattern_AI5 1.0 0
+%%+ procset Adobe_cshow 2.0 8
+%%+ procset Adobe_shading_AI8 1.0 0
+%AI5_FileFormat 4.0
+%AI3_ColorUsage: Color
+%AI3_IncludePlacedImages
+%AI7_ImageSettings: 1
+%%CMYKCustomColor: 1 1 1 1 ([Registration])
+%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set)
+%%+ Options: 1 16 0 1 1 1 0 0 0 0 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 2 3 4
+%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 -1 -1 ()
+%AI3_TemplateBox: 174.4004 -118.9033 174.4004 -118.9033
+%AI3_TileBox: -114.0996 -478.4033 461.9004 274.7168
+%AI3_DocumentPreview: Header
+%AI5_ArtSize: 612 792
+%AI5_RulerUnits: 0
+%AI5_ArtFlags: 0 0 0 1 0 0 0 0 0
+%AI5_TargetResolution: 800
+%AI5_NumLayers: 2
+%AI8_OpenToView: -198.0996 457.5967 1 975 750 18 1 1 72 73 0 0
+%AI5_OpenViewLayers: 67
+%%PageOrigin:-114.0996 -475.4033
+%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
+%AI9_Flatten: 1
+%AI12_CMSettings: 00.MS
+%CLEANEPS: Wed Aug 29 14:21:48 EDT 2007 for ltd (cleaneps v2.2.3)
+%CLEANEPS_BINARY_WARNING: yes
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset Adobe_level2_AI5 1.2 0
+%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
+%%Version: 1.2 0
+%%CreationDate: (04/10/93) ()
+%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
+userdict /Adobe_level2_AI5 26 dict dup begin
+ put
+ /packedarray where not
+ {
+ userdict begin
+ /packedarray
+ {
+ array astore readonly
+ } bind def
+ /setpacking /pop load def
+ /currentpacking false def
+ end
+ 0
+ } if
+ pop
+ userdict /defaultpacking currentpacking put true setpacking
+ /initialize
+ {
+ Adobe_level2_AI5 begin
+ } bind def
+ /terminate
+ {
+ currentdict Adobe_level2_AI5 eq
+ {
+ end
+ } if
+ } bind def
+ mark
+ /setcustomcolor where not
+ {
+ /findcmykcustomcolor
+ {
+ (AI8_CMYK_CustomColor)
+ 6 packedarray
+ } bind def
+ /findrgbcustomcolor
+ {
+ (AI8_RGB_CustomColor)
+ 5 packedarray
+ } bind def
+ /setcustomcolor
+ {
+ exch
+ aload pop dup
+ (AI8_CMYK_CustomColor) eq
+ {
+ pop pop
+ 4
+ {
+ 4 index mul
+ 4 1 roll
+ } repeat
+ 5 -1 roll pop
+ setcmykcolor
+ }
+ {
+ dup (AI8_RGB_CustomColor) eq
+ {
+ pop pop
+ 3
+ {
+ 1 exch sub
+ 3 index mul
+ 1 exch sub
+ 3 1 roll
+ } repeat
+ 4 -1 roll pop
+ setrgbcolor
+ }
+ {
+ pop
+ 4
+ {
+ 4 index mul 4 1 roll
+ } repeat
+ 5 -1 roll pop
+ setcmykcolor
+ } ifelse
+ } ifelse
+ }
+ def
+ } if
+ /setAIseparationgray
+ {
+ false setoverprint
+ 0 setgray
+ /setseparationgray where{
+ pop setseparationgray
+ }{
+ /setcolorspace where{
+ pop
+ [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace
+ 1 exch sub setcolor
+ }{
+ setgray
+ }ifelse
+ }ifelse
+ } def
+
+ /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
+ userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
+ userdict /level2?
+ systemdict /languagelevel known dup
+ {
+ pop systemdict /languagelevel get 2 ge
+ } if
+ put
+/level2ScreenFreq
+{
+ begin
+ 60
+ HalftoneType 1 eq
+ {
+ pop Frequency
+ } if
+ HalftoneType 2 eq
+ {
+ pop GrayFrequency
+ } if
+ HalftoneType 5 eq
+ {
+ pop Default level2ScreenFreq
+ } if
+ end
+} bind def
+userdict /currentScreenFreq
+ level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
+level2? not
+ {
+ /setcmykcolor where not
+ {
+ /setcmykcolor
+ {
+ exch .11 mul add exch .59 mul add exch .3 mul add
+ 1 exch sub setgray
+ } def
+ } if
+ /currentcmykcolor where not
+ {
+ /currentcmykcolor
+ {
+ 0 0 0 1 currentgray sub
+ } def
+ } if
+ /setoverprint where not
+ {
+ /setoverprint /pop load def
+ } if
+ /selectfont where not
+ {
+ /selectfont
+ {
+ exch findfont exch
+ dup type /arraytype eq
+ {
+ makefont
+ }
+ {
+ scalefont
+ } ifelse
+ setfont
+ } bind def
+ } if
+ /cshow where not
+ {
+ /cshow
+ {
+ [
+ 0 0 5 -1 roll aload pop
+ ] cvx bind forall
+ } bind def
+ } if
+ } if
+ cleartomark
+ /anyColor?
+ {
+ add add add 0 ne
+ } bind def
+ /testColor
+ {
+ gsave
+ setcmykcolor currentcmykcolor
+ grestore
+ } bind def
+ /testCMYKColorThrough
+ {
+ testColor anyColor?
+ } bind def
+ userdict /composite?
+ 1 0 0 0 testCMYKColorThrough
+ 0 1 0 0 testCMYKColorThrough
+ 0 0 1 0 testCMYKColorThrough
+ 0 0 0 1 testCMYKColorThrough
+ and and and
+ put
+ composite? not
+ {
+ userdict begin
+ gsave
+ /cyan? 1 0 0 0 testCMYKColorThrough def
+ /magenta? 0 1 0 0 testCMYKColorThrough def
+ /yellow? 0 0 1 0 testCMYKColorThrough def
+ /black? 0 0 0 1 testCMYKColorThrough def
+ grestore
+ /isCMYKSep? cyan? magenta? yellow? black? or or or def
+ /customColor? isCMYKSep? not def
+ end
+ } if
+ end defaultpacking setpacking
+%%EndResource
+%%BeginResource: procset Adobe_screens_AI5 1.2 0
+%%Title: (Adobe Illustrator (R) Version 5.0 Custom Halftone Screens ProcSet)
+%%Version: 1.2 0
+%%CreationDate: (03/24/93) ()
+%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
+userdict /defaultpacking currentpacking put true setpacking
+systemdict begin
+userdict /Adobe_screens_AI5 15 dict dup begin
+put
+/initialize
+{
+ Adobe_screens_AI5 begin
+ /screenid
+ deviceDPI 600 gt composite? not or
+ {
+ -1
+ }
+ {
+ deviceDPI currentScreenFreq
+ dup dup 60 ge exch 150 le and deviceDPI 300 le and
+ {
+ pop 60
+ } if
+ div 1.41421 div 0.5 add cvi
+ } ifelse
+ def
+
+ 2 screenid eq
+ {
+ /customsize 16 def
+ /customdata /customdata2 def
+ setcustomscreen
+ } if
+
+ 3 screenid eq
+ {
+ /customsize 24 def
+ /customdata /customdata3 def
+ setcustomscreen
+ } if
+
+ 4 screenid eq
+ {
+ /customsize 16 def
+ /customdata /customdata4 def
+ setcustomscreen
+ } if
+
+ 5 screenid eq
+ {
+ /customsize 20 def
+ /customdata /customdata5 def
+ setcustomscreen
+ } if
+
+ 6 screenid eq
+ {
+ /customsize 24 def
+ /customdata /customdata6 def
+ setcustomscreen
+ } if
+
+ 7 screenid eq
+ {
+ /customsize 28 def
+ /customdata /customdata7 def
+ setcustomscreen
+ } if
+
+ 8 screenid eq
+ {
+ /customsize 16 def
+ /customdata /customdata8 def
+ setcustomscreen
+ } if
+} def
+/terminate
+{
+ currentdict Adobe_screens_AI5 eq
+ {
+ end
+ } if
+} def
+/setcustomscreen
+{
+ deviceDPI customsize div 0
+ {
+ 1 add 2 div customsize mul cvi exch
+ 1 add 2 div customsize mul cvi exch
+ customsize mul add
+ customdata load exch get 256 div
+ } setscreen
+} def
+/customdata2 28 28 mul string def
+currentfile customdata2 readhexstring
+4180E8694988E2634382EA6B4B8AE061A01939C8A81737C2A21B3BCAAA1636C0
+F8795998F6775796FA7B5B9AF57656952ED8B80727D6B60F2FDABA0626D5B50E
+4E8DE6674786EE6F4F8EE5664685ED6EAD1434C6A61F3FCEAE1232C5A51E3ECD
+F3745493FE7F5F9EF1725291FD7E5E9D24D3B30C2CDEBE0222D1B10A2ADDBD04
+4483EB6C4C8BE1624281E96A4A89E364A31C3CCBAB1535C1A11A3AC9A91838C3
+FB7C5C9BF4755594F97A5A99F778589730DBBB0525D4B40D2DD9B90828D7B710
+508FE4654584EC6D4D8CE7684887EF70AF1131C4A41D3DCCAC1333C7A72040CF
+F0715190FC7D5D9CF2735392FF80609F21D0B00929DCBC0323D2B20B2BDFBF01
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000
+pop pop
+/customdata3 28 28 mul string def
+currentfile customdata3 readhexstring
+011DC7F5E73D0421CBF3E43A021EC8F6E83E0522CCF2E43A2B648BC4A0762F68
+8AC39E732C658CC5A177306989C29D72D5B6521A6192D9B55219608FD6B6531B
+6193DAB451185F8FFCEE440C28D2FCED430B27D1FDEF450C29D3FBEC420A26D0
+BEA77D366F83BCA77C356E87BFA87E377082BBA67B346D86145B99E0AE4A1259
+98DFB14E155C9AE1AD4A115897DEB04D0623CDF4E63C0420CAF8EA400723CDF4
+E53B031FC9F7E93F316988C19F752E678EC6A378326A88C09F742D668DC6A278
+DBB350175E91D8B8551C6395DCB24F165D90D7B7541C6294FAEC420925CFFFF1
+470E2BD5F9EB410824CEFEF0460D2AD4BAA57A336C85BEAA80397180B9A47933
+6B84BDA97F387181105797DDAF4C145A9CE3AB480F5696DDAE4B13599BE2AC49
+021EC8F6E83E0522CCF2E43A011DC7F5E73D0421CBF3E43A2C658CC5A1773069
+89C29D722B648BC4A0762F688AC39E73D6B6531B6193DAB451185F8FD5B6521A
+6192D9B55219608FFDEF450C29D3FBEC420A26D0FCEE440C28D2FCED430B27D1
+BFA87E377082BBA67B346D86BEA77D366F83BCA77C356E87155C9AE1AD4A1158
+97DEB04D145B99E0AE4A125998DFB14E0723CDF4E53B031FC9F7E93F0623CDF4
+E63C0420CAF8EA40326A88C09F742D668DC6A278316988C19F752E678EC6A378
+DCB24F165D90D7B7541C6294DBB350175E91D8B8551C6395F9EB410824CEFEF0
+460D2AD4FAEC420925CFFFF1470E2BD5B9A479336B84BDA97F387181BAA57A33
+6C85BEAA803971800F5696DDAE4B13599BE2AC49105797DDAF4C145A9CE3AB48
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000
+pop pop
+/customdata4 28 28 mul string def
+currentfile customdata4 readhexstring
+1139B8E0FAD2531B133BBAE2F8D05119417180A6AE9A7B4B437382A5AD987949
+C08867272F6F92CAC28A66262E6E90C8E8DE5F070F37B6F2EADD5E060E36B5F0
+FED6571F173FBEE6FDD5561E163EBDE5AB9E7F4F477786A1A99D7E4E467685A3
+2C6C96CEC68E62222A6A95CDC58D64240C34B3F6EED95A020A32B1F5EDDB5C04
+143CBBE3F9D1521A123AB9E1FBD3541C447483A4AC997A4A427281A7AF9B7C4C
+C38B65252D6D91C9C1896828307093CBEBDC5D050D35B4F1E9DF60081038B7F3
+FCD4551D153DBCE4FFD758201840BFE7A89C7D4D457584A2AA9F8050487887A0
+296994CCC48C63232B6B97CFC78F61210931B0F4ECDA5B030B33B2F7EFD85901
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000
+pop pop
+/customdata5 28 28 mul string def
+currentfile customdata5 readhexstring
+010B34C3EBFCF7CE3F16020C35C4EDFBF6CD3E15102552A4D6EADDB5632B1126
+54A5D5EADCB3622A3958768499C19E8C7C5E3A59778498C19D8B7B5DC8A99370
+47334C7587AFC9AA936F46324B7485AEF1E5BC6B1E0A2351A3D8F2E4BC6A1E09
+2351A2D7FFF9D14219050F38C6EFFEF9D04118040E37C6EFE8E0B7662D142856
+A8D3E7DFB7652D132856A7D4BF9C8E7F603D5B7A8195BE9A8E7E603C5B798297
+314A7389B2CCAD906D442F497289B1CBAC926E4508214FA1DBF4E2B9671B0720
+4EA0DAF4E3BA691C030D36C5EDFBF6CD3F16010C34C3ECFDF8CF4017122654A6
+D4E9DDB4622A112553A5D6EBDEB5642C3B59788397C09C8B7C5D3A58778599C2
+9E8C7D5FCAAB926E46314B7486AFC8AA947048334D7587B0F2E4BB691D082250
+A1D8F1E6BD6B1F0A2452A3D9FDF8CF4118030E36C5EEFFFAD1421A050F38C7F0
+E6DFB6642C132755A7D3E8E1B8662E152957A8D2BE9A8D7E5F3B5A798296BF9B
+8F80613D5C7B80952F487188B1CAAC916D443049728AB3CCAE906C43061F4D9F
+DAF3E2BA681C07214FA0DBF5E1B8671A00000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000
+pop pop
+/customdata6 28 28 mul string def
+currentfile customdata6 readhexstring
+081A44B6E0F2FDECC150250C091B45B6E1F3FCEBC04F240C1D336199C7D8DCD3
+A56C37221E33619AC8D7DBD2A46B36214864798091AEB1958C7E694C49657A81
+90ADB0948B7D684BB99D8475593C405C7888A1BEBA9E8574583B3F5B7888A0BD
+E4CBAA712E1215326098CFE8E4CCA9712D1114315F97CEE7F5F1C6552B040719
+43B5DFFAF6F0C6542A03061842B4DEF9FFEDC352270E0B1C47B8E3F4FEECC251
+260D0A1C46B7E2F4DAD5A76E39232035639CCAD5D9D4A66D38231F34629BC9D6
+AF938E806A4E4A677C838FABAE928D7F694D4A667B828FAC3E5A778AA3BFBC9F
+8772563A3D597689A2BEBB9F8673573A14305E97D1EAE6CDA76F2B0F132F5D96
+D0E9E5CDA8702C10051742B3DDFCF8EEC4522801041641B2DDFBF7EFC5532902
+091B45B6E1F3FCEBC04F240C081A44B6E0F2FDECC150250C1E33619AC8D7DBD2
+A46B36211D336199C7D8DCD3A56C372249657A8190ADB0948B7D684B48647980
+91AEB1958C7E694CBA9E8574583B3F5B7888A0BDB99D8475593C405C7888A1BE
+E4CCA9712D1114315F97CEE7E4CBAA712E1215326098CFE8F6F0C6542A030618
+42B4DEF9F5F1C6552B04071943B5DFFAFEECC251260D0A1C46B7E2F4FFEDC352
+270E0B1C47B8E3F4D9D4A66D38231F34629BC9D6DAD5A76E39232035639CCAD5
+AE928D7F694D4A667B828FACAF938E806A4E4A677C838FAB3D597689A2BEBB9F
+8673573A3E5A778AA3BFBC9F8772563A132F5D96D0E9E5CDA8702C1014305E97
+D1EAE6CDA76F2B0F041641B2DDFBF7EFC5532902051742B3DDFCF8EEC4522801
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000
+pop pop
+/customdata7 28 28 mul string def
+currentfile customdata7 readhexstring
+01061B44B7E1F5FEFBE6BD4A210C01071B45B8E1F6FDFBE6BC4A200B09132A54
+A7D1EAF5EED9B05D331609142B55A8D2EAF4EED9AF5C32161D2D3D6993C1CBE0
+CEC59B7140301E2E3D6A93C0CADFCDC49A713F3047576C7B828DA2B6A48F867E
+6F5A48576C7C828CA1B6A38F867E6E59BAAA958A78634E4451667A8498ADBAAB
+968977624E4350657A8398ADE3D4C99F7539251A273C6892C2D7E4D4C89E7539
+241A273B6891C1D6F8F2DDB460371005122A53A7D0ECF9F2DDB360360F051229
+53A6D0EBFFFDE8BE4C220D03081D46B9E3F7FFFCE7BD4B210D02071C46B8E2F7
+F3F0DBB15E34180B152C56A9D3E8F3EFDAB05D34170A142C55A9D2E9DFCCC69C
+7341321F2F3F6B94BFC9DECCC59C7241311F2E3E6A94BFCAB5A38E8780705B49
+596D7D808BA0B4A28D877F6F5B48586D7C818BA043506479859AAFBCAC978876
+614C424F64798499AEBBAB968977624D19263B6791C3D8E5D6C79D7337231825
+3A6690C3D7E5D5C79E74382304112952A5CFEDFAF0DBB25E350E03102851A5CE
+ECF9F1DCB25F360E01071B45B8E1F6FDFBE6BC4A200B01061B44B7E1F5FEFBE6
+BD4A210C09142B55A8D2EAF4EED9AF5C321609132A54A7D1EAF5EED9B05D3316
+1E2E3D6A93C0CADFCDC49A713F301D2D3D6993C1CBE0CEC59B71403048576C7C
+828CA1B6A38F867E6E5947576C7B828DA2B6A48F867E6F5ABAAB968977624E43
+50657A8398ADBAAA958A78634E4451667A8498ADE4D4C89E7539241A273B6891
+C1D6E3D4C99F7539251A273C6892C2D7F9F2DDB360360F05122953A6D0EBF8F2
+DDB460371005122A53A7D0ECFFFCE7BD4B210D02071C46B8E2F7FFFDE8BE4C22
+0D03081D46B9E3F7F3EFDAB05D34170A142C55A9D2E9F3F0DBB15E34180B152C
+56A9D3E8DECCC59C7241311F2E3E6A94BFCADFCCC69C7341321F2F3F6B94BFC9
+B4A28D877F6F5B48586D7C818BA0B5A38E8780705B49596D7D808BA0424F6479
+8499AEBBAB968977624D43506479859AAFBCAC978876614C18253A6690C3D7E5
+D5C79E74382319263B6791C3D8E5D6C79D73372303102851A5CEECF9F1DCB25F
+360E04112952A5CFEDFAF0DBB25E350E
+pop pop
+/customdata8 28 28 mul string def
+currentfile customdata8 readhexstring
+050F2747B6D6EEF8FEF4DCBC4D2D1507111D375F9EC6E0E9EBE6CCA4653D1F13
+2939556F8EA8C1D1D3C3AE9475573B2B4961717D808999B1B39B8B867F73634B
+B8A090827A6A5A42445C6C7C8492A2BAD8C8AA97785232222434546E8DACCADA
+F0E2CFA768401A0A0C1C365E9DC5E4F2FAF7DFBF50301802040E2646B5D5EDFC
+FFF5DDBD4E2E160806102848B7D7EFF9EAE7CDA5663E2014121E38609FC7E1E8
+D2C2AF9576583C2C2A3A56708FA9C0D0B29A8A878074644C4A62727E818898B0
+435B6B7B8593A3BBB9A19183796959412333536D8CADCBDBD9C9AB9677513121
+0B1B355D9CC4E5F3F1E3CEA6673F1909030D2545B4D4ECFDFBF6DEBE4F2F1701
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000
+pop pop
+end
+end
+defaultpacking setpacking
+%%EndResource
+%%BeginResource: procset Adobe_typography_AI5 1.0 1
+%%Title: (Typography Operators)
+%%Version: 1.0 1
+%%CreationDate:(6/10/1996) ()
+%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
+currentpacking true setpacking
+userdict /Adobe_typography_AI5 68 dict dup begin
+put
+/initialize
+{
+ begin
+ begin
+ Adobe_typography_AI5 begin
+ Adobe_typography_AI5
+ {
+ dup xcheck
+ {
+ bind
+ } if
+ pop pop
+ } forall
+ end
+ end
+ end
+ Adobe_typography_AI5 begin
+} def
+/terminate
+{
+ currentdict Adobe_typography_AI5 eq
+ {
+ end
+ } if
+} def
+/modifyEncoding
+{
+ /_tempEncode exch ddef
+ /_pntr 0 ddef
+ {
+ counttomark -1 roll
+ dup type dup /marktype eq
+ {
+ pop pop exit
+ }
+ {
+ /nametype eq
+ {
+ _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
+ put
+ }
+ {
+ /_pntr exch ddef
+ } ifelse
+ } ifelse
+ } loop
+ _tempEncode
+} def
+/havefont
+{
+ systemdict /languagelevel known
+ {
+ /Font resourcestatus dup
+ { exch pop exch pop }
+ if
+ }
+ {
+ systemdict /FontDirectory get 1 index known
+ { pop true }
+ {
+ systemdict /fileposition known
+ {
+ dup length 6 add exch
+ Ss 6 250 getinterval
+ cvs pop
+ Ss exch 0 exch getinterval
+ status
+ { pop pop pop pop true }
+ { false }
+ ifelse
+ }
+ {
+ pop false
+ }
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+} def
+/TE
+{
+ StandardEncoding 256 array copy modifyEncoding
+ /_nativeEncoding exch def
+} def
+/subststring {
+ exch 2 index exch search
+ {
+ exch pop
+ exch dup () eq
+ {
+ pop exch concatstring
+ }
+ {
+ 3 -1 roll
+ exch concatstring
+ concatstring
+ } ifelse
+ exch pop true
+ }
+ {
+ pop pop false
+ } ifelse
+} def
+/concatstring {
+ 1 index length 1 index length
+ 1 index add
+ string
+ dup 0 5 index putinterval
+ dup 2 index 4 index putinterval
+ 4 1 roll pop pop pop
+} def
+%
+/TZ
+{
+ dup type /arraytype eq
+ {
+ /_wv exch def
+ }
+ {
+ /_wv 0 def
+ } ifelse
+ /_useNativeEncoding exch def
+ 2 index havefont
+ {
+ 3 index
+ 255 string
+ cvs
+
+ dup
+ (_Symbol_)
+ eq
+ {
+ pop
+ 2 index
+ findfont
+
+ }
+ {
+ 1 index 0 eq
+ {
+ dup length 1 sub
+ 1 exch
+ getinterval
+
+ cvn
+ findfont
+ }
+ {
+ pop 2 index findfont
+ } ifelse
+ } ifelse
+ }
+ {
+ dup 1 eq
+ {
+ 2 index 64 string cvs
+ dup (-90pv-RKSJ-) (-83pv-RKSJ-) subststring
+ {
+ exch pop dup havefont
+ {
+ findfont false
+ }
+ {
+ pop true
+ } ifelse
+ }
+ {
+ pop dup
+ (-90ms-RKSJ-) (-Ext-RKSJ-) subststring
+ {
+ exch pop dup havefont
+ {
+ findfont false
+ }
+ {
+ pop true
+ } ifelse
+ }
+ {
+ pop pop true
+ } ifelse
+ } ifelse
+ {
+ 1 index 1 eq
+ {
+ /Ryumin-Light-Ext-RKSJ-V havefont
+ {/Ryumin-Light-Ext-RKSJ-V}
+ {/Courier}
+ ifelse
+ }
+ {
+ /Ryumin-Light-83pv-RKSJ-H havefont
+ {/Ryumin-Light-83pv-RKSJ-H}
+ {/Courier}
+ ifelse
+ } ifelse
+ findfont
+ [1 0 0.5 1 0 0] makefont
+ } if
+ }
+ {
+ /Courier findfont
+ } ifelse
+ } ifelse
+ _wv type /arraytype eq
+ {
+ _wv makeblendedfont
+ } if
+ dup length 10 add dict
+ begin
+ mark exch
+ {
+ 1 index /FID ne
+ {
+ def
+ } if
+ cleartomark mark
+ } forall
+ pop
+ /FontScript exch def
+ /FontDirection exch def
+ /FontRequest exch def
+ /FontName exch def
+ counttomark 0 eq
+ {
+ 1 _useNativeEncoding eq
+ {
+ /Encoding _nativeEncoding def
+ } if
+ cleartomark
+ }
+ {
+ /Encoding load 256 array copy
+ modifyEncoding /Encoding exch def
+ } ifelse
+ FontName currentdict
+ end
+ definefont pop
+} def
+/tr
+{
+ _ax _ay 3 2 roll
+} def
+/trj
+{
+ _cx _cy _sp _ax _ay 6 5 roll
+} def
+/a0
+{
+ /Tx
+ {
+ dup
+ currentpoint 3 2 roll
+ tr _psf
+ newpath moveto
+ tr _ctm _pss
+ } ddef
+ /Tj
+ {
+ dup
+ currentpoint 3 2 roll
+ trj _pjsf
+ newpath moveto
+ trj _ctm _pjss
+ } ddef
+} def
+/a1
+{
+W B
+} def
+/e0
+{
+ /Tx
+ {
+ tr _psf
+ } ddef
+ /Tj
+ {
+ trj _pjsf
+ } ddef
+} def
+/e1
+{
+W F
+} def
+/i0
+{
+ /Tx
+ {
+ tr sp
+ } ddef
+ /Tj
+ {
+ trj jsp
+ } ddef
+} def
+/i1
+{
+ W N
+} def
+/o0
+{
+ /Tx
+ {
+ tr sw rmoveto
+ } ddef
+ /Tj
+ {
+ trj swj rmoveto
+ } ddef
+} def
+/r0
+{
+ /Tx
+ {
+ tr _ctm _pss
+ } ddef
+ /Tj
+ {
+ trj _ctm _pjss
+ } ddef
+} def
+/r1
+{
+W S
+} def
+/To
+{
+ pop _ctm currentmatrix pop
+} def
+/TO
+{
+ iTe _ctm setmatrix newpath
+} def
+/Tp
+{
+ pop _tm astore pop _ctm setmatrix
+ _tDict begin
+ /W
+ {
+ } def
+ /h
+ {
+ } def
+} def
+/TP
+{
+ end
+ iTm 0 0 moveto
+} def
+/Tr
+{
+ _render 3 le
+ {
+ currentpoint newpath moveto
+ } if
+ dup 8 eq
+ {
+ pop 0
+ }
+ {
+ dup 9 eq
+ {
+ pop 1
+ } if
+ } ifelse
+ dup /_render exch ddef
+ _renderStart exch get load exec
+} def
+/iTm
+{
+ _ctm setmatrix _tm concat
+ _shift aload pop _lineorientation 1 eq { exch } if translate
+ _scale aload pop _lineorientation 1 eq _yokoorientation 1 eq or { exch } if scale
+} def
+/Tm
+{
+ _tm astore pop iTm 0 0 moveto
+} def
+/Td
+{
+ _mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
+} def
+/iTe
+{
+ _render -1 eq
+ {
+ }
+ {
+ _renderEnd _render get dup null ne
+ {
+ load exec
+ }
+ {
+ pop
+ } ifelse
+ } ifelse
+ /_render -1 ddef
+} def
+/Ta
+{
+ pop
+} def
+/Tf
+{
+ 1 index type /nametype eq
+ {
+ dup 0.75 mul 1 index 0.25 mul neg
+ } if
+ /_fontDescent exch ddef
+ /_fontAscent exch ddef
+ /_fontSize exch ddef
+ /_fontRotateAdjust _fontAscent _fontDescent add 2 div neg ddef
+ /_fontHeight _fontSize ddef
+ findfont _fontSize scalefont setfont
+} def
+/Tl
+{
+ pop neg 0 exch
+ _leading astore pop
+} def
+/Tt
+{
+ pop
+} def
+/TW
+{
+ 3 npop
+} def
+/Tw
+{
+ /_cx exch ddef
+} def
+/TC
+{
+ 3 npop
+} def
+/Tc
+{
+ /_ax exch ddef
+} def
+/Ts
+{
+ 0 exch
+ _shift astore pop
+ currentpoint
+ iTm
+ moveto
+} def
+/Ti
+{
+ 3 npop
+} def
+/Tz
+{
+ count 1 eq { 100 } if
+ 100 div exch 100 div exch
+ _scale astore pop
+ iTm
+} def
+/TA
+{
+ pop
+} def
+/Tq
+{
+ pop
+} def
+/Tg
+{
+ pop
+} def
+/TG
+{
+ pop
+} def
+/Tv
+{
+ /_lineorientation exch ddef
+} def
+/TV
+{
+ /_charorientation exch ddef
+} def
+/Ty
+{
+ dup /_yokoorientation exch ddef 1 sub neg Tv
+} def
+/TY
+{
+ pop
+} def
+/T~
+{
+ Tx
+} def
+/Th
+{
+ pop pop pop pop pop
+} def
+/TX
+{
+ pop
+} def
+/Tk
+{
+ _fontSize mul 1000 div
+ _lineorientation 0 eq { neg 0 } { 0 exch } ifelse
+ rmoveto
+ pop
+} def
+/TK
+{
+ 2 npop
+} def
+/T*
+{
+ _leading aload pop
+ _lineorientation 0 ne { exch } if
+ Td
+} def
+/T*-
+{
+ _leading aload pop
+ _lineorientation 0 ne { exch } if
+ exch neg exch neg
+ Td
+} def
+/T-
+{
+ _ax neg 0 rmoveto
+ _lineorientation 1 eq _charorientation 0 eq and { 1 TV _hyphen Tx 0 TV } { _hyphen Tx } ifelse
+} def
+/T+
+{
+} def
+/TR
+{
+ _ctm currentmatrix pop
+ _tm astore pop
+ iTm 0 0 moveto
+} def
+/TS
+{
+ currentfont 3 1 roll
+ /_Symbol_ findfont _fontSize scalefont setfont
+
+ 0 eq
+ {
+ Tx
+ }
+ {
+ Tj
+ } ifelse
+ setfont
+} def
+/Xb
+{
+ pop pop
+} def
+/Tb /Xb load def
+/Xe
+{
+ pop pop pop pop
+} def
+/Te /Xe load def
+/XB
+{
+} def
+/TB /XB load def
+currentdict readonly pop
+end
+setpacking
+%
+/X^
+{
+ currentfont 5 1 roll
+ dup havefont
+ {
+ findfont _fontSize scalefont setfont
+ }
+ {
+ pop
+ exch
+ } ifelse
+ 2 index 0 eq
+ {
+ Tx
+ }
+ {
+ Tj
+ } ifelse
+ pop pop
+ setfont
+} def
+/T^ /X^ load def
+%%EndResource
+%%BeginResource: procset AGM_Gradient_Sep 1.0 0
+%%Title: (AGM Gradient Procset)
+%%Version: 1.0 0
+%%CreationDate: (4/26/96) ()
+%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
+userdict /defaultpacking currentpacking put true setpacking
+userdict /AGM_Gradient_Sep 5 dict dup begin put
+/AGM_Gradient_Sep_private 100 dict def
+/initialize{
+ AGM_Gradient_Sep begin
+ AGM_Gradient_Sep_private begin
+ _compositeJob{
+ initializeSinglePassSeps
+ }{
+ initializeMultiPassSeps
+ }ifelse
+ initializeSeps
+ AGM_Gradient_private begin
+ /_fillSD newSpotDict def
+ /_rampSD newSpotDict def
+ /_nCustomColorSD nd
+ end
+ AGM_Gradient_Sep_private
+ {
+ dup xcheck 1 index type /arraytype eq and
+ {
+ bind
+ }if
+ pop pop
+ }forall
+ AGM_Gradient_Sep
+ {
+ dup xcheck 1 index type /arraytype eq and
+ {
+ bind
+ }if
+ pop pop
+ }forall
+ end
+
+ currentdict readonly pop
+ end
+}def
+/terminate{
+ currentdict AGM_Gradient_Sep eq{
+ end
+ }if
+}def
+AGM_Gradient_Sep_private begin
+/initializeSeps{
+ /currentoverprint { _of } def
+ _noImage not _level2PS not and{
+ /linealFill{
+ currentoverprint{
+ 0 0 1 1 rectfill
+ }{
+ mySave
+ 8 setImageParms
+ _color{
+ _nCustomColorSD begin
+ cyan magenta yellow black
+
+ _spotColor{
+ spot1/tintImage spot1/tintValue get 1 exch sub makeByte8 put
+ spot2/tintImage spot2/tintValue get 1 exch sub makeByte8 put
+ }if
+ end
+
+ 4{
+ makeByte8 4 1 roll
+ }repeat
+ true 4 _nCustomColorSD ncolorimage
+ }{
+ _nCustomColorSD/black get 1 exch sub makeByte8
+ _nCustomColorSD bwImage
+ }ifelse
+ myRestore
+ }ifelse
+ }def
+ }if
+ /_whiteBytes 1 makeByte8 pt
+ /knockOut{
+ _noImage _level2PS or currentoverprint or{
+ gsave
+ false setoverprint
+ 1 setgray
+ 0 0 1 1 rectfill
+ grestore
+ }{
+ 8 setImageParms _whiteBytes /_image load 5 execImage
+ }ifelse
+ }def
+ /newSpotDict{
+ 11 dict dup begin
+ /nSpots 2 def
+ /spot1 7 dict def
+ /spot2 7 dict def
+ end
+ }def
+ /initSpotData
+ {
+ begin
+ /name nd
+ /tintImage nd
+ /tintValue nd
+ /spot_C nd
+ /spot_M nd
+ /spot_Y nd
+ /spot_K nd
+ end
+ }def
+ /initSpotDict{
+ begin
+ /cyanInk nd
+ /magentaInk nd
+ /yellowInk nd
+ /blackInk nd
+ /cyan nd
+ /magenta nd
+ /yellow nd
+ /black nd
+ spot1 initSpotData
+ spot2 initSpotData
+ end
+ }def
+ /copySpotDict{
+ /_dst xp
+ begin
+ cyanInk magentaInk yellowInk blackInk
+ cyan magenta yellow black
+ spot1 spot2
+ end
+ _dst begin
+ /spot1 spot1 maxlength dict def
+ /spot2 spot2 maxlength dict def
+ spot2 copy pop
+ spot1 copy pop
+ /black xd
+ /yellow xd
+ /magenta xd
+ /cyan xd
+ /blackInk xd
+ /yellowInk xd
+ /magentaInk xd
+ /cyanInk xd
+ end
+ }def
+ /setCustomColor
+ {
+ 1 index /Black eq{
+ 6 1 roll 5 npop
+ 1 exch sub
+ setgray
+ }{
+ 6 1 roll _ccAry1 astore exch
+ dup null eq{
+ pop 0
+ }if
+ setcustomcolor
+ }ifelse
+ }def
+ /setCStop{
+ /_colorStyle exch pt
+
+ _colorStyle 0 eq{
+ 0 0 0
+ 4 -1 roll
+ 1 exch sub
+ _spotColor{
+ /_colorStyle 3 pt
+ /Black
+ 1 index
+ 1 exch sub
+ }if
+ }if
+ _colorStyle 2 eq{
+ 3 npop
+ }if
+ _rampSD _fillSD copySpotDict
+
+ _colorStyle 4 eq{
+ pop
+ 9 2 roll 3 npop 6 -2 roll
+ } if
+
+ _colorStyle 3 eq _colorStyle 4 eq or{
+
+ _fillSD begin
+ /_spot1 spot1 pt
+ /_spot2 spot2 pt
+ end
+
+ exch dup _spot1/name get eq{
+ _spot1 _spot2
+ }{
+ _spot2 _spot1
+ }ifelse
+ begin
+ begin
+ /name xd
+ 1 exch sub /tintValue xd
+ 4{
+ tintValue mul 4 1 roll
+ }repeat
+ _spotColor not{
+ /tintValue null def
+ }if
+ end
+ /tintValue 0 def
+ end
+ }if
+ _fillSD nsetcustomcolor
+ }def
+ /renderCMYK{
+ spot1/name get null eq
+ spot2/name get null eq and
+ dup not{
+ pop
+ spot1 spotConverted
+ }if
+ dup not{
+ pop
+ spot2 spotConverted
+ }if
+ }def
+ /currentInk{
+ true
+ _inRipSep{
+ currentcolorspace 0 get
+ dup /DeviceGray eq
+ 1 index /DeviceCMYK eq or{
+ pop
+ currentcmykcolor add add add 0 eq{
+ pop false
+ }if
+ }{
+ /Separation eq{
+ currentcolor 0 eq{
+ pop false
+ }if
+ }if
+ }ifelse
+ }{
+ currentgray 1 eq{
+ pop false
+ }if
+ }ifelse
+ }def
+ /currentInkN{
+
+ _nCustomColorSD begin
+ /_spot1 spot1 pt
+ /_spot2 spot2 pt
+ renderCMYK
+ end
+ {
+ currentInk
+ }{
+ gsave
+ _spot1 begin
+ name null ne{
+ spot_C spot_M spot_Y spot_K name tintValue setCustomColor
+ currentInk
+ }{
+ false
+ }ifelse
+ end
+ _spot2 begin
+ name null ne{
+ spot_C spot_M spot_Y spot_K name tintValue setCustomColor
+ currentInk
+ }{
+ false
+ }ifelse
+ end
+ grestore
+
+ or
+ } ifelse
+ }def
+ /fill_ /fill load def
+ /fillOvp{
+ currentoverprint{
+ _inRipSep{
+ currentcolorspace 0 get
+ dup /DeviceGray eq
+ 1 index /DeviceCMYK eq or{
+ pop
+ currentcmykcolor add add add 0 eq{
+ newpath
+ }if
+ }{
+ /Separation eq{
+ currentcolor 0 eq{
+ newpath
+ }if
+ }if
+ }ifelse
+ }{
+ currentgray 1 eq{
+ newpath
+ }if
+ }ifelse
+ }if
+ fill_
+ }def
+ /fill{
+ _nCustomColorSD begin
+ /_spot1 spot1 pt
+ /_spot2 spot2 pt
+ renderCMYK
+ end
+
+ {
+ fillOvp
+ }{
+ _spot1 begin
+ gsave
+ name null ne{
+ spot_C spot_M spot_Y spot_K name tintValue setCustomColor
+ }{
+ 1 setgray
+ }ifelse
+ fillOvp
+ grestore
+ end
+ _spot2 begin
+ name null ne{
+ gsave
+ true setoverprint
+ spot_C spot_M spot_Y spot_K name tintValue setCustomColor
+ fillOvp
+ grestore
+ }if
+ end
+ newpath
+ }ifelse
+ }def
+ /expandSpot{
+ _spotColor{
+ /_len xp
+ _rampSD begin
+ spot1 begin
+ tintImage null ne{
+ tintImage _len expandOne /tintImage xd
+ }if
+ end
+ spot2 begin
+ tintImage null ne{
+ tintImage _len expandOne /tintImage xd
+ }if
+ end
+ end
+ }{
+ pop
+ }ifelse
+ }def
+ /rampImage{
+ currentoverprint{
+ rectImage
+ }{
+ _enabledSmoothShade{
+ fillRamp
+ }{
+ _color{
+ _rampSD begin
+ /cyanInk _cyanData 0 ne def
+ /magentaInk _magentaData 0 ne def
+ /yellowInk _yellowData 0 ne def
+ /blackInk _blackData 0 ne def
+ end
+
+ _nSamples setImageParms
+ _nSamples expandSpot
+ _cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
+ true 4 _rampSD ncolorimage
+ }{
+ _rampSD begin
+ /cyanInk false def
+ /magentaInk false def
+ /yellowInk false def
+ /blackInk true def
+ end
+ _nSamples setImageParms
+ _blackData _rampSD bwImage
+ }ifelse
+ }ifelse
+ }ifelse
+ }def
+ /nsetcustomcolor where{
+ pop
+ }{
+ /nsetcustomcolor
+ {
+ /_nCustomColorSD xp
+ _nCustomColorSD begin
+ 4 copy
+ /black xd
+ /yellow xd
+ /magenta xd
+ /cyan xd
+ 4 copy
+ 0 ne /blackInk xd
+ 0 ne /yellowInk xd
+ 0 ne /magentaInk xd
+ 0 ne /cyanInk xd
+ end
+ setcmykcolor
+ }def
+ }ifelse
+ /nsetcustomcolorend where{
+ pop
+ }{
+ /nsetcustomcolorend
+ {
+ /_nCustomColorSD null pt
+ }def
+ }ifelse
+}def
+/initializeSinglePassSeps{
+ /_decodeNorm [0 1] pt
+ /_decodeInvert [1 0] pt
+ /spotConverted
+ {
+ begin
+ name null eq{
+ false
+ }{
+ tintValue null eq tintImage null eq and{
+ true
+ }{
+ _inDistiller{
+ false
+ }{
+ false
+ currentpagedevice/SeparationColorNames get{name eq or}forall
+ not
+ }ifelse
+ }ifelse
+ }ifelse
+ end
+ }def
+ /dictImage
+ {
+ 20 dict dup begin
+ /Dict xd
+ /Decode xd
+ /DataSource xd
+ /ImageMatrix xd
+ /BitsPerComponent xd
+ /Height xd
+ /Width xd
+ /ImageType 1 def
+ Dict
+ end
+ /_image load 1 execImage
+ }def
+ /bwImage{
+ begin
+ gsave
+ currentoverprint{
+ blackInk{
+ [/Separation /Black /DeviceGray{}] setcolorspace
+ _decodeInvert dictImage
+ }{
+ 5 npop
+ }ifelse
+ }{
+ /DeviceGray setcolorspace
+ _decodeNorm dictImage
+ }ifelse
+ grestore
+ end
+ }def
+ /ncolorimage where{
+ pop
+ }{
+ /ncolorimage{
+ begin
+ renderCMYK{
+ cyanInk
+ magentaInk and
+ yellowInk and
+ blackInk and
+ not
+ currentoverprint
+ and{
+ pop pop
+ gsave
+ cyanInk{
+ 8 copy
+ [/Separation /Cyan /DeviceGray{}] setcolorspace
+ 3 npop
+ _decodeNorm dictImage
+ }if
+ magentaInk{
+ 8 copy
+ [/Separation /Magenta /DeviceGray{}] setcolorspace
+ 4 -1 roll
+ 3 npop
+ _decodeNorm dictImage
+ }if
+ yellowInk{
+ 8 copy
+ [/Separation /Yellow /DeviceGray{}] setcolorspace
+ 4 -2 roll
+ 3 npop
+ _decodeNorm dictImage
+ }if
+ blackInk{
+ 4 -3 roll
+ [/Separation /Black /DeviceGray{}] setcolorspace
+ 3 npop
+ _decodeNorm dictImage
+ }{
+ 8 npop
+ }ifelse
+ grestore
+ }{
+ /_colorimage load 10 execImage
+ }ifelse
+ }{
+ 6 npop
+ gsave
+ spot1 begin
+ name null ne tintImage null ne and{
+ [/Separation name /DeviceGray{}] setcolorspace
+ 4 copy
+ tintImage
+ name /Black eq{
+ _decodeNorm
+ }{
+ _decodeInvert
+ }ifelse
+ dictImage
+ }{
+ 1 setgray fill
+ }ifelse
+ end
+ spot2 begin
+ true setoverprint
+ name null ne tintImage null ne and{
+ [/Separation name /DeviceGray{}] setcolorspace
+ tintImage
+ name /Black eq{
+ _decodeNorm
+ }{
+ _decodeInvert
+ }ifelse
+ dictImage
+ }{
+ 4 npop
+ 1 setgray fill
+ }ifelse
+ end
+ grestore
+ }ifelse
+ end
+ }def
+ }ifelse
+ /getRampColorSpace{
+
+ /_renderCMYK _rampSD begin renderCMYK end pt
+
+ _renderCMYK not{
+ _rampSD begin
+ [/DeviceN
+ [
+ spot1 begin
+ name null ne tintImage null ne and{
+ name
+ }if
+ end
+ spot2 begin
+ name null ne tintImage null ne and{
+ name
+ }if
+ end
+ ]
+ _inDistiller {
+ /DeviceCMYK [
+ spot1 begin
+ name null ne tintImage null ne and{
+ spot_C spot_M spot_Y spot_K 1
+ }{
+ 0 0 0 0 0
+ }ifelse
+ end
+ spot2 begin
+ name null ne tintImage null ne and{
+ spot_C spot_M spot_Y spot_K 2
+ }{
+ 0 0 0 0 0
+ }ifelse
+ end
+ 5 1 roll 6 -2 roll add
+ dup 1 eq {
+ pop
+ 8 /index cvx 1 /exch cvx /sub cvx
+ 9 1 /roll cvx
+ }{
+ 2 eq {
+ 8 /index cvx 1 /exch cvx /sub cvx
+ 10 1 /roll cvx
+ }if
+ }ifelse
+ 4 1 /roll cvx 5 -2 /roll cvx
+ 8 /index cvx /mul cvx /exch cvx 9 /index cvx /mul cvx /add cvx 7 1 /roll cvx
+ 3 1 /roll cvx 4 -2 /roll cvx
+ 7 /index cvx /mul cvx /exch cvx 8 /index cvx /mul cvx /add cvx 6 1 /roll cvx
+ 2 1 /roll cvx 3 -2 /roll cvx
+ 6 /index cvx /mul cvx /exch cvx 7 /index cvx /mul cvx /add cvx 5 1 /roll cvx
+ 5 /index cvx /mul cvx /exch cvx 6 /index cvx /mul cvx /add cvx 4 1 /roll cvx
+ 6 -2 /roll cvx /pop cvx /pop cvx
+ ] cvx bind
+ }{
+ /DeviceCMYK {}
+ }ifelse
+ ] setcolorspace
+ end
+ /_nColorSpace currentcolorspace pt
+ }if
+
+ _nSamples 1 gt{
+ /_ndx 0 pt
+ [blendColor] cvx exec
+ }if
+ _renderCMYK{
+ /_C0 [currentcolor] pt
+ /_C0_Space currentcolorspace pt
+ }{
+ /_C0 [
+ _nCustomColorSD begin
+ spot1 begin
+ name null ne{
+ tintValue
+ }if
+ end
+ spot2 begin
+ name null ne{
+ tintValue
+ }if
+ end
+ end
+ ] pt
+ /_C0_Space _nColorSpace pt
+ }ifelse
+
+ _nSamples 1 gt{
+ /_ndx _nSamples 1 sub pt
+ [blendColor] cvx exec
+ }if
+ _renderCMYK{
+ /_C1 [currentcolor] pt
+ /_C1_Space currentcolorspace pt
+ }{
+ /_C1 [
+ _nCustomColorSD begin
+ spot1 begin
+ name null ne{
+ tintValue
+ }if
+ end
+ spot2 begin
+ name null ne{
+ tintValue
+ }if
+ end
+ end
+ ] pt
+ /_C1_Space _nColorSpace pt
+ }ifelse
+
+ /_rampColorSpace _C0_Space pt
+ _spotColor{
+ nsetcustomcolorend
+ }if
+ }def
+}def
+/initializeMultiPassSeps{
+ /invertXfer{
+ [
+ {
+ 1 exch sub
+ }/exec load systemdict /currenttransfer get exec /exec load
+ ] cvx systemdict /settransfer get exec
+ }def
+ /ccThrough{
+ gsave
+ 1 setCustomColor
+ currentcmykcolor
+ grestore
+ add add add 0 ne
+ }def
+ /spotConverted
+ {
+ begin
+ _isCMYKSep not{
+ false
+ }{
+ name null eq{
+ false
+ }{
+ tintValue null eq tintImage null eq and{
+ true
+ }{
+ spot_C spot_M spot_Y spot_K name ccThrough
+ }ifelse
+ }ifelse
+ }ifelse
+ end
+ }def
+ /spotChannel
+ {
+ _isCMYKSep{
+ pop false
+ }{
+ /_spotDict xp
+ _spotDict/name get null eq{
+ false
+ }{
+ _spotDict/spot_C get
+ _spotDict/spot_M get
+ _spotDict/spot_Y get
+ _spotDict/spot_K get
+ _spotDict/name get
+ ccThrough
+ }ifelse
+ }ifelse
+ }def
+ /getChannelData
+ {
+ _isCMYKSep dup{
+ pop renderCMYK
+ }if
+ {
+ _blackPlate{
+ 4 1 roll 3 npop blackInk
+ }{
+ _yellowPlate{
+ 4 2 roll 3 npop yellowInk
+ }{
+ _magentaPlate{
+ 4 3 roll 3 npop magentaInk
+ }{
+ 3 npop cyanInk
+ }ifelse
+ }ifelse
+ }ifelse
+ {
+ true /nonZeroData
+ }{
+ true /zeroData
+ }ifelse
+ }{
+ 4 npop
+ spot1/name get null ne
+ spot1 spotChannel and{
+ spot1/tintImage get dup null ne{
+ false /nonZeroData
+ }{
+ pop false /noData
+ }ifelse
+ }{
+ spot2/name get null ne
+ spot2 spotChannel and{
+ spot2/tintImage get dup null ne{
+ false /nonZeroData
+ }{
+ pop false /noData
+ }ifelse
+ }{
+ false /noData
+ }ifelse
+ }ifelse
+ }ifelse
+ }def
+ /renderChannelData
+ {
+ /_tmp xp
+ _tmp /nonZeroData ne currentoverprint and{
+ pop
+ _tmp /zeroData eq{pop}if
+ 4 npop
+ }{
+ _tmp /nonZeroData eq{
+ {
+ invertXfer
+ }if
+ systemdict/image
+ get 5 execImage
+ }{
+ pop
+ _tmp /zeroData eq{pop}if
+ 4 npop
+ knockOut
+ }ifelse
+ }ifelse
+ }def
+ /bwImage{
+ begin
+ gsave
+ dup dup dup
+ getChannelData
+ exch pop false exch
+ renderChannelData
+ grestore
+ end
+ }def
+ /ncolorimage{
+ begin
+ pop pop
+ gsave
+ spot2/name get null ne spot2 spotChannel and{
+ true setoverprint
+ }if
+ getChannelData
+ renderChannelData
+ grestore
+ end
+ }def
+ /getRampColorSpace{
+
+ /_renderCMYK _rampSD begin renderCMYK end pt
+
+ _nSamples 1 gt{
+ /_ndx 0 pt
+ [blendColor] cvx exec
+ }if
+
+ _renderCMYK{
+ /_C0 [currentcolor] pt
+ /_C0_Space currentcolorspace pt
+ }{
+ /_C0 [
+ _nCustomColorSD begin
+ 0
+ spot1 begin
+ name null ne
+ tintValue null ne and
+ spot1 spotChannel and{
+ pop tintValue
+ }if
+ end
+ spot2 begin
+ name null ne
+ tintValue null ne and
+ spot2 spotChannel and{
+ pop tintValue
+ }if
+ end
+ 1 exch sub
+ end
+ ] pt
+ /_C0_Space /DeviceGray pt
+ }ifelse
+
+ _nSamples 1 gt{
+ /_ndx _nSamples 1 sub pt
+ [blendColor] cvx exec
+ }if
+
+ _renderCMYK{
+ /_C1 [currentcolor] pt
+ /_C1_Space currentcolorspace pt
+ }{
+ /_C1 [
+ _nCustomColorSD begin
+ 0
+ spot1 begin
+ name null ne
+ tintValue null ne and
+ spot1 spotChannel and{
+ pop tintValue
+ }if
+ end
+ spot2 begin
+ name null ne
+ tintValue null ne and
+ spot2 spotChannel and{
+ pop tintValue
+ }if
+ end
+ 1 exch sub
+ end
+ ] pt
+ /_C1_Space /DeviceGray pt
+ }ifelse
+
+ /_rampColorSpace _C0_Space pt
+ _spotColor{
+ nsetcustomcolorend
+ }if
+ }def
+}def
+end
+end
+defaultpacking setpacking
+%%EndResource
+%%BeginResource: procset AGM_Gradient 1.0 0
+%%Title: (AGM Gradient Procset)
+%%Version: 1.0 0
+%%CreationDate: (4/26/96) ()
+%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
+userdict /defaultpacking currentpacking put true setpacking
+userdict /AGM_Gradient 20 dict dup begin put
+/AGM_Gradient_private 201 dict def
+/initialize
+{
+ AGM_Gradient begin
+ AGM_Gradient_private begin
+ initializeVars
+
+ /bd systemdict/mark get def
+ /ed
+ _level2PS
+ {
+ (>>)
+ }{
+ (counttomark 2 idiv dup dict begin {def} repeat pop currentdict end)
+ } ifelse
+ cvx def
+
+ _level2PS{
+ initializeLev2
+ }{
+ initializeLev1
+ }ifelse
+
+ queryDevice
+
+ initializeRectFill
+ initializeShading
+ initializeOps
+ _producingSeps{
+ AGM_Gradient_Sep/initialize get exec
+ }{
+ initializeComposite
+ }ifelse
+ _illustrator{
+ /f{}def
+ /F{}def
+ /s{}def
+ /S{}def
+ /b{}def
+ /B{}def
+ }if
+ /image where{
+ /image get /_image xd
+ }if
+ /colorimage where{
+ /colorimage get /_colorimage xd
+ }if
+ AGM_Gradient_private
+ {
+ dup xcheck 1 index type /arraytype eq and
+ {
+ bind
+ }if
+ pop pop
+ }forall
+ AGM_Gradient
+ {
+ dup xcheck 1 index type /arraytype eq and
+ {
+ bind
+ }if
+ pop pop
+ }forall
+ end
+
+ currentdict readonly pop
+ end
+}def
+/initializeAI
+{
+ pop pop
+ AGM_Gradient/AGM_Gradient_private get /_illustrator true put
+ AGM_Gradient/initialize get exec
+ AGM_Gradient begin
+}def
+/unload{
+ systemdict/languagelevel known{
+ systemdict/languagelevel get 2 ge{
+ userdict/AGM_Gradient_Sep 2 copy known{
+ undef
+ }{
+ pop pop
+ }ifelse
+ userdict/AGM_Gradient 2 copy known{
+ undef
+ }{
+ pop pop
+ }ifelse
+ }if
+ }if
+}def
+/terminate{
+ currentdict AGM_Gradient eq{
+ end
+ }if
+}def
+
+AGM_Gradient_private begin
+/initializeVars{
+ /_d255 256 array def
+ 0 1 255{
+ _d255 exch dup 255 div put
+ }bind for
+ /_d255- 256 array def
+ 0 1 255{
+ _d255- exch 1 _d255 2 index get sub put
+ }bind for
+ /_sSave nd
+ /_dUserSpace matrix defaultmatrix def
+ /_bUMatrix matrix def
+ /_imageMatrix matrix def
+ /_saveMatrix matrix def
+ /_xm matrix def
+ /_ccAry1 5 array def
+ /_bbox 4 array pt
+ /_level2PS
+ systemdict/languagelevel known dup{
+ pop systemdict/languagelevel get 2 ge
+ }if
+ def
+ /_level3PS
+ _level2PS systemdict/shfill known and
+ def
+ currentdict /_illustrator known not{
+ /_illustrator false def
+ }if
+
+}def
+/initializeOps
+{
+ AGM_Gradient begin
+ currentdict/Bc known not{
+ /Bc{
+
+ _renderFlag 2 eq _enabledSmoothShade or{
+ 6 npop
+ }{
+ pushBSpace
+ _rampIndex 0 eq{
+ pop pop
+ setCStop
+ }if
+ linealFill
+ popBSpace
+ }ifelse
+
+ }def
+ }if
+
+ currentdict/Bg known not{
+ /Bg{
+ 10 npop
+ /_gradName xp
+ /_renderFlag xp
+ /_enabledSmoothShade false pt
+
+ _renderFlag 2 ne{
+
+ _illustrator{
+ _of setoverprint
+ }if
+
+ /_enabledSmoothShade
+ _level3PS{
+ _usingSmoothShade
+ _producingSeps not
+ currentoverprint not or and
+ _noImage not and
+ }{
+ false
+ }ifelse
+ pt
+
+ _illustrator _eo and _renderFlag 3 eq or{
+ eoclip
+ }{
+ clip
+ }ifelse
+
+ _gradNames _gradName 2 copy known{
+ get
+ mark exch aload pop
+ /_gradType xp
+ 1 sub dup /_rampIndex xp
+ /_maxRampIndex xp
+ mark exch aload pop
+ 0 0
+ }if
+ pop pop
+ getRampData
+ }{
+ mark mark
+ }ifelse
+ }def
+ }if
+
+ currentdict/Bm known not{
+ /Bm{
+ _renderFlag 2 ne{
+ _gradType 0 eq{
+ linealRamp
+ }{
+ radialGrad
+ }ifelse
+ }{
+ 6 npop
+ }ifelse
+ }def
+ }if
+
+ currentdict/Bh known not{
+ /Bh{
+ 2 npop
+ /_yHi xp
+ /_xHi xp
+ /_radHilite _xHi 0 ne _yHi 0 ne or pt
+ }def
+ }if
+
+ currentdict/Bn known not{
+ /Bn{
+ AGM_Gradient_private begin
+ dict /_gradNames xp
+ end
+ }def
+ }if
+
+ currentdict/Bd known not{
+ /Bd{
+ AGM_Gradient begin
+ AGM_Gradient_private begin
+ /_nColorsBd xp
+ /_gradType xp
+ /_gradName xp
+ }def
+ }if
+
+ currentdict/BD known not{
+ /BD{
+ currentdict/_gradNames known not{
+ /_gradNames 20 dict def
+ }if
+ ] _nColorsBd _gradType
+ ] _gradName exch /_gradNames xput
+ end
+ end
+ }def
+ }if
+
+ currentdict/Bb known not{
+ /Bb{
+
+ AGM_Gradient/AGM_Gradient_private get /_illustrator get not{
+ AGM_Gradient begin
+ }if
+ AGM_Gradient_private begin
+ _producingSeps{
+ AGM_Gradient_Sep/AGM_Gradient_Sep_private get begin
+ }if
+ mySave
+ }def
+ }if
+
+ currentdict/BB known not{
+ /BB{
+
+ /_tmp xp
+ cleartomark cleartomark
+
+ _tmp dup
+ _renderFlag
+
+ myRestore
+
+ _producingSeps{
+ end
+ }if
+
+ _illustrator dup
+ end
+ not {
+ end
+ }if
+
+ {
+ 2 ne exch 0 gt and{
+ 2 eq{
+ s
+ }{
+ S
+ }ifelse
+ }{
+ pop newpath
+ }ifelse
+ }{
+ pop newpath
+ }ifelse
+
+
+ }def
+ }if
+
+ currentdict/Xm known not{
+ /Xm{
+ _xm astore pop
+ }def
+ }if
+
+ end
+}def
+/queryDevice{
+ /_inDistiller
+ systemdict /currentdistillerparams known
+ def
+ /_inRipSep
+ _level2PS{
+ currentpagedevice/Separations 2 copy known{
+ get
+ }{
+ pop pop false
+ }ifelse
+ }{
+ false
+ }ifelse
+ _inDistiller or
+ def
+ /_noImage /lv1Fix where{
+ pop lv1Fix
+ }{
+ false
+ }ifelse
+ def
+ /_useShells where{
+ /_useShells get /_usingShells xp
+ }{
+ /_usingShells false def
+ }ifelse
+
+ /_useSmoothShade where{
+ pop
+ }{
+ /_useSmoothShade false def
+ }ifelse
+ /_forceToCMYK where{
+ pop
+ }{
+ /_forceToCMYK false def
+ }ifelse
+ /_cyanPlate 1 0 0 0 testCMYKColorThrough def
+ /_magentaPlate 0 1 0 0 testCMYKColorThrough def
+ /_yellowPlate 0 0 1 0 testCMYKColorThrough def
+ /_blackPlate 0 0 0 1 testCMYKColorThrough def
+ /_compositeJob
+ _cyanPlate _magentaPlate and _yellowPlate and _blackPlate and
+ def
+ /_isCMYKSep
+ _cyanPlate _magentaPlate or _yellowPlate or _blackPlate or
+ def
+ /_compositeSpotDevice where{
+ pop
+ }{
+ /_compositeSpotDevice _compositeJob not _inRipSep or{
+ 1
+ }{
+ 0
+ }ifelse
+ def
+ }ifelse
+ /_producingSeps _compositeSpotDevice 0 ne def
+ /_deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt def
+ /_dpiThreshold where{
+ pop
+ }{
+ /_dpiThreshold 600 def
+ }ifelse
+ /_screenFreqThreshold where{
+ pop
+ }{
+ /_screenFreqThreshold 150 def
+ }ifelse
+ /_contoneDevice where{
+ pop
+ }{
+ /_contoneDevice false def
+ }ifelse
+ /_subSampleOK
+ _deviceDPI _dpiThreshold le
+ currentScreenFreq _screenFreqThreshold le and
+ _contoneDevice not and
+ def
+}def
+/initializeRectFill{
+ /rectfill where dup{
+ exch pop not _producingSeps or
+ }{
+ not
+ }ifelse
+ {
+ /rectfill{
+ gsave
+ newpath
+ 4 2 roll moveto
+ 1 index 0 rlineto
+ 0 1 index rlineto
+ 1 index neg 0 rlineto
+ pop pop
+ closepath
+ fill
+ grestore
+ }def
+ }if
+}def
+/initializeLev1{
+ /currentScreenFreq{
+ currentscreen pop pop
+ }def
+ /_byte 1 string def
+ /colorimage where{
+ pop
+ }{
+ /colorimage{
+ pop pop
+ /_blackTmp xp
+ /_yellowTmp xp
+ /_magentaTmp xp
+ /_cyanTmp xp
+ /_cnt 0 pt
+ [
+ _byte dup 0
+ _cyanTmp
+ /_cnt cvx /get cvx _d255 /exch cvx /get cvx .3 /mul cvx
+ _magentaTmp
+ /_cnt cvx /get cvx _d255 /exch cvx /get cvx .59 /mul cvx
+ _yellowTmp
+ /_cnt cvx /get cvx _d255 /exch cvx /get cvx .11 /mul cvx
+ _blackTmp
+ /_cnt cvx /get cvx _d255 /exch cvx /get cvx
+ /add cvx /add cvx /add cvx 1 /exch cvx /sub cvx
+ /dup cvx 0 /lt cvx{
+ pop 0
+ }/if cvx
+ /dup cvx 1 /gt cvx{
+ pop 1
+ }/if cvx
+ 255 /mul cvx /cvi cvx
+ 256 /mod cvx
+ /dup cvx 0 /lt cvx{
+ pop 0
+ }/if cvx
+ /put cvx
+ /_cnt dup cvx 1 /add cvx /pt cvx
+ ] cvx
+ bind
+ /_image load 5 execImage
+ }def
+ }ifelse
+}def
+/initializeLev2{
+ /level2ScreenFreq{
+ begin
+ 60
+ HalftoneType 1 eq{
+ pop Frequency
+ }if
+ HalftoneType 2 eq{
+ pop GrayFrequency
+ }if
+ HalftoneType 5 eq{
+ pop Default level2ScreenFreq
+ }if
+ end
+ }def
+ /currentScreenFreq{
+ currenthalftone level2ScreenFreq
+ }def
+}def
+/initializeShading{
+ _useSmoothShade _level3PS and{
+ /_usingSmoothShade true pt
+ initializeLev3_Ops
+ }{
+ /_usingSmoothShade false pt
+ }ifelse
+}def
+/initializeLev3_Ops
+{
+ /initShFill{
+ /_index _gradType 0 eq {0}{_maxRampIndex 1 sub} ifelse pt
+ /_rampFuncsArray _maxRampIndex array pt
+ /_boundsArray _maxRampIndex 1 sub array pt
+ /_encodeArray _maxRampIndex 2 mul array pt
+ /_beginCoord _rampPoint pt
+ /_colorSpace null pt
+ /_firstFill _rampIndex _maxRampIndex eq pt
+ /_lastFill false pt
+ }def
+ /linealShFill{
+ popBSpace
+ _xm aload pop pushBSpace
+
+ /_size _index 1 add pt
+ _size _maxRampIndex lt {
+ /_rampFuncsArray _rampFuncsArray 0 _size getinterval pt
+ /_boundsArray _boundsArray 0 _size 1 sub getinterval pt
+ /_encodeArray _encodeArray 0 _size 2 mul getinterval pt
+ }if
+
+ bd
+ /ShadingType 2
+ /ColorSpace _colorSpace
+ _rgbInCMYK{
+ /Function [
+ _cData sampFunc
+ _mData sampFunc
+ _yData sampFunc
+ _kData sampFunc
+ ]
+ }{
+ /Function
+ bd
+ /FunctionType 3
+ /Domain [0 1]
+ /Functions _rampFuncsArray
+ /Bounds _boundsArray
+ /Encode _encodeArray
+ ed
+ }ifelse
+ /Extend [_firstFill _lastFill]
+ /Domain [0 1]
+ /Coords [_beginCoord 0 _endCoord 0]
+ ed
+ shfill
+ }def
+
+ /radialShFill{
+ /_size _maxRampIndex _index sub pt
+ _size _maxRampIndex lt {
+ /_rampFuncsArray _rampFuncsArray _index _size getinterval pt
+ /_boundsArray _boundsArray _index _size 1 sub getinterval pt
+ /_encodeArray _encodeArray _index 2 mul _size 2 mul getinterval pt
+ }if
+
+ /_rampLen _beginCoord _endCoord sub pt
+ bd
+ /ShadingType 3
+ /ColorSpace _colorSpace
+ _rgbInCMYK{
+ /Function [
+ _cData sampFunc
+ _mData sampFunc
+ _yData sampFunc
+ _kData sampFunc
+ ]
+ }{
+ /Function
+ bd
+ /FunctionType 3
+ /Domain [0 1]
+ /Functions _rampFuncsArray
+ /Bounds _boundsArray
+ /Encode _encodeArray
+ ed
+ }ifelse
+ /Extend [_lastFill _firstFill]
+ /Domain [0 1]
+ /Coords [_xHi _rampLen mul _yHi _rampLen mul _endCoord 0 0 _beginCoord]
+ ed
+ shfill
+
+ _radHilite{
+ _xHi _rampLen mul _yHi _rampLen mul translate
+ }if
+ }def
+
+ %
+ /sampFunc{
+ /_tmp exch pt
+ bd
+ _tmp length 1 eq {
+ _tmp 0 get
+ /_tmp 2 string pt
+ dup _tmp 0 3 -1 roll put
+ _tmp 1 3 -1 roll put
+ }if
+ /FunctionType 0
+ /Order 1
+ /Size [_tmp length]
+ /Domain [0 1]
+ /BitsPerSample 8
+ /DataSource _tmp
+ /Range [0 1]
+ ed
+ }def
+
+ /fillRamp{
+
+
+ /_invert _midPoint 0.5 lt pt
+ _rampIndex _maxRampIndex eq {
+ initShFill
+ }if
+
+ getRampColorSpace
+
+ _colorSpace null eq{
+ /_colorSpace _rampColorSpace pt
+ }{
+ _colorSpace _rampColorSpace ne _rgbInCMYK or{
+ /_index _index 1
+ _gradType 0 eq{
+ sub pt
+ linealShFill
+ }{
+ add pt
+ radialShFill
+ }ifelse
+ initShFill
+ /_colorSpace _rampColorSpace pt
+ } if
+ }ifelse
+ /_endCoord _endPoint pt
+ /_rgbInCMYK false pt
+ _producingSeps _forceToCMYK or _rgbRamp and {
+ _spotColor{
+ _renderCMYK
+ }{
+ _isCMYKSep
+ }ifelse
+ }{
+ false
+ }ifelse
+ {
+ _compositeJob{
+ /_rgbInCMYK true pt
+ _cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
+ dup length string copy /_kData exch pt
+ dup length string copy /_yData exch pt
+ dup length string copy /_mData exch pt
+ dup length string copy /_cData exch pt
+ }{
+ _rampFuncsArray _index
+ _cyanPlate{_cyanData}if
+ _magentaPlate{_magentaData}if
+ _yellowPlate{_yellowData}if
+ _blackPlate{_blackData}if
+ _nSamples expandOne
+ sampFunc
+ dup begin /Decode [1 0] def end
+ put
+ /_invert false pt
+ }ifelse
+ }{
+ _rampFuncsArray _index
+ bd
+ /FunctionType 2
+ /Domain [0 1]
+ /N 0.5 log _invert{1 _midPoint sub}{_midPoint}ifelse log div
+ _gradType 0 eq{
+ _invert{/C1}{/C0}ifelse _C0
+ _invert{/C0}{/C1}ifelse _C1
+ }{
+ _invert{/C0}{/C1}ifelse _C1
+ _invert{/C1}{/C0}ifelse _C0
+ }ifelse
+ ed
+ put
+ }ifelse
+
+ _rampIndex 1 ne{
+ _boundsArray _index _gradType 1 eq{1 sub}if _endCoord put
+ } if
+
+ 0 1 _invert {exch}if
+ _encodeArray _index 2 mul 1 add 3 -1 roll put
+ _encodeArray _index 2 mul 3 -1 roll put
+ _rampIndex 1 eq {
+ /_lastFill true pt
+ _gradType 0 eq{
+ linealShFill
+ }{
+ radialShFill
+ }ifelse
+ }if
+ /_index _index 1
+ _gradType 0 eq{
+ add pt
+ }{
+ sub pt
+ }ifelse
+ }def
+}def
+/initializeComposite{
+ /bwImage{
+ pop /_image load 5 execImage
+ }def
+ /rampImage{
+ _enabledSmoothShade{
+ fillRamp
+ }{
+ _color{
+ _nSamples setImageParms
+
+
+ _rgbRamp _forceToCMYK not and{
+ _redData _greenData _blueData _nSamples 3 expandColor
+ true 3 null ncolorimage
+ }{
+ _cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
+ true 4 null ncolorimage
+ }ifelse
+ }{
+ _nSamples setImageParms _blackData null bwImage
+ }ifelse
+ }ifelse
+ }def
+ /setCStop{
+ /_colorStyle exch pt
+ _colorStyle 0 eq{
+ 1 exch sub
+ 0 0 0
+ 4 -1 roll
+ }if
+
+ _colorStyle 2 eq{
+ _forceToCMYK{
+ 3 npop setcmykcolor
+ }{
+ setrgbcolor 4 npop
+ }ifelse
+ }if
+
+ _colorStyle 3 eq{
+ 1 exch sub /_tmp xp
+ pop
+ 4{
+ _tmp mul 4 1 roll
+ }repeat
+ }if
+
+ _colorStyle 4 eq{
+ _forceToCMYK{
+ 6 npop setcmykcolor
+ }{
+ 3 -1 roll pop pop
+ 1 exch sub /_tmp xp
+ 3{
+ 1 exch sub _tmp mul 1 exch sub 3 1 roll
+ }repeat
+ setrgbcolor
+ 4 npop
+ }ifelse
+ }if
+ _colorStyle 2 ne _colorStyle 4 ne and{
+ null nsetcustomcolor
+ }if
+ }def
+ /nsetcustomcolor
+ {
+ pop setcmykcolor
+ }def
+ /nsetcustomcolorend
+ {
+ }def
+ /ncolorimage{
+ pop
+ /_colorimage load 10 execImage
+ }def
+ _noImage not _level2PS not and{
+ /linealFill{
+ 8 setImageParms
+ _color{
+ currentcmykcolor
+ 4{
+ makeByte8 4 1 roll
+ }repeat
+ true 4 null ncolorimage
+ }{
+ currentgray makeByte8 null bwImage
+ }ifelse
+ }def
+ }if
+ /getRampColorSpace{
+ _nSamples 1 gt{
+ /_ndx 0 pt
+ [blendColor] cvx exec
+ }if
+ /_C0 [currentcolor] pt
+ /_C0_Space currentcolorspace pt
+
+ _nSamples 1 gt{
+ /_ndx _nSamples 1 sub pt
+ [blendColor] cvx exec
+ }if
+ /_C1 [currentcolor] pt
+ /_C1_Space currentcolorspace pt
+
+ /_rampColorSpace _C0_Space pt
+
+ _spotColor{
+ nsetcustomcolorend
+ }if
+ }def
+}def
+/npop{
+ {pop}repeat
+}def
+/xd{
+ exch def
+}def
+/nd{
+ null def
+}def
+/pt{
+ AGM_Gradient_private 3 1 roll put
+}def
+/xp{
+ exch pt
+}def
+/xput{
+ dup load dup length exch maxlength eq{
+ dup dup load dup
+ length 2 mul dict copy def
+ }if
+ load begin
+ def
+ end
+}def
+/mySave{
+ save /_sSave xp
+}def
+/myRestore{
+ _sSave type /savetype eq{
+ _sSave restore
+ }if
+}def
+/gMark{
+ counttomark 2 add -1 roll
+}def
+/execImage{
+ /_tmp xp
+ {
+ exec
+ }stopped{
+ $error /errorname get /undefinedresult ne{
+ stop
+ }{
+ _tmp npop
+ }ifelse
+ }if
+}def
+/pushBSpace{
+ newpath gsave
+ _bUMatrix astore concat
+}def
+/popBSpace{
+ grestore
+}def
+/makeByte8{
+ /_tmp 0 pt
+ 255 mul cvi
+ 8 string 8{
+ dup _tmp 3 index put
+ /_tmp _tmp 1 add pt
+ }repeat
+ exch pop
+}def
+/setImageParms{
+ 1 8 2 index 0 0 1 0 0 _imageMatrix astore
+}def
+/linealFill{
+ 0 0 1 1 rectfill
+}def
+/testCMYKColorThrough{
+ gsave
+ setcmykcolor currentcmykcolor
+ grestore
+ add add add 0 ne
+}def
+/expandOne {
+ /_tmp xp
+ dup type /stringtype ne{
+ _tmp string
+ exch
+ dup 0 ne{
+ 255 mul cvi
+ 0 1 _tmp 1 sub{
+ 3 copy
+ exch put pop
+ }for
+ }if
+ pop
+ }if
+}def
+/expandColor{
+ /_channels xp
+ /_len xp
+ _channels{
+ _len expandOne _channels 1 roll
+ }repeat
+}def
+/blendColor{
+
+ _color{
+ _rgbRamp _producingSeps not and _forceToCMYK not and{
+ _redData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+ _greenData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+ _blueData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+ /setrgbcolor cvx
+ }{
+ _cyanData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+ _magentaData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+ _yellowData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+ _blackData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+
+ _spotColor{
+ _rampSD begin
+ /_rampSD cvx /begin cvx
+
+ spot1 begin
+ tintImage dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255- /exch cvx /get cvx
+ }{
+ dup null ne{
+ name type /nametype ne{
+ 1 exch sub
+ }if
+ }if
+ }ifelse
+ end
+ /spot1 cvx /tintValue 3 -1 /roll cvx /put cvx
+
+ spot2 begin
+ tintImage dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255- /exch cvx /get cvx
+ }{
+ dup null ne{
+ name type /nametype ne{
+ 1 exch sub
+ }if
+ }if
+ }ifelse
+ end
+ /spot2 cvx /tintValue 3 -1 /roll cvx /put cvx
+ /end cvx
+ end
+ /_rampSD cvx
+ /nsetcustomcolor cvx
+ }{
+ /setcmykcolor cvx
+ }ifelse
+ }ifelse
+ }{
+ _blackData dup type /stringtype eq{
+ /_ndx cvx /get cvx _d255 /exch cvx /get cvx
+ }if
+
+ _enabledSmoothShade{
+ 1 /exch cvx /sub cvx 0 0 0 4 -1 /roll cvx /setcmykcolor cvx
+ }{
+ /setgray cvx
+ }ifelse
+ }ifelse
+}def
+/useRectImage{
+ _subSampleOK _enabledSmoothShade not and{
+ {
+ mark
+ 0 1 dtransform atan cvi 90 mod 0 eq
+ 1 0 dtransform atan cvi 90 mod 0 eq
+ } stopped
+ {
+ cleartomark
+ false
+ }
+ {
+ and exch pop
+ } ifelse
+ }{
+ false
+ }ifelse
+}def
+/linealImage{
+ _noImage{
+ rectImage
+ }{
+ _producingSeps{
+ AGM_Gradient_Sep/AGM_Gradient_Sep_private get
+ /rampImage get exec
+ }{
+ useRectImage{
+ rectImage
+ }{
+ rampImage
+ }ifelse
+ }ifelse
+ }ifelse
+}def
+/linealRamp{
+ pushBSpace
+ _ramp{
+ linealImage
+ }{
+ linealFill
+ }ifelse
+ popBSpace
+ /_rampIndex _rampIndex 1 sub pt
+ _rampIndex 0 gt{
+ getRampData
+ }if
+}def
+/radialGrad{
+ /_usingShells currentoverprint _producingSeps and _usingShells or pt
+ /_firstShell true pt
+ _enabledSmoothShade not{
+ currentoverprint _producingSeps and{
+
+ newpath
+ clippath pathbbox
+ 1 add 4 1 roll
+ 1 add 4 1 roll
+ 1 sub 4 1 roll
+ 1 sub 4 1 roll
+ _bbox astore pop
+
+ newpath
+ _bbox 0 get _bbox 1 get moveto
+ _bbox 2 get _bbox 1 get lineto
+ _bbox 2 get _bbox 3 get lineto
+ _bbox 0 get _bbox 3 get lineto
+ closepath
+ 6 copy
+ gsave _bUMatrix astore concat
+ 1 0 moveto 0 0 1 0 360 arc closepath
+ eoclip fill
+ popBSpace
+ }{
+ fill
+ }ifelse
+ }if
+ pushBSpace
+
+ _radHilite{
+ _xHi _yHi _bUMatrix idtransform /_yHi xp /_xHi xp
+ _rampPoint 1 lt{
+ 1 _rampPoint sub dup _xHi mul exch _yHi mul translate
+ }if
+ }if
+ _rampIndex{
+ radialRamp
+ /_rampIndex _rampIndex 1 sub pt
+ _rampIndex 0 gt{
+ getRampData
+ }if
+ }repeat
+
+ popBSpace
+
+}def
+/getNSamples{
+ 0 exch
+ {
+ dup type /stringtype eq{
+ length exch pop exit
+ }if
+ pop
+ }forall
+ dup 0 eq{
+ pop 1
+ }if
+}def
+/getRampData{
+ /_rampType gMark pt
+ /_color _rampType 0 gt pt
+ /_ccRGB _rampType 5 eq _rampType 6 eq or pt
+ /_rgbRamp _rampType 4 eq _ccRGB or pt
+ /_ccProcess _rampType 2 eq _rampType 3 eq or pt
+ _producingSeps{
+ _rampSD initSpotDict
+ /_spotColor _ccProcess _ccRGB or pt
+ }{
+ /_spotColor false pt
+ }ifelse
+ /_ramp true pt
+ 100 div /_rampPoint xp
+ 100 div /_midPoint xp
+
+ dup /_colorStyle xp
+ _colorStyle 0 eq{
+ 2
+ }{
+ _colorStyle 1 eq{
+ 5
+ }{
+ _colorStyle 2 eq{
+ 8
+ }{
+ _colorStyle 3 eq{
+ _producingSeps{
+ _rampSD /spot1 get begin
+ /name 3 index def
+ /spot_K 4 index def
+ /spot_Y 5 index def
+ /spot_M 6 index def
+ /spot_C 7 index def
+ end
+ }if
+ 7
+ }{
+ _producingSeps{
+ _rampSD/spot1 get begin
+ /name 4 index def
+ /spot_K 8 index def
+ /spot_Y 9 index def
+ /spot_M 10 index def
+ /spot_C 11 index def
+ end
+ }if
+ 11
+ } ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ /_tmp xp
+ _tmp index 100 div /_endPoint xp
+
+ _gradType 1 eq{
+ _tmp 1 add index 100 div /_midPoint xp
+ }if
+
+ _producingSeps{
+ _tmp 2 add index /_nextColorStyle xp
+ _nextColorStyle 3 eq{
+ /_tmp _tmp 4 add pt
+ _tmp index dup
+ _rampSD/spot1 get /name get ne{
+ _rampSD /spot2 get begin
+ /name xd
+ /spot_K _tmp 2 add index def
+ /spot_Y _tmp 3 add index def
+ /spot_M _tmp 4 add index def
+ /spot_C _tmp 5 add index def
+ end
+ }{
+ pop
+ }ifelse
+ }if
+ _nextColorStyle 4 eq{
+ /_tmp _tmp 5 add pt
+ _tmp index dup
+ _rampSD/spot1 get /name get ne{
+ _rampSD /spot2 get begin
+ /name xd
+ /spot_K _tmp 5 add index def
+ /spot_Y _tmp 6 add index def
+ /spot_M _tmp 7 add index def
+ /spot_C _tmp 8 add index def
+ end
+ }{
+ pop
+ }ifelse
+ }if
+ }if
+ _rampType 3 eq _rampType 6 eq or{
+ /_tint2Data gMark pt
+ }if
+ _ccProcess _ccRGB or{
+ /_tint1Data gMark pt
+ }if
+ _rgbRamp{
+ /_blueData gMark pt
+ /_greenData gMark pt
+ /_redData gMark pt
+ }if
+
+ _producingSeps{
+ _ccProcess _ccRGB or{
+ _rampType 3 eq _rampType 6 eq or{
+ _rampSD /spot2 get begin
+ /tintImage _gradType 0 eq{
+ _tint2Data
+ }{
+ _tint1Data
+ }ifelse
+ def
+ name null eq{
+ /name /Black def
+ }if
+ end
+ }if
+ _rampSD /spot1 get begin
+ /tintImage _gradType 0 eq _rampType 2 eq or _rampType 5 eq or{
+ _tint1Data
+ }{
+ _tint2Data
+ }ifelse
+ def
+ _rampType 2 eq _rampType 5 eq or{
+ name null eq{
+ /name _rampSD/spot2 get /name get def
+ /spot_C _rampSD/spot2 get /spot_C get def
+ /spot_M _rampSD/spot2 get /spot_M get def
+ /spot_Y _rampSD/spot2 get /spot_Y get def
+ /spot_K _rampSD/spot2 get /spot_K get def
+ _rampSD/spot2 get /name null put
+ }if
+ }{
+ name null eq{
+ /name /Black def
+ }if
+ }ifelse
+ end
+ }if
+ }if
+ /_blackData gMark pt
+ _rampType 0 gt{
+ counttomark 4 add -3 roll
+ /_yellowData xp
+ /_magentaData xp
+ /_cyanData xp
+ }if
+ _ramp{
+ /_nSamples
+ [
+ _rampType 0 eq {_blackData}if
+ _rampType 1 eq {_cyanData _magentaData _yellowData _blackData}if
+ _rampType 2 eq {_cyanData _magentaData _yellowData _blackData _tint1Data}if
+ _rampType 3 eq {_cyanData _magentaData _yellowData _blackData _tint1Data _tint2Data}if
+ _rampType 4 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData}if
+ _rampType 5 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data}if
+ _rampType 6 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data _tint2Data}if
+ ] getNSamples pt
+ _enabledSmoothShade not {/_ramp _nSamples 1 gt pt} if
+ } if
+
+ setCStop
+}def
+/rectImage{
+ gsave
+ /_sInc 1 pt
+ /_bInc 1 _nSamples div pt
+ /_nSubSamples _nSamples pt
+ /_optimize false pt
+
+ _subSampleOK{
+ /_uRampLen 1 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt pt
+ /_pChange _uRampLen 0 eq{0}{_nSamples _uRampLen div}ifelse pt
+
+ _pChange .5 gt dup /_optimize xp{
+ /_nSubSamples _uRampLen 2 div round cvi dup 1 le{pop 2}if pt
+ /_bInc 1 _nSubSamples div pt
+ /_sInc _nSamples 1 sub _nSubSamples 1 sub div pt
+ }if
+ }if
+ 0
+ _nSubSamples
+ [
+ /dup cvx
+ _optimize {
+ /round cvx /cvi cvx
+ } if
+ /_ndx /exch cvx /pt cvx
+ blendColor
+ 0 0 _bInc 1 /rectfill cvx
+ _bInc 0 /translate cvx
+ _sInc /add cvx
+ ] cvx
+ bind
+ repeat
+ pop
+ _spotColor{
+ nsetcustomcolorend
+ }if
+ grestore
+}def
+/radialInit{
+ /_nRadSamples _nSamples dup 0 eq{pop 1}if pt
+ /_sInc -1 pt
+ /_rampLen _rampPoint _endPoint sub pt
+ /_bInc _rampLen _nSamples div neg pt
+ /_optimize false pt
+ _subSampleOK{
+ /_uRampLen
+ _rampLen 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
+ 0 _rampLen dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
+ 2 copy lt{
+ exch
+ }if pop
+ pt
+ /_pChange
+ _uRampLen 0 eq{
+ 0
+ }{
+ _nSamples _uRampLen div
+ }ifelse
+ pt
+ _pChange .5 gt dup /_optimize xp{
+ /_nRadSamples _uRampLen 2 div round cvi dup 1 le{pop 2}if pt
+ /_bInc _rampLen _nRadSamples div neg pt
+ /_sInc _nSamples 1 sub _nRadSamples 1 sub div neg pt
+ }if
+ }if
+ _radHilite{
+ /_xBCInc _xHi _rampLen mul _nRadSamples div pt
+ /_yBCInc _yHi _rampLen mul _nRadSamples div pt
+ }if
+}def
+/radialRamp{
+ _enabledSmoothShade{
+ fillRamp
+ }{
+ /_saveMatrix _saveMatrix currentmatrix def
+
+ radialInit
+
+ %
+ %
+ true
+ _producingSeps _rgbRamp not and{
+ _nSamples 1 gt{
+ pop
+ /_ndx 0 pt
+ [blendColor] cvx exec
+ currentInkN
+ /_ndx _nSamples 1 sub pt
+ [blendColor] cvx exec
+ currentInkN
+ or
+ }if
+ }if
+ {
+ _rampPoint
+
+ _nSamples 1 sub
+
+ _nRadSamples
+ [
+ /dup cvx
+
+ _optimize{
+ /round cvx /cvi cvx
+ }if
+
+ /_ndx /exch cvx /pt cvx
+
+ _usingShells{
+ /_firstShell cvx{
+ /_firstShell false pt
+ }{
+ 0 0 3 index 360 0 arcn fill
+ }/ifelse cvx
+ }if
+
+ blendColor
+
+ _usingShells{
+ 0 0 3 /index cvx 0 360 /arc cvx
+ }{
+ 0 0 3 /index cvx 0 360 /arc cvx /fill cvx
+ }ifelse
+
+ /exch cvx _bInc /add cvx /exch cvx
+
+ _sInc /add cvx
+
+ _radHilite{
+ _xBCInc _yBCInc /translate cvx
+ }if
+ ] cvx bind
+ repeat
+
+ pop pop
+ }{
+ _usingShells{
+ 0 0 _rampPoint 360 0 arcn fill
+ }if
+ }ifelse
+
+ _saveMatrix setmatrix
+
+ _radHilite{
+ _xHi _rampLen mul _yHi _rampLen mul translate
+ }if
+
+ _usingShells _rampIndex 1 eq and{
+ fill
+ }if
+
+ _spotColor{
+ nsetcustomcolorend
+ }if
+ }ifelse
+}def
+end
+end
+defaultpacking setpacking
+%%EndResource
+%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0
+userdict /Adobe_ColorImage_AI6 known not
+{
+ userdict /Adobe_ColorImage_AI6 53 dict put
+} if
+userdict /Adobe_ColorImage_AI6 get begin
+/initialize {
+ Adobe_ColorImage_AI6 begin
+ Adobe_ColorImage_AI6 {
+ dup type /arraytype eq {
+ dup xcheck {
+ bind
+ } if
+ } if
+ pop pop
+ } forall
+} def
+/terminate { end } def
+currentdict /Adobe_ColorImage_AI6_Vars known not {
+ /Adobe_ColorImage_AI6_Vars 41 dict def
+} if
+Adobe_ColorImage_AI6_Vars begin
+ /plateindex -1 def
+ /_newproc null def
+ /_proc1 null def
+ /_proc2 null def
+ /sourcearray 4 array def
+ /_ptispace null def
+ /_ptiname null def
+ /_pti0 0 def
+ /_pti1 0 def
+ /_ptiproc null def
+ /_ptiscale 0 def
+ /_pticomps 0 def
+ /_ptibuf 0 string def
+ /_gtigray 0 def
+ /_cticmyk null def
+ /_rtirgb null def
+ /XIEnable true def
+ /XIType 0 def
+ /XIEncoding 0 def
+ /XICompression 0 def
+ /XIChannelCount 0 def
+ /XIBitsPerPixel 0 def
+ /XIImageHeight 0 def
+ /XIImageWidth 0 def
+ /XIImageMatrix null def
+ /XIRowBytes 0 def
+ /XIFile null def
+ /XIBuffer1 null def
+ /XIBuffer2 null def
+ /XIBuffer3 null def
+ /XIDataProc null def
+ /XIColorSpace /DeviceGray def
+ /XIColorValues 0 def
+ /XIPlateList false def
+end
+/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def
+/ci6image systemdict /image get def
+/ci6curtransfer systemdict /currenttransfer get def
+/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def
+/ci6foureq {
+ 4 index ne {
+ pop pop pop false
+ }{
+ 4 index ne {
+ pop pop false
+ }{
+ 4 index ne {
+ pop false
+ }{
+ 4 index eq
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6testplate {
+ Adobe_ColorImage_AI6_Vars begin
+ /plateindex -1 def
+ /setcmykcolor where {
+ pop
+ gsave
+ 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
+ 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
+ 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
+ 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
+ grestore
+ 1 0 0 0 ci6foureq {
+ /plateindex 0 def
+ }{
+ 0 1 0 0 ci6foureq {
+ /plateindex 1 def
+ }{
+ 0 0 1 0 ci6foureq {
+ /plateindex 2 def
+ }{
+ 0 0 0 1 ci6foureq {
+ /plateindex 3 def
+ }{
+ 0 0 0 0 ci6foureq {
+ /plateindex 5 def
+ } if
+ } ifelse
+ } ifelse
+ } ifelse
+ } ifelse
+ pop pop pop pop
+ } if
+ plateindex
+ end
+} def
+/ci6concatprocs {
+ /packedarray where {
+ pop dup type /packedarraytype eq 2 index type
+ /packedarraytype eq or
+ }{
+ false
+ } ifelse
+ {
+ /_proc2 exch cvlit def
+ /_proc1 exch cvlit def
+ _proc1 aload pop
+ _proc2 aload pop
+ _proc1 length
+ _proc2 length add
+ packedarray cvx
+ }{
+ /_proc2 exch cvlit def
+ /_proc1 exch cvlit def
+ /_newproc _proc1 length _proc2 length add array def
+ _newproc 0 _proc1 putinterval
+ _newproc _proc1 length _proc2 putinterval
+ _newproc cvx
+ } ifelse
+} def
+/ci6istint {
+ type /arraytype eq
+} def
+/ci6isspot {
+ dup type /arraytype eq {
+ dup length 1 sub get /Separation eq
+ }{
+ pop false
+ } ifelse
+} def
+/ci6spotname {
+ dup ci6isspot {dup length 2 sub get}{pop ()} ifelse
+} def
+/ci6altspace {
+ aload pop pop pop ci6colormake
+} def
+/ci6numcomps {
+ dup /DeviceGray eq {
+ pop 1
+ }{
+ dup /DeviceRGB eq {
+ pop 3
+ }{
+ /DeviceCMYK eq {
+ 4
+ }{
+ 1
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6marksplate {
+ dup /DeviceGray eq {
+ pop plateindex 3 eq
+ }{
+ dup /DeviceRGB eq {
+ pop plateindex 5 ne
+ }{
+ dup /DeviceCMYK eq {
+ pop plateindex 5 ne
+ }{
+ dup ci6isspot {
+ /findcmykcustomcolor where {
+ pop
+ dup length 2 sub get
+ 0.1 0.1 0.1 0.1 5 -1 roll
+ findcmykcustomcolor 1 setcustomcolor
+ systemdict /currentgray get exec
+ 1 ne
+ }{
+ pop plateindex 5 ne
+ } ifelse
+ }{
+ pop plateindex 5 ne
+ } ifelse
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6colormake {
+ dup ci6numcomps
+ exch 1 index 2 add 1 roll
+ dup 1 eq {pop}{array astore} ifelse
+ exch
+} def
+/ci6colorexpand {
+ dup ci6spotname exch
+ dup ci6istint {
+ ci6altspace
+ exch 4 1 roll
+ }{
+ 1 3 1 roll
+ } ifelse
+} def
+/ci6colortint {
+ dup /DeviceGray eq {
+ 3 1 roll 1 exch sub mul 1 exch sub exch
+ }{
+ dup /DeviceRGB eq {
+ 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch
+ }{
+ dup /DeviceCMYK eq {
+ 3 1 roll {1 index mul exch} forall pop 4 array astore exch
+ }{
+ 3 1 roll mul exch
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6colortocmyk {
+ dup /DeviceGray eq {
+ pop 1 exch sub 0 0 0 4 -1 roll 4 array astore
+ }{
+ dup /DeviceRGB eq {
+ pop aload pop _rgbtocmyk 4 array astore
+ }{
+ dup /DeviceCMYK eq {
+ pop
+ }{
+ ci6altspace ci6colortint ci6colortocmyk
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6makeimagedict {
+ 7 dict begin
+ /ImageType 1 def
+ /Decode exch def
+ /DataSource exch def
+ /ImageMatrix exch def
+ /BitsPerComponent exch def
+ /Height exch def
+ /Width exch def
+ currentdict end
+} def
+/ci6stringinvert {
+ 0 1 2 index length 1 sub {
+ dup 2 index exch get 255 exch sub 2 index 3 1 roll put
+ } for
+} def
+/ci6stringknockout {
+ 0 1 2 index length 1 sub {
+ 255 2 index 3 1 roll put
+ } for
+} def
+/ci6stringapply {
+ 0 1 4 index length 1 sub {
+ dup
+ 4 index exch get
+ 3 index 3 1 roll
+ 3 index exec
+ } for
+ pop exch pop
+} def
+/ci6walkrgbstring {
+ 0 3 index
+ dup length 1 sub 0 3 3 -1 roll {
+ 3 getinterval {} forall
+ 5 index exec
+ 3 index
+ } for
+
+ 5 {pop} repeat
+} def
+/ci6walkcmykstring
+{
+ 0 3 index
+ dup length 1 sub 0 4 3 -1 roll {
+ 4 getinterval {} forall
+
+ 6 index exec
+
+ 3 index
+
+ } for
+
+ 5 { pop } repeat
+
+} def
+/ci6putrgbtograystr
+{
+ .11 mul exch
+
+ .59 mul add exch
+
+ .3 mul add
+
+ cvi 3 copy put
+
+ pop 1 add
+} def
+/ci6putcmyktograystr
+{
+ exch .11 mul add
+
+ exch .59 mul add
+
+ exch .3 mul add
+
+ dup 255 gt { pop 255 } if
+
+ 255 exch sub cvi 3 copy put
+
+ pop 1 add
+} def
+/ci6rgbtograyproc {
+ Adobe_ColorImage_AI6_Vars begin
+ sourcearray 0 get exec
+ XIBuffer3
+ dup 3 1 roll
+
+ /ci6putrgbtograystr load exch
+ ci6walkrgbstring
+ end
+} def
+/ci6cmyktograyproc {
+ Adobe_ColorImage_AI6_Vars begin
+ sourcearray 0 get exec
+ XIBuffer3
+ dup 3 1 roll
+
+ /ci6putcmyktograystr load exch
+ ci6walkcmykstring
+ end
+} def
+/ci6separatecmykproc {
+ Adobe_ColorImage_AI6_Vars begin
+ sourcearray 0 get exec
+
+ XIBuffer3
+
+ 0 2 index
+
+ plateindex 4 2 index length 1 sub {
+ get 255 exch sub
+
+ 3 copy put pop 1 add
+
+ 2 index
+ } for
+ pop pop exch pop
+ end
+} def
+
+/ci6compositeimage {
+ dup 1 eq {
+ pop pop image
+ }{
+ /ci6colorimage load null ne {
+ ci6colorimage
+ }{
+ 3 1 roll pop
+ sourcearray 0 3 -1 roll put
+ 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load
+ image
+ } ifelse
+ } ifelse
+} def
+/ci6knockoutimage {
+ gsave
+ 0 ci6curtransfer exec 1 ci6curtransfer exec
+ eq {
+ 0 ci6curtransfer exec 0.5 lt
+ }{
+ 0 ci6curtransfer exec 1 ci6curtransfer exec gt
+ } ifelse
+ {{pop 0}}{{pop 1}} ifelse
+ systemdict /settransfer get exec
+ ci6compositeimage
+ grestore
+} def
+/ci6drawimage {
+ ci6testplate -1 eq {
+ pop ci6compositeimage
+ }{
+ dup type /arraytype eq {
+ dup length plateindex gt {plateindex get}{pop false} ifelse
+ }{
+ {
+ true
+ }{
+ dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse
+ } ifelse
+ } ifelse
+ {
+ dup 1 eq {
+ pop pop ci6image
+ }{
+ dup 3 eq {
+ ci6compositeimage
+ }{
+ pop pop
+ sourcearray 0 3 -1 roll put
+ /ci6separatecmykproc load
+ ci6image
+ } ifelse
+ } ifelse
+ }{
+ ci6curoverprint {
+ 7 {pop} repeat
+ }{
+ ci6knockoutimage
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6proctintimage {
+ /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store
+ /_pticomps _ptispace ci6numcomps store
+ /_ptiscale _pti1 _pti0 sub store
+ level2? {
+ _ptiname length 0 gt version cvr 2012 ge and {
+ [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace
+ [_pti0 _pti1] ci6makeimagedict ci6image
+ }{
+ [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace
+ [0 255] ci6makeimagedict ci6image
+ } ifelse
+ }{
+ _pticomps 1 eq {
+ {
+ dup
+ {
+ 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put
+ } ci6stringapply
+ } ci6concatprocs ci6image
+ }{
+ {
+ dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse
+ _ptibuf {
+ exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc
+ _pticomps 2 add -2 roll
+ _pticomps 1 sub -1 0 {
+ 1 index add 2 index exch
+ 5 -1 roll
+ 255 mul cvi put
+ } for
+ pop pop
+ } ci6stringapply
+ } ci6concatprocs false _pticomps
+ /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse
+ } ifelse
+ } ifelse
+} def
+/ci6graytintimage {
+ /_gtigray 5 -1 roll store
+ {1 _gtigray sub mul 1 exch sub} 4 1 roll
+ /DeviceGray ci6proctintimage
+} def
+/ci6cmyktintimage {
+ /_cticmyk 5 -1 roll store
+ {_cticmyk {1 index mul exch} forall pop} 4 1 roll
+ /DeviceCMYK ci6proctintimage
+} def
+/ci6rgbtintimage {
+ /_rtirgb 5 -1 roll store
+ {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll
+ /DeviceRGB ci6proctintimage
+} def
+/ci6tintimage {
+ ci6testplate -1 eq {
+ ci6colorexpand
+ 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll
+ dup /DeviceGray eq {
+ pop ci6graytintimage
+ }{
+ dup /DeviceRGB eq {
+ pop ci6rgbtintimage
+ }{
+ pop ci6cmyktintimage
+ } ifelse
+ } ifelse
+ }{
+ dup ci6marksplate {
+ plateindex 5 lt {
+ ci6colortocmyk plateindex get
+ dup 0 eq ci6curoverprint and {
+ 7 {pop} repeat
+ }{
+ 1 exch sub
+ exch {1 0}{0 1} ifelse () ci6graytintimage
+ } ifelse
+ }{
+ pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage
+ } ifelse
+ }{
+ ci6curoverprint {
+ 8 {pop} repeat
+ }{
+ pop pop pop
+ {pop 1} 0 1 () /DeviceGray ci6proctintimage
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/XINullImage {
+} def
+/XIImageMask {
+ XIImageWidth XIImageHeight false
+ [XIImageWidth 0 0 XIImageHeight neg 0 0]
+ /XIDataProc load
+ imagemask
+} def
+/XIImageTint {
+ XIImageWidth XIImageHeight XIBitsPerPixel
+ [XIImageWidth 0 0 XIImageHeight neg 0 0]
+ /XIDataProc load
+ XIType 3 eq XIColorValues XIColorSpace ci6tintimage
+} def
+/XIImage {
+ XIImageWidth XIImageHeight XIBitsPerPixel
+ [XIImageWidth 0 0 XIImageHeight neg 0 0]
+ /XIDataProc load
+ false XIChannelCount XIPlateList ci6drawimage
+} def
+/XG {
+ pop pop
+} def
+/XF {
+ 13 {pop} repeat
+} def
+/Xh {
+ Adobe_ColorImage_AI6_Vars begin
+ gsave
+ /XIType exch def
+ /XIImageHeight exch def
+ /XIImageWidth exch def
+ /XIImageMatrix exch def
+ 0 0 moveto
+ XIImageMatrix concat
+ XIImageWidth XIImageHeight scale
+
+ /_lp /null ddef
+ _fc
+ /_lp /imagemask ddef
+ end
+} def
+/XH {
+ Adobe_ColorImage_AI6_Vars begin
+ grestore
+ end
+} def
+/XIEnable {
+ Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put
+} def
+/XC {
+ Adobe_ColorImage_AI6_Vars begin
+ ci6colormake
+ /XIColorSpace exch def
+ /XIColorValues exch def
+ end
+} def
+/XIPlates {
+ Adobe_ColorImage_AI6_Vars begin
+ /XIPlateList exch def
+ end
+} def
+/XI
+{
+ Adobe_ColorImage_AI6_Vars begin
+ gsave
+ /XIType exch def
+ cvi dup
+ 256 idiv /XICompression exch store
+ 256 mod /XIEncoding exch store
+ pop pop
+ /XIChannelCount exch def
+ /XIBitsPerPixel exch def
+ /XIImageHeight exch def
+ /XIImageWidth exch def
+ pop pop pop pop
+ /XIImageMatrix exch def
+ XIBitsPerPixel 1 eq {
+ XIImageWidth 8 div ceiling cvi
+ }{
+ XIImageWidth XIChannelCount mul
+ } ifelse
+ /XIRowBytes exch def
+ XIEnable {
+ /XIBuffer3 XIImageWidth string def
+ XICompression 0 eq {
+ /XIBuffer1 XIRowBytes string def
+ XIEncoding 0 eq {
+ {currentfile XIBuffer1 readhexstring pop}
+ }{
+ {currentfile XIBuffer1 readstring pop}
+ } ifelse
+ }{
+ /XIBuffer1 256 string def
+ /XIBuffer2 XIRowBytes string def
+ {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if}
+ /ASCII85Decode filter /DCTDecode filter
+ /XIFile exch def
+ {XIFile XIBuffer2 readstring pop}
+ } ifelse
+ /XIDataProc exch def
+
+ XIType 1 ne {
+ 0 setgray
+ } if
+ XIType 1 eq {
+ XIImageMask
+ }{
+ XIType 2 eq XIType 3 eq or {
+ XIImageTint
+ }{
+ XIImage
+ } ifelse
+ } ifelse
+ }{
+ XINullImage
+ } ifelse
+ /XIPlateList false def
+ grestore
+ end
+} def
+end
+%%EndProcSet
+%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0
+%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog)
+%%Version: 1.3 0
+%%CreationDate: (3/7/1994) ()
+%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved)
+currentpacking true setpacking
+userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin
+put
+/_?cmyk false def
+/_eo false def
+/_lp /none def
+/_pf
+{
+} def
+/_ps
+{
+} def
+/_psf
+{
+} def
+/_pss
+{
+} def
+/_pjsf
+{
+} def
+/_pjss
+{
+} def
+/_pola 0 def
+/_doClip 0 def
+/cf currentflat def
+/_lineorientation 0 def
+/_charorientation 0 def
+/_yokoorientation 0 def
+/_tm matrix def
+/_renderStart
+[
+/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
+] def
+/_renderEnd
+[
+null null null null /i1 /i1 /i1 /i1
+] def
+/_render -1 def
+/_shift [0 0] def
+/_ax 0 def
+/_ay 0 def
+/_cx 0 def
+/_cy 0 def
+/_leading
+[
+0 0
+] def
+/_ctm matrix def
+/_mtx matrix def
+/_sp 16#020 def
+/_hyphen (-) def
+/_fontSize 0 def
+/_fontAscent 0 def
+/_fontDescent 0 def
+/_fontHeight 0 def
+/_fontRotateAdjust 0 def
+/Ss 256 string def
+Ss 0 (fonts/) putinterval
+/_cnt 0 def
+/_scale [1 1] def
+/_nativeEncoding 0 def
+/_useNativeEncoding 0 def
+/_tempEncode 0 def
+/_pntr 0 def
+/_tDict 2 dict def
+/_hfname 100 string def
+/_hffound false def
+/Tx
+{
+} def
+/Tj
+{
+} def
+/CRender
+{
+} def
+/_AI3_savepage
+{
+} def
+/_gf null def
+/_cf 4 array def
+/_rgbf 3 array def
+/_if null def
+/_of false def
+/_fc
+{
+} def
+/_gs null def
+/_cs 4 array def
+/_rgbs 3 array def
+/_is null def
+/_os false def
+/_sc
+{
+} def
+/_pd 1 dict def
+/_ed 15 dict def
+/_pm matrix def
+/_fm null def
+/_fd null def
+/_fdd null def
+/_sm null def
+/_sd null def
+/_sdd null def
+/_i null def
+/_lobyte 0 def
+/_hibyte 0 def
+/_cproc null def
+/_cscript 0 def
+/_hvax 0 def
+/_hvay 0 def
+/_hvwb 0 def
+/_hvcx 0 def
+/_hvcy 0 def
+/_bitfont null def
+/_bitlobyte 0 def
+/_bithibyte 0 def
+/_bitkey null def
+/_bitdata null def
+/_bitindex 0 def
+/discardSave null def
+/buffer 256 string def
+/beginString null def
+/endString null def
+/endStringLength null def
+/layerCnt 1 def
+/layerCount 1 def
+/perCent (%) 0 get def
+/perCentSeen? false def
+/newBuff null def
+/newBuffButFirst null def
+/newBuffLast null def
+/clipForward? false def
+end
+userdict /Adobe_Illustrator_AI5 known not {
+ userdict /Adobe_Illustrator_AI5 100 dict put
+} if
+userdict /Adobe_Illustrator_AI5 get begin
+/initialize
+{
+ Adobe_Illustrator_AI5 dup begin
+ Adobe_Illustrator_AI5_vars begin
+ /_aicmykps where {pop /_?cmyk _aicmykps def}if
+ discardDict
+ {
+ bind pop pop
+ } forall
+ dup /nc get begin
+ {
+ dup xcheck 1 index type /operatortype ne and
+ {
+ bind
+ } if
+ pop pop
+ } forall
+ end
+ newpath
+} def
+/terminate
+{
+ end
+ end
+} def
+/_
+null def
+/ddef
+{
+ Adobe_Illustrator_AI5_vars 3 1 roll put
+} def
+/xput
+{
+ dup load dup length exch maxlength eq
+ {
+ dup dup load dup
+ length 2 mul dict copy def
+ } if
+ load begin
+ def
+ end
+} def
+/npop
+{
+ {
+ pop
+ } repeat
+} def
+/hswj
+{
+ dup stringwidth 3 2 roll
+ {
+ _hvwb eq { exch _hvcx add exch _hvcy add } if
+ exch _hvax add exch _hvay add
+ } cforall
+} def
+/vswj
+{
+ 0 0 3 -1 roll
+ {
+ dup 255 le
+ _charorientation 1 eq
+ and
+ {
+ dup cstring stringwidth 5 2 roll
+ _hvwb eq { exch _hvcy sub exch _hvcx sub } if
+ exch _hvay sub exch _hvax sub
+ 4 -1 roll sub exch
+ 3 -1 roll sub exch
+ }
+ {
+ _hvwb eq { exch _hvcy sub exch _hvcx sub } if
+ exch _hvay sub exch _hvax sub
+ _fontHeight sub
+ } ifelse
+ } cforall
+} def
+/swj
+{
+ 6 1 roll
+ /_hvay exch ddef
+ /_hvax exch ddef
+ /_hvwb exch ddef
+ /_hvcy exch ddef
+ /_hvcx exch ddef
+ _lineorientation 0 eq { hswj } { vswj } ifelse
+} def
+/sw
+{
+ 0 0 0 6 3 roll swj
+} def
+/vjss
+{
+ 4 1 roll
+ {
+ dup cstring
+ dup length 1 eq
+ _charorientation 1 eq
+ and
+ {
+ -90 rotate
+ currentpoint
+ _fontRotateAdjust add
+ moveto
+ gsave
+ false charpath currentpoint
+ 5 index setmatrix stroke
+ grestore
+ _fontRotateAdjust sub
+ moveto
+ _sp eq
+ {
+ 5 index 5 index rmoveto
+ } if
+ 2 copy rmoveto
+ 90 rotate
+ }
+ {
+ currentpoint
+ _fontHeight sub
+ 5 index sub
+ 3 index _sp eq
+ {
+ 9 index sub
+ } if
+
+ currentpoint
+ exch 4 index stringwidth pop 2 div sub
+ exch _fontAscent sub
+ moveto
+
+ gsave
+ 2 index false charpath
+ 6 index setmatrix stroke
+ grestore
+
+ moveto pop pop
+ } ifelse
+ } cforall
+ 6 npop
+} def
+/hjss
+{
+ 4 1 roll
+ {
+ dup cstring
+ gsave
+ false charpath currentpoint
+ 5 index setmatrix stroke
+ grestore
+ moveto
+ _sp eq
+ {
+ 5 index 5 index rmoveto
+ } if
+ 2 copy rmoveto
+ } cforall
+ 6 npop
+} def
+/jss
+{
+ _lineorientation 0 eq { hjss } { vjss } ifelse
+} def
+/ss
+{
+ 0 0 0 7 3 roll jss
+} def
+/vjsp
+{
+ 4 1 roll
+ {
+ dup cstring
+ dup length 1 eq
+ _charorientation 1 eq
+ and
+ {
+ -90 rotate
+ currentpoint
+ _fontRotateAdjust add
+ moveto
+ false charpath
+ currentpoint
+ _fontRotateAdjust sub
+ moveto
+ _sp eq
+ {
+ 5 index 5 index rmoveto
+ } if
+ 2 copy rmoveto
+ 90 rotate
+ }
+ {
+ currentpoint
+ _fontHeight sub
+ 5 index sub
+ 3 index _sp eq
+ {
+ 9 index sub
+ } if
+
+ currentpoint
+ exch 4 index stringwidth pop 2 div sub
+ exch _fontAscent sub
+ moveto
+
+ 2 index false charpath
+
+ moveto pop pop
+ } ifelse
+ } cforall
+ 6 npop
+} def
+/hjsp
+{
+ 4 1 roll
+ {
+ dup cstring
+ false charpath
+ _sp eq
+ {
+ 5 index 5 index rmoveto
+ } if
+ 2 copy rmoveto
+ } cforall
+ 6 npop
+} def
+/jsp
+{
+ matrix currentmatrix
+ _lineorientation 0 eq {hjsp} {vjsp} ifelse
+} def
+/sp
+{
+ matrix currentmatrix
+ 0 0 0 7 3 roll
+ _lineorientation 0 eq {hjsp} {vjsp} ifelse
+} def
+/pl
+{
+ transform
+ 0.25 sub round 0.25 add exch
+ 0.25 sub round 0.25 add exch
+ itransform
+} def
+/setstrokeadjust where
+{
+ pop true setstrokeadjust
+ /c
+ {
+ curveto
+ } def
+ /C
+ /c load def
+ /v
+ {
+ currentpoint 6 2 roll curveto
+ } def
+ /V
+ /v load def
+ /y
+ {
+ 2 copy curveto
+ } def
+ /Y
+ /y load def
+ /l
+ {
+ lineto
+ } def
+ /L
+ /l load def
+ /m
+ {
+ moveto
+ } def
+}
+{
+ /c
+ {
+ pl curveto
+ } def
+ /C
+ /c load def
+ /v
+ {
+ currentpoint 6 2 roll pl curveto
+ } def
+ /V
+ /v load def
+ /y
+ {
+ pl 2 copy curveto
+ } def
+ /Y
+ /y load def
+ /l
+ {
+ pl lineto
+ } def
+ /L
+ /l load def
+ /m
+ {
+ pl moveto
+ } def
+} ifelse
+/d
+{
+ setdash
+} def
+/cf
+{
+} def
+/i
+{
+ dup 0 eq
+ {
+ pop cf
+ } if
+ setflat
+} def
+/j
+{
+ setlinejoin
+} def
+/J
+{
+ setlinecap
+} def
+/M
+{
+ setmiterlimit
+} def
+/w
+{
+ setlinewidth
+} def
+/XR
+{
+ 0 ne
+ /_eo exch ddef
+} def
+/H
+{
+} def
+/h
+{
+ closepath
+} def
+/N
+{
+ _pola 0 eq
+ {
+ _doClip 1 eq
+ {
+ _eo {eoclip} {clip} ifelse /_doClip 0 ddef
+ } if
+ newpath
+ }
+ {
+ /CRender
+ {
+ N
+ } ddef
+ } ifelse
+} def
+/n
+{
+ N
+} def
+/F
+{
+ _pola 0 eq
+ {
+ _doClip 1 eq
+ {
+ gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
+ /_doClip 0 ddef
+ }
+ {
+ _pf
+ } ifelse
+ }
+ {
+ /CRender
+ {
+ F
+ } ddef
+ } ifelse
+} def
+/f
+{
+ closepath
+ F
+} def
+/S
+{
+ _pola 0 eq
+ {
+ _doClip 1 eq
+ {
+ gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
+ /_doClip 0 ddef
+ }
+ {
+ _ps
+ } ifelse
+ }
+ {
+ /CRender
+ {
+ S
+ } ddef
+ } ifelse
+} def
+/s
+{
+ closepath
+ S
+} def
+/B
+{
+ _pola 0 eq
+ {
+ _doClip 1 eq
+ gsave F grestore
+ {
+ gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
+ /_doClip 0 ddef
+ }
+ {
+ S
+ } ifelse
+ }
+ {
+ /CRender
+ {
+ B
+ } ddef
+ } ifelse
+} def
+/b
+{
+ closepath
+ B
+} def
+/W
+{
+ /_doClip 1 ddef
+} def
+/*
+{
+ count 0 ne
+ {
+ dup type /stringtype eq
+ {
+ pop
+ } if
+ } if
+ newpath
+} def
+/u
+{
+} def
+/U
+{
+} def
+/q
+{
+ _pola 0 eq
+ {
+ gsave
+ } if
+} def
+/Q
+{
+ _pola 0 eq
+ {
+ grestore
+ } if
+} def
+/*u
+{
+ _pola 1 add /_pola exch ddef
+} def
+/*U
+{
+ _pola 1 sub /_pola exch ddef
+ _pola 0 eq
+ {
+ CRender
+ } if
+} def
+/D
+{
+ pop
+} def
+/*w
+{
+} def
+/*W
+{
+} def
+/`
+{
+ /_i save ddef
+ clipForward?
+ {
+ nulldevice
+ } if
+ 6 1 roll 4 npop
+ concat pop
+ userdict begin
+ /showpage
+ {
+ } def
+ 0 setgray
+ 0 setlinecap
+ 1 setlinewidth
+ 0 setlinejoin
+ 10 setmiterlimit
+ [] 0 setdash
+ /setstrokeadjust where {pop false setstrokeadjust} if
+ newpath
+ 0 setgray
+ false setoverprint
+} def
+/~
+{
+ end
+ _i restore
+} def
+/_rgbtocmyk
+{
+ 3
+ {
+ 1 exch sub 3 1 roll
+ } repeat
+ 3 copy 1 4 1 roll
+ 3
+ {
+ 3 index 2 copy gt
+ {
+ exch
+ } if
+ pop 4 1 roll
+ } repeat
+ pop pop pop
+ 4 1 roll
+ 3
+ {
+ 3 index sub
+ 3 1 roll
+ } repeat
+ 4 -1 roll
+} def
+/setrgbfill
+{
+ _rgbf astore pop
+ /_fc
+ {
+ _lp /fill ne
+ {
+ _of setoverprint
+ _rgbf aload pop setrgbcolor
+ /_lp /fill ddef
+ } if
+ } ddef
+ /_pf
+ {
+ _fc
+ _eo {eofill} {fill} ifelse
+ } ddef
+ /_psf
+ {
+ _fc
+ hvashow
+ } ddef
+ /_pjsf
+ {
+ _fc
+ hvawidthshow
+ } ddef
+ /_lp /none ddef
+} def
+/setrgbstroke
+{
+ _rgbs astore pop
+ /_sc
+ {
+ _lp /stroke ne
+ {
+ _os setoverprint
+ _rgbs aload pop setrgbcolor
+ /_lp /stroke ddef
+ } if
+ } ddef
+ /_ps
+ {
+ _sc
+ stroke
+ } ddef
+ /_pss
+ {
+ _sc
+ ss
+ } ddef
+ /_pjss
+ {
+ _sc
+ jss
+ } ddef
+ /_lp /none ddef
+} def
+/O
+{
+ 0 ne
+ /_of exch ddef
+ /_lp /none ddef
+} def
+/R
+{
+ 0 ne
+ /_os exch ddef
+ /_lp /none ddef
+} def
+/g
+{
+ /_gf exch ddef
+ /_fc
+ {
+ _lp /fill ne
+ {
+ _of setoverprint
+ _gf setgray
+ /_lp /fill ddef
+ } if
+ } ddef
+ /_pf
+ {
+ _fc
+ _eo {eofill} {fill} ifelse
+ } ddef
+ /_psf
+ {
+ _fc
+ hvashow
+ } ddef
+ /_pjsf
+ {
+ _fc
+ hvawidthshow
+ } ddef
+ /_lp /none ddef
+} def
+/G
+{
+ /_gs exch ddef
+ /_sc
+ {
+ _lp /stroke ne
+ {
+ _os setoverprint
+ _gs setgray
+ /_lp /stroke ddef
+ } if
+ } ddef
+ /_ps
+ {
+ _sc
+ stroke
+ } ddef
+ /_pss
+ {
+ _sc
+ ss
+ } ddef
+ /_pjss
+ {
+ _sc
+ jss
+ } ddef
+ /_lp /none ddef
+} def
+/k
+{
+ _cf astore pop
+ /_fc
+ {
+ _lp /fill ne
+ {
+ _of setoverprint
+ _cf aload pop setcmykcolor
+ /_lp /fill ddef
+ } if
+ } ddef
+ /_pf
+ {
+ _fc
+ _eo {eofill} {fill} ifelse
+ } ddef
+ /_psf
+ {
+ _fc
+ hvashow
+ } ddef
+ /_pjsf
+ {
+ _fc
+ hvawidthshow
+ } ddef
+ /_lp /none ddef
+} def
+/K
+{
+ _cs astore pop
+ /_sc
+ {
+ _lp /stroke ne
+ {
+ _os setoverprint
+ _cs aload pop setcmykcolor
+ /_lp /stroke ddef
+ } if
+ } ddef
+ /_ps
+ {
+ _sc
+ stroke
+ } ddef
+ /_pss
+ {
+ _sc
+ ss
+ } ddef
+ /_pjss
+ {
+ _sc
+ jss
+ } ddef
+ /_lp /none ddef
+} def
+/Xa
+{
+ _?cmyk {
+ 3 npop k
+ }{
+ setrgbfill 4 npop
+ } ifelse
+} def
+/XA
+{
+ _?cmyk {
+ 3 npop K
+ }{
+ setrgbstroke 4 npop
+ } ifelse
+} def
+/Xs
+{
+ /_gf exch ddef
+ 5 npop
+ /_fc
+ {
+ _lp /fill ne
+ {
+ _of setoverprint
+ _gf setAIseparationgray
+ /_lp /fill ddef
+ } if
+ } ddef
+ /_pf
+ {
+ _fc
+ _eo {eofill} {fill} ifelse
+ } ddef
+ /_psf
+ {
+ _fc
+ hvashow
+ } ddef
+ /_pjsf
+ {
+ _fc
+ hvawidthshow
+ } ddef
+ /_lp /none ddef
+} def
+/XS
+{
+ /_gs exch ddef
+ 5 npop
+ /_sc
+ {
+ _lp /stroke ne
+ {
+ _os setoverprint
+ _gs setAIseparationgray
+ /_lp /stroke ddef
+ } if
+ } ddef
+ /_ps
+ {
+ _sc
+ stroke
+ } ddef
+ /_pss
+ {
+ _sc
+ ss
+ } ddef
+ /_pjss
+ {
+ _sc
+ jss
+ } ddef
+ /_lp /none ddef
+} def
+/Xx
+{
+ exch
+ /_gf exch ddef
+ 0 eq {
+ findcmykcustomcolor
+ }{
+ _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
+ {
+ 4 1 roll 3 npop
+ findcmykcustomcolor
+ }{
+ 8 -4 roll 4 npop
+ findrgbcustomcolor
+ } ifelse
+ } ifelse
+ /_if exch ddef
+ /_fc
+ {
+ _lp /fill ne
+ {
+ _of setoverprint
+ _if _gf 1 exch sub setcustomcolor
+ /_lp /fill ddef
+ } if
+ } ddef
+ /_pf
+ {
+ _fc
+ _eo {eofill} {fill} ifelse
+ } ddef
+ /_psf
+ {
+ _fc
+ hvashow
+ } ddef
+ /_pjsf
+ {
+ _fc
+ hvawidthshow
+ } ddef
+ /_lp /none ddef
+} def
+/XX
+{
+ exch
+ /_gs exch ddef
+ 0 eq {
+ findcmykcustomcolor
+ }{
+ _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse
+ {
+ 4 1 roll 3 npop
+ findcmykcustomcolor
+ }{
+ 8 -4 roll 4 npop
+ findrgbcustomcolor
+ } ifelse
+ } ifelse
+ /_is exch ddef
+ /_sc
+ {
+ _lp /stroke ne
+ {
+ _os setoverprint
+ _is _gs 1 exch sub setcustomcolor
+ /_lp /stroke ddef
+ } if
+ } ddef
+ /_ps
+ {
+ _sc
+ stroke
+ } ddef
+ /_pss
+ {
+ _sc
+ ss
+ } ddef
+ /_pjss
+ {
+ _sc
+ jss
+ } ddef
+ /_lp /none ddef
+} def
+/x
+{
+ /_gf exch ddef
+ findcmykcustomcolor
+ /_if exch ddef
+ /_fc
+ {
+ _lp /fill ne
+ {
+ _of setoverprint
+ _if _gf 1 exch sub setcustomcolor
+ /_lp /fill ddef
+ } if
+ } ddef
+ /_pf
+ {
+ _fc
+ _eo {eofill} {fill} ifelse
+ } ddef
+ /_psf
+ {
+ _fc
+ hvashow
+ } ddef
+ /_pjsf
+ {
+ _fc
+ hvawidthshow
+ } ddef
+ /_lp /none ddef
+} def
+/X
+{
+ /_gs exch ddef
+ findcmykcustomcolor
+ /_is exch ddef
+ /_sc
+ {
+ _lp /stroke ne
+ {
+ _os setoverprint
+ _is _gs 1 exch sub setcustomcolor
+ /_lp /stroke ddef
+ } if
+ } ddef
+ /_ps
+ {
+ _sc
+ stroke
+ } ddef
+ /_pss
+ {
+ _sc
+ ss
+ } ddef
+ /_pjss
+ {
+ _sc
+ jss
+ } ddef
+ /_lp /none ddef
+} def
+/XK
+{
+ 3 -1 roll pop
+ 0 eq
+ {
+ 1 exch sub
+ 3 {dup 3 1 roll mul 5 1 roll} repeat
+ mul 4 1 roll
+ K
+ }
+ {
+ 1 exch sub 4 1 roll
+ 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
+ 4 -1 roll pop
+ XA
+ } ifelse
+} def
+/Xk
+{
+ 3 -1 roll pop
+ 0 eq
+ {
+ 1 exch sub
+ 3 {dup 3 1 roll mul 5 1 roll} repeat
+ mul 4 1 roll
+ k
+ }
+ {
+ 1 exch sub 4 1 roll
+ 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat
+ 4 -1 roll pop
+ Xa
+ } ifelse
+} def
+/A
+{
+ pop
+} def
+/annotatepage
+{
+userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
+} def
+/XT {
+ pop pop
+} def
+/Xt {
+ pop
+} def
+/discard
+{
+ save /discardSave exch store
+ discardDict begin
+ /endString exch store
+ gt38?
+ {
+ 2 add
+ } if
+ load
+ stopped
+ pop
+ end
+ discardSave restore
+} bind def
+userdict /discardDict 7 dict dup begin
+put
+/pre38Initialize
+{
+ /endStringLength endString length store
+ /newBuff buffer 0 endStringLength getinterval store
+ /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
+ /newBuffLast newBuff endStringLength 1 sub 1 getinterval store
+} def
+/shiftBuffer
+{
+ newBuff 0 newBuffButFirst putinterval
+ newBuffLast 0
+ currentfile read not
+ {
+ stop
+ } if
+ put
+} def
+0
+{
+ pre38Initialize
+ mark
+ currentfile newBuff readstring exch pop
+ {
+ {
+ newBuff endString eq
+ {
+ cleartomark stop
+ } if
+ shiftBuffer
+ } loop
+ }
+ {
+ stop
+ } ifelse
+} def
+1
+{
+ pre38Initialize
+ /beginString exch store
+ mark
+ currentfile newBuff readstring exch pop
+ {
+ {
+ newBuff beginString eq
+ {
+ /layerCount dup load 1 add store
+ }
+ {
+ newBuff endString eq
+ {
+ /layerCount dup load 1 sub store
+ layerCount 0 eq
+ {
+ cleartomark stop
+ } if
+ } if
+ } ifelse
+ shiftBuffer
+ } loop
+ } if
+} def
+2
+{
+ mark
+ {
+ currentfile buffer {readline} stopped {
+ % assume error was due to overfilling the buffer
+ }{
+ not
+ {
+ stop
+ } if
+ endString eq {
+ cleartomark stop
+ } if
+ }ifelse
+ } loop
+} def
+3
+{
+ /beginString exch store
+ /layerCnt 1 store
+ mark
+ {
+ currentfile buffer {readline} stopped {
+ % assume error was due to overfilling the buffer
+ }{
+ not
+ {
+ stop
+ } if
+ dup beginString eq
+ {
+ pop /layerCnt dup load 1 add store
+ }
+ {
+ endString eq
+ {
+ layerCnt 1 eq
+ {
+ cleartomark stop
+ }
+ {
+ /layerCnt dup load 1 sub store
+ } ifelse
+ } if
+ } ifelse
+ }ifelse
+ } loop
+} def
+end
+userdict /clipRenderOff 15 dict dup begin
+put
+{
+ /n /N /s /S /f /F /b /B
+}
+{
+ {
+ _doClip 1 eq
+ {
+ /_doClip 0 ddef _eo {eoclip} {clip} ifelse
+ } if
+ newpath
+ } def
+} forall
+/Tr /pop load def
+/Bb {} def
+/BB /pop load def
+/Bg {12 npop} def
+/Bm {6 npop} def
+/Bc /Bm load def
+/Bh {4 npop} def
+end
+/Lb
+{
+ 6 npop
+ 7 2 roll
+ 5 npop
+ 0 eq
+ {
+ 0 eq
+ {
+ (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
+ }
+ {
+
+ /clipForward? true def
+
+ /Tx /pop load def
+ /Tj /pop load def
+
+ currentdict end clipRenderOff begin begin
+ } ifelse
+ }
+ {
+ 0 eq
+ {
+ save /discardSave exch store
+ } if
+ } ifelse
+} bind def
+/LB
+{
+ discardSave dup null ne
+ {
+ restore
+ }
+ {
+ pop
+ clipForward?
+ {
+ currentdict
+ end
+ end
+ begin
+
+ /clipForward? false ddef
+ } if
+ } ifelse
+} bind def
+/Pb
+{
+ pop pop
+ 0 (%AI5_EndPalette) discard
+} bind def
+/Np
+{
+ 0 (%AI5_End_NonPrinting--) discard
+} bind def
+/Ln /pop load def
+/Ap
+/pop load def
+/Ar
+{
+ 72 exch div
+ 0 dtransform dup mul exch dup mul add sqrt
+ dup 1 lt
+ {
+ pop 1
+ } if
+ setflat
+} def
+/Mb
+{
+ q
+} def
+/Md
+{
+} def
+/MB
+{
+ Q
+} def
+/nc 4 dict def
+nc begin
+/setgray
+{
+ pop
+} bind def
+/setcmykcolor
+{
+ 4 npop
+} bind def
+/setrgbcolor
+{
+ 3 npop
+} bind def
+/setcustomcolor
+{
+ 2 npop
+} bind def
+currentdict readonly pop
+end
+/XP
+{
+ 4 npop
+} bind def
+/XD
+{
+ pop
+} bind def
+end
+setpacking
+%%EndResource
+%%BeginResource: procset Adobe_pattern_AI5 1.1 0
+%%Title: (Adobe Illustrator (R) Version 5.0 Pattern Operators)
+%%Version: 1.1 0
+%%CreationDate: (03/26/93) ()
+%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
+currentpacking true setpacking
+userdict /Adobe_Illustrator_AI5 known not {
+ userdict /Adobe_Illustrator_AI5 95 dict put
+} if
+userdict /Adobe_Illustrator_AI5 get begin
+/@
+{
+} def
+/&
+{
+} def
+/dp
+{
+ dup null eq
+ {
+ pop
+ _dp 0 ne
+ {
+ 0 1 _dp 1 sub _dl mod
+ {
+ _da exch get 3 get
+ } for
+ _dp 1 sub _dl mod 1 add packedarray
+ _da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll
+ definepattern pop
+ } if
+ }
+ {
+ _dp 0 ne _dp _dl mod 0 eq and
+ {
+ null dp
+ } if
+ 7 packedarray _da exch _dp _dl mod exch put
+ _dp _dl mod _da 0 get 4 get 2 packedarray
+ /_dp _dp 1 add def
+ } ifelse
+} def
+/E
+{
+ _ed begin
+ dup 0 get type /arraytype ne
+ {
+ 0
+ {
+ dup 1 add index type /arraytype eq
+ {
+ 1 add
+ }
+ {
+ exit
+ } ifelse
+ } loop
+ array astore
+ } if
+ /_dd exch def
+ /_ury exch def
+ /_urx exch def
+ /_lly exch def
+ /_llx exch def
+ /_n exch def
+ /_y 0 def
+ /_dl 4 def
+ /_dp 0 def
+ /_da _dl array def
+ 0 1 _dd length 1 sub
+ {
+ /_d exch _dd exch get def
+ 0 2 _d length 2 sub
+ {
+ /_x exch def
+ /_c false def
+ /_r _d _x 1 add get cvlit def
+ _r _ ne
+ {
+ _urx _llx sub _ury _lly sub
+ [
+ 1 0 0 1 0 0
+ ]
+ [
+ /save cvx
+ _llx neg _lly neg /translate cvx
+ _c
+ {
+ nc /begin cvx
+ } if
+ _r dup type /stringtype eq
+ {
+ cvx
+ }
+ {
+ {
+ exec
+ } /forall cvx
+ } ifelse
+ _c
+ {
+ /end cvx
+ } if
+ /restore cvx
+ ] cvx
+ /_fn 12 _n length add string def
+ _y _fn cvs pop
+ /_y _y 1 add def
+ _fn 12 _n putinterval
+ _fn _c false dp
+ _d exch _x 1 add exch put
+ } if
+ } for
+ } for
+ null dp
+ _n _dd /_pd
+ end
+ xput
+} def
+/fc
+{
+ _fm dup concatmatrix pop
+} def
+/p
+{
+ /_fm exch ddef
+ 9 -2 roll _pm translate fc
+ 7 -2 roll _pm scale fc
+ 5 -1 roll _pm rotate fc
+ 4 -2 roll exch 0 ne
+ {
+ dup _pm rotate fc
+ 1 -1 _pm scale fc
+ neg _pm rotate fc
+ }
+ {
+ pop
+ } ifelse
+ dup _pm rotate fc
+ exch dup sin exch cos div 1 0 0 1 0 6 2 roll
+ _pm astore fc
+ neg _pm rotate fc
+ _pd exch get /_fdd exch ddef
+ /_pf
+ {
+ save
+ /_doClip 0 ddef
+ 0 1 _fdd length 1 sub
+ {
+ /_fd exch _fdd exch get ddef
+ _fd
+ 0 2 _fd length 2 sub
+ {
+ gsave
+ 2 copy get dup _ ne
+ {
+ cvx exec _fc
+ }
+ {
+ pop
+ } ifelse
+ 2 copy 1 add get dup _ ne
+ {
+ aload pop findfont _fm
+ patternfill
+ }
+ {
+ pop
+ fill
+ } ifelse
+ grestore
+ pop
+ } for
+ pop
+ } for
+ restore
+ newpath
+ } ddef
+ /_psf
+ {
+ save
+ /_doClip 0 ddef
+ 0 1 _fdd length 1 sub
+ {
+ /_fd exch _fdd exch get ddef
+ _fd
+ 0 2 _fd length 2 sub
+ {
+ gsave
+ 2 copy get dup _ ne
+ {
+ cvx exec _fc
+ }
+ {
+ pop
+ } ifelse
+ 2 copy 1 add get dup _ ne
+ {
+ aload pop findfont _fm
+ 9 copy 6 npop patternashow
+ }
+ {
+ pop
+ 6 copy 3 npop hvashow
+ } ifelse
+ grestore
+ pop
+ } for
+ pop
+ } for
+ restore
+ sw rmoveto
+ } ddef
+ /_pjsf
+ {
+ save
+ /_doClip 0 ddef
+ 0 1 _fdd length 1 sub
+ {
+ /_fd exch _fdd exch get ddef
+ _fd
+ 0 2 _fd length 2 sub
+ {
+ gsave
+ 2 copy get dup _ ne
+ {
+ cvx exec _fc
+ }
+ {
+ pop
+ } ifelse
+ 2 copy 1 add get dup _ ne
+ {
+ aload pop findfont _fm
+ 12 copy 6 npop patternawidthshow
+ }
+ {
+ pop 9 copy 3 npop hvawidthshow
+ } ifelse
+ grestore
+ pop
+ } for
+ pop
+ } for
+ restore
+ swj rmoveto
+ } ddef
+ /_lp /none ddef
+} def
+/sc
+{
+ _sm dup concatmatrix pop
+} def
+/P
+{
+ /_sm exch ddef
+ 9 -2 roll _pm translate sc
+ 7 -2 roll _pm scale sc
+ 5 -1 roll _pm rotate sc
+ 4 -2 roll exch 0 ne
+ {
+ dup _pm rotate sc
+ 1 -1 _pm scale sc
+ neg _pm rotate sc
+ }
+ {
+ pop
+ } ifelse
+ dup _pm rotate sc
+ exch dup sin exch cos div 1 0 0 1 0 6 2 roll
+ _pm astore sc
+ neg _pm rotate sc
+ _pd exch get /_sdd exch ddef
+ /_ps
+ {
+ save
+ /_doClip 0 ddef
+ 0 1 _sdd length 1 sub
+ {
+ /_sd exch _sdd exch get ddef
+ _sd
+ 0 2 _sd length 2 sub
+ {
+ gsave
+ 2 copy get dup _ ne
+ {
+ cvx exec _sc
+ }
+ {
+ pop
+ } ifelse
+ 2 copy 1 add get dup _ ne
+ {
+ aload pop findfont _sm
+ patternstroke
+ }
+ {
+ pop stroke
+ } ifelse
+ grestore
+ pop
+ } for
+ pop
+ } for
+ restore
+ newpath
+ } ddef
+ /_pss
+ {
+ save
+ /_doClip 0 ddef
+ 0 1 _sdd length 1 sub
+ {
+ /_sd exch _sdd exch get ddef
+ _sd
+ 0 2 _sd length 2 sub
+ {
+ gsave
+ 2 copy get dup _ ne
+ {
+ cvx exec _sc
+ }
+ {
+ pop
+ } ifelse
+ 2 copy 1 add get dup _ ne
+ {
+ aload pop findfont _sm
+ 10 copy 6 npop patternashowstroke
+ }
+ {
+ pop 7 copy 3 npop ss
+ } ifelse
+ grestore
+ pop
+ } for
+ pop
+ } for
+ restore
+ pop sw rmoveto
+ } ddef
+ /_pjss
+ {
+ save
+ /_doClip 0 ddef
+ 0 1 _sdd length 1 sub
+ {
+ /_sd exch _sdd exch get ddef
+ _sd
+ 0 2 _sd length 2 sub
+ {
+ gsave
+ 2 copy get dup _ ne
+ {
+ cvx exec _sc
+ }
+ {
+ pop
+ } ifelse
+ 2 copy 1 add get dup _ ne
+ {
+ aload pop findfont _sm
+ 13 copy 6 npop patternawidthshowstroke
+ }
+ {
+ pop 10 copy 3 npop jss
+ } ifelse
+ grestore
+ pop
+ } for
+ pop
+ } for
+ restore
+ pop swj rmoveto
+ } ddef
+ /_lp /none ddef
+} def
+end
+userdict /Adobe_pattern_AI5 18 dict dup begin
+put
+/initialize
+{
+ /definepattern where
+ {
+ pop
+ pop pop
+ }
+ {
+ begin
+ begin
+ Adobe_pattern_AI5 begin
+ Adobe_pattern_AI5
+ {
+ dup xcheck
+ {
+ bind
+ } if
+ pop pop
+ } forall
+ mark
+ cachestatus 7 1 roll pop pop pop pop exch pop exch
+ {
+ {
+ 10000 add
+ dup 2 index gt
+ {
+ exit
+ } if
+ dup setcachelimit
+ } loop
+ } stopped
+ cleartomark
+ end
+
+ end
+ end
+
+ Adobe_pattern_AI5 begin
+ } ifelse
+} def
+/terminate
+{
+ currentdict Adobe_pattern_AI5 eq
+ {
+ end
+ } if
+} def
+errordict
+/nocurrentpoint
+{
+ pop
+ stop
+} put
+errordict
+/invalidaccess
+{
+ pop
+ stop
+} put
+/patternencoding
+256 array def
+0 1 255
+{
+ patternencoding exch ( ) 2 copy exch 0 exch put cvn put
+} for
+/definepattern
+{
+ 17 dict begin
+ /uniform exch def
+ /cache exch def
+ /key exch def
+ /procarray exch def
+ /mtx exch matrix invertmatrix def
+ /height exch def
+ /width exch def
+ /ctm matrix currentmatrix def
+ /ptm matrix def
+ /str 32 string def
+ /slice 9 dict def
+ slice /s 1 put
+ slice /q 256 procarray length div sqrt floor cvi put
+ slice /b 0 put
+ /FontBBox
+ [
+ 0 0 0 0
+ ] def
+ /FontMatrix mtx matrix copy def
+ /Encoding patternencoding def
+ /FontType 3 def
+ /BuildChar
+ {
+ exch
+ begin
+ /setstrokeadjust where {pop true setstrokeadjust} if
+ slice begin
+ dup q dup mul mod s idiv /i exch def
+ dup q dup mul mod s mod /j exch def
+ q dup mul idiv procarray exch get
+ /xl j width s div mul def
+ /xg j 1 add width s div mul def
+ /yl i height s div mul def
+ /yg i 1 add height s div mul def
+ uniform
+ {
+ 1 1
+ }
+ {
+ width 0 dtransform
+ dup mul exch dup mul add sqrt dup 1 add exch div
+ 0 height dtransform
+ dup mul exch dup mul add sqrt dup 1 add exch div
+ } ifelse
+ width 0 cache
+ {
+ xl 4 index mul yl 4 index mul xg 6 index mul yg 6 index mul
+ setcachedevice
+ }
+ {
+ setcharwidth
+ } ifelse
+ gsave
+ scale
+ newpath
+ xl yl moveto
+ xg yl lineto
+ xg yg lineto
+ xl yg lineto
+ closepath
+ clip
+ newpath
+ end
+ end
+ exec
+ grestore
+ } def
+ key currentdict definefont
+ end
+} def
+/patterncachesize
+{
+ gsave
+ newpath
+ 0 0 moveto
+ width 0 lineto
+ width height lineto
+ 0 height lineto
+ closepath
+ patternmatrix setmatrix
+ pathbbox
+ exch ceiling 4 -1 roll floor sub 3 1 roll
+ ceiling exch floor sub
+ mul 1 add
+ grestore
+} def
+/patterncachelimit
+{
+ cachestatus 7 1 roll 6 npop 8 mul
+} def
+/patternpath
+{
+ exch dup begin
+ setfont
+ ctm setmatrix
+ concat
+ slice exch /b exch slice /q get dup mul mul put
+ FontMatrix concat
+ uniform
+ {
+ width 0 dtransform round width div exch round width div exch
+ 0 height dtransform round height div exch height div exch
+ 0 0 transform round exch round exch
+ ptm astore setmatrix
+ }
+ {
+ ptm currentmatrix pop
+ } ifelse
+ {
+ currentpoint
+ } stopped not
+ {
+ 2 npop
+ pathbbox
+ true
+ 4 index 3 index eq
+ 4 index 3 index eq
+ and
+ {
+ pop false
+ {
+ {
+ 2 npop
+ }
+ {
+ 3 npop true
+ }
+ {
+ 7 npop true
+ }
+ {
+ pop true
+ } pathforall
+ } stopped
+ {
+ 5 npop true
+ } if
+ } if
+ {
+ height div ceiling height mul 4 1 roll
+ width div ceiling width mul 4 1 roll
+ height div floor height mul 4 1 roll
+ width div floor width mul 4 1 roll
+ 2 index sub height div ceiling cvi exch
+ 3 index sub width div ceiling cvi exch
+ 4 2 roll moveto
+ FontMatrix mtx invertmatrix
+ dup dup 4 get exch 5 get rmoveto
+ ptm ptm concatmatrix pop
+ slice /s
+ patterncachesize patterncachelimit div ceiling sqrt ceiling cvi
+ dup slice /q get gt
+ {
+ pop slice /q get
+ } if
+ put
+ 0 1 slice /s get dup mul 1 sub
+ {
+ slice /b get add
+ gsave
+ 0 1 str length 1 sub
+ {
+ str exch 2 index put
+ } for
+ pop
+ dup
+ {
+ gsave
+ ptm setmatrix
+ 1 index str length idiv
+ {
+ str show
+ } repeat
+ 1 index str length mod str exch 0 exch getinterval show
+ grestore
+ 0 height rmoveto
+ } repeat
+ grestore
+ } for
+ 2 npop
+ }
+ {
+ 4 npop
+ } ifelse
+ } if
+ end
+} def
+/patternclip
+{
+ _eo {eoclip} {clip} ifelse
+} def
+/patternstrokepath
+{
+ strokepath
+} def
+/patternmatrix
+matrix def
+/patternfill
+{
+ dup type /dicttype eq
+ {
+ Adobe_pattern_AI5 /patternmatrix get
+ } if
+ gsave
+ patternclip
+ Adobe_pattern_AI5 /patternpath get exec
+ grestore
+ newpath
+} def
+/patternstroke
+{
+ dup type /dicttype eq
+ {
+ Adobe_pattern_AI5 /patternmatrix get
+ } if
+ gsave
+ patternstrokepath
+ true
+ {
+ {
+ {
+ newpath
+ moveto
+ }
+ {
+ lineto
+ }
+ {
+ curveto
+ }
+ {
+ closepath
+ 3 copy
+ Adobe_pattern_AI5 /patternfill get exec
+ } pathforall
+ 3 npop
+ } stopped
+ {
+ 5 npop
+ patternclip
+ Adobe_pattern_AI5 /patternfill get exec
+ } if
+ }
+ {
+ patternclip
+ Adobe_pattern_AI5 /patternfill get exec
+ } ifelse
+ grestore
+ newpath
+} def
+/vpatternawidthshow
+{
+ 6 1 roll
+ /_hvay exch ddef
+ /_hvax exch ddef
+ /_hvwb exch ddef
+ /_hvcy exch ddef
+ /_hvcx exch ddef
+
+ {
+ dup cstring
+ dup length 1 eq
+ _charorientation 1 eq
+ and
+ {
+ -90 rotate
+ currentpoint
+ _fontRotateAdjust add
+ moveto
+ gsave
+ false charpath currentpoint
+ 5 index 5 index 5 index Adobe_pattern_AI5 /patternfill get exec
+ grestore
+ _fontRotateAdjust sub
+ moveto
+ _hvwb eq { _hvcx _hvcy rmoveto } if
+ _hvax _hvay rmoveto
+ 90 rotate
+ }
+ {
+ currentpoint
+ _fontHeight sub
+ _hvax sub
+ 3 index _hvwb eq { _hvcx sub } if
+ currentpoint
+ exch 4 index stringwidth pop 2 div sub
+ exch _fontAscent sub
+ moveto
+ gsave
+ 2 index false charpath
+ 6 index 6 index 6 index Adobe_pattern_AI5 /patternfill get exec
+ grestore
+ newpath moveto pop pop
+ } ifelse
+ } cforall
+ 3 npop
+} def
+/hpatternawidthshow
+{
+ {
+ dup cstring exch
+ gsave
+ 3 index eq { 5 index 5 index rmoveto } if
+ false charpath currentpoint
+ 9 index 9 index 9 index
+ Adobe_pattern_AI5 /patternfill get exec
+ grestore
+ newpath moveto
+ 2 copy rmoveto
+ } cforall
+ 8 npop
+} def
+/patternashow
+{
+0 0 0 6 3 roll
+patternawidthshow
+} def
+/patternawidthshow
+{
+ 6 index type /dicttype eq
+ {
+ Adobe_pattern_AI5 /patternmatrix get 7 1 roll
+ } if
+ _lineorientation 0 eq { hpatternawidthshow } { vpatternawidthshow } ifelse
+} def
+/vpatternawidthshowstroke
+{
+ 7 1 roll
+ 6 1 roll
+ /_hvay exch ddef
+ /_hvax exch ddef
+ /_hvwb exch ddef
+ /_hvcy exch ddef
+ /_hvcx exch ddef
+ {
+ dup cstring
+ dup length 1 eq
+ _charorientation 1 eq
+ and
+ {
+ -90 rotate
+ currentpoint
+ _fontRotateAdjust add
+ moveto
+ gsave
+ false charpath currentpoint
+ 3 index setmatrix
+ 6 index 6 index 6 index Adobe_pattern_AI5 /patternstroke get exec
+ grestore
+ _fontRotateAdjust sub
+ moveto
+ _hvwb eq { _hvcx _hvcy rmoveto } if
+ _hvax _hvay rmoveto
+ 90 rotate
+ }
+ {
+ currentpoint
+ _fontHeight sub
+ _hvax sub
+ 3 index _hvwb eq { _hvcx sub } if
+ currentpoint
+ exch 4 index stringwidth pop 2 div sub
+ exch _fontAscent sub
+ moveto
+ gsave
+ 2 index false charpath
+ 4 index setmatrix
+ 7 index 7 index 7 index Adobe_pattern_AI5 /patternstroke get exec
+ grestore
+ newpath moveto pop pop
+ } ifelse
+ } cforall
+ 4 npop
+} def
+/hpatternawidthshowstroke
+{
+ 7 1 roll
+ {
+ dup cstring exch
+ gsave
+ 3 index eq { 5 index 5 index rmoveto } if
+ false charpath currentpoint
+ 7 index setmatrix
+ 10 index 10 index 10 index
+ Adobe_pattern_AI5 /patternstroke get exec
+ grestore
+ newpath moveto
+ 2 copy rmoveto
+ } cforall
+ 9 npop
+} def
+/patternashowstroke
+{
+ 0 0 0 7 3 roll
+ patternawidthshowstroke
+} def
+/patternawidthshowstroke
+{
+ 7 index type /dicttype eq
+ {
+ patternmatrix /patternmatrix get 8 1 roll
+ } if
+ _lineorientation 0 eq { hpatternawidthshowstroke } { vpatternawidthshowstroke } ifelse
+} def
+end
+setpacking
+%%EndResource
+%%BeginResource: procset Adobe_cshow 2.0 8
+%%Title: (Writing System Operators)
+%%Version: 2.0 8
+%%CreationDate: (1/23/89) ()
+%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved)
+currentpacking true setpacking
+userdict /Adobe_cshow 14 dict dup begin put
+/initialize
+{
+ Adobe_cshow begin
+ Adobe_cshow
+ {
+ dup xcheck
+ {
+ bind
+ } if
+ pop pop
+ } forall
+ end
+ Adobe_cshow begin
+} def
+/terminate
+{
+currentdict Adobe_cshow eq
+ {
+ end
+ } if
+} def
+/cforall
+{
+ /_lobyte 0 ddef
+ /_hibyte 0 ddef
+ /_cproc exch ddef
+ /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef
+ {
+ /_lobyte exch ddef
+ _hibyte 0 eq
+ _cscript 1 eq
+ _lobyte 129 ge _lobyte 159 le and
+ _lobyte 224 ge _lobyte 252 le and or and
+ _cscript 2 eq
+ _lobyte 161 ge _lobyte 254 le and and
+ _cscript 3 eq
+ _lobyte 161 ge _lobyte 254 le and and
+ _cscript 25 eq
+ _lobyte 161 ge _lobyte 254 le and and
+ _cscript -1 eq
+ or or or or and
+ {
+ /_hibyte _lobyte ddef
+ }
+ {
+ _hibyte 256 mul _lobyte add
+ _cproc
+ /_hibyte 0 ddef
+ } ifelse
+ } forall
+} def
+/cstring
+{
+ dup 256 lt
+ {
+ (s) dup 0 4 3 roll put
+ }
+ {
+ dup 256 idiv exch 256 mod
+ (hl) dup dup 0 6 5 roll put 1 4 3 roll put
+ } ifelse
+} def
+/clength
+{
+ 0 exch
+ { 256 lt { 1 } { 2 } ifelse add } cforall
+} def
+/hawidthshow
+{
+ {
+ dup cstring
+ show
+ _hvax _hvay rmoveto
+ _hvwb eq { _hvcx _hvcy rmoveto } if
+ } cforall
+} def
+/vawidthshow
+{
+ {
+ dup 255 le
+ _charorientation 1 eq
+ and
+ {
+ -90 rotate
+ 0 _fontRotateAdjust rmoveto
+ cstring
+ _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow
+ 0 _fontRotateAdjust neg rmoveto
+ 90 rotate
+ }
+ {
+ currentpoint
+ _fontHeight sub
+ exch _hvay sub exch _hvax sub
+ 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if
+ 3 2 roll
+ cstring
+ dup stringwidth pop 2 div neg _fontAscent neg rmoveto
+ show
+ moveto
+ } ifelse
+ } cforall
+} def
+/hvawidthshow
+{
+ 6 1 roll
+ /_hvay exch ddef
+ /_hvax exch ddef
+ /_hvwb exch ddef
+ /_hvcy exch ddef
+ /_hvcx exch ddef
+ _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse
+} def
+/hvwidthshow
+{
+ 0 0 3 -1 roll hvawidthshow
+} def
+/hvashow
+{
+ 0 0 0 6 -3 roll hvawidthshow
+} def
+/hvshow
+{
+ 0 0 0 0 0 6 -1 roll hvawidthshow
+} def
+currentdict readonly pop end
+setpacking
+%%EndResource
+%%BeginResource: procset Adobe_shading_AI8 1.0 0
+%%Title: (Adobe Illustrator 8 Shading Procset)
+%%Version: 1.0 0
+%%CreationDate: (12/17/97) ()
+%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved)
+userdict /defaultpacking currentpacking put true setpacking
+userdict /Adobe_shading_AI8 10 dict dup begin put
+/initialize {
+ Adobe_shading_AI8 begin
+ Adobe_shading_AI8 bdprocs
+ Mesh /initialize get exec
+} def
+/terminate {
+ currentdict Adobe_shading_AI8 eq {
+ end
+ } if
+} def
+/bdprocs {
+ {
+ dup xcheck 1 index type /arraytype eq and {
+ bind
+ } if
+ pop pop
+ } forall
+} def
+/X! {pop} def
+/X# {pop pop} def
+/Mesh 40 dict def
+Mesh begin
+/initialize {
+ Mesh bdprocs
+ Mesh begin
+ /emulate? /AI8MeshEmulation where {
+ pop AI8MeshEmulation
+ }{
+ systemdict /shfill known not
+ } ifelse def
+ end
+} def
+/bd {
+ shadingdict begin
+} def
+/paint {
+ emulate? {
+ end
+ }{
+ /_lp /none ddef _fc /_lp /none ddef
+
+ /AIColorSpace AIColorSpace tocolorspace store
+ /ColorSpace AIColorSpace topsspace store
+
+ version_ge_3010.106 not systemdict /setsmoothness known and {
+ 0.0001 setsmoothness
+ } if
+
+ composite? {
+ /DataSource getdatasrc def
+ Matrix concat
+ currentdict end
+ shfill
+ }{
+ AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and {
+ end
+ }{
+ /ColorSpace /DeviceGray store
+ /Decode [0 1 0 1 0 1] store
+ /DataSource getplatesrc def
+ Matrix concat
+ currentdict end
+ shfill
+ } ifelse
+ } ifelse
+ } ifelse
+} def
+/shadingdict 12 dict def
+shadingdict begin
+ /ShadingType 6 def
+ /BitsPerCoordinate 16 def
+ /BitsPerComponent 8 def
+ /BitsPerFlag 8 def
+end
+/datafile null def
+/databuf 256 string def
+/dataptr 0 def
+/srcspace null def
+/srcchannels 0 def
+/dstchannels 0 def
+/dstplate 0 def
+/srctodstcolor null def
+/getplatesrc {
+ /srcspace AIColorSpace store
+ /srcchannels AIColorSpace getnchannels store
+ /dstchannels 1 store
+ /dstplate getplateindex store
+ /srctodstcolor srcspace makesmarks {
+ dstplate 4 eq {
+ {1 exch sub}
+ }{
+ {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat}
+ } ifelse
+ }{
+ {srcchannels {pop} repeat 1}
+ } ifelse store
+ /datafile getdatasrc store
+ /rdpatch168 load DataLength () /SubFileDecode filter
+} def
+/getdatasrc {
+ /rdcmntline load /ASCII85Decode filter
+} def
+/rdpatch168 {
+ /dataptr 0 store
+ 49 rdcount
+ 4 {
+ dup {pop srcchannels getint8} if
+ dup {pop srctodstcolor dstchannels putint8 true} if
+ } repeat
+ {databuf 0 dataptr getinterval}{()} ifelse
+} def
+/rdpatch3216 {
+ /dataptr 0 store
+ 97 rdcount
+ 4 {
+ dup {pop srcchannels getint16} if
+ dup {pop srctodstcolor dstchannels putint16 true} if
+ } repeat
+ {databuf 0 dataptr getinterval}{()} ifelse
+} def
+/rdcount {
+ dup 0 gt {
+ datafile databuf dataptr 4 -1 roll getinterval readstring
+ exch length dataptr add /dataptr exch store
+ }{
+ true
+ } ifelse
+} def
+/getint8 {
+ mark true 3 -1 roll
+ {
+ dup {pop datafile read} if
+ dup {pop 255 div true} if
+ } repeat
+ {
+ counttomark 1 add -1 roll pop true
+ }{
+ cleartomark false
+ } ifelse
+} def
+/putint8 {
+ dup dataptr add /dataptr exch store
+ dataptr exch
+ {
+ 1 sub exch
+ 255 mul cvi
+ databuf 2 index
+ 3 -1 roll put
+ } repeat
+ pop
+} def
+/getint16 {
+ mark true 3 -1 roll
+ {
+ dup {pop datafile read} if
+ dup {pop 256 mul datafile read} if
+ dup {pop add 65535 div true} if
+ } repeat
+ {
+ counttomark 1 add -1 roll pop true
+ }{
+ cleartomark false
+ } ifelse
+} def
+/putint16 {
+ dup 2 mul dataptr add /dataptr exch store
+ dataptr exch
+ {
+ 2 sub exch
+ 65535 mul cvi dup
+ 256 idiv databuf 3 index 3 -1 roll put
+ 256 mod databuf 2 index 1 add 3 -1 roll put
+ } repeat
+ pop
+} def
+/srcbuf 256 string def
+/rdcmntline {
+ currentfile srcbuf readline pop
+ (%) anchorsearch {pop} if
+} def
+/getplateindex {
+ 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall
+} def
+/aicsarray 4 array def
+/aicsaltvals 4 array def
+/aicsaltcolr aicsaltvals def
+/tocolorspace {
+ dup type /arraytype eq {
+ mark exch aload pop
+ aicsarray 0 3 -1 roll put
+ aicsarray 1 3 -1 roll put
+ dup aicsarray 2 3 -1 roll put
+ gettintxform aicsarray 3 3 -1 roll put
+ counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store
+ aicsaltcolr astore pop pop
+ aicsarray
+ } if
+} def
+/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def
+/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def
+/gettintxform {
+ /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load
+} def
+/getnchannels {
+ dup type /arraytype eq {0 get} if
+ colorspacedict exch get begin Channels end
+} def
+/makesmarks {
+ composite? {
+ pop true
+ }{
+ dup dup type /arraytype eq {0 get} if
+ colorspacedict exch get begin MarksPlate end
+ } ifelse
+} def
+/markingplate {
+ composite? {
+ pop true
+ }{
+ dup type /arraytype eq {
+ dup length getplateindex gt {getplateindex get}{pop false} ifelse
+ } if
+ } ifelse
+} def
+/tocmyk {
+ dup dup type /arraytype eq {0 get} if
+ colorspacedict exch get begin ToCMYK end
+} def
+/topsspace {
+ dup dup type /arraytype eq {0 get} if
+ colorspacedict exch get begin ToPSSpace end
+} def
+/colorspacedict 5 dict dup begin
+ /DeviceGray 4 dict dup begin
+ /Channels 1 def
+ /MarksPlate {pop black?} def
+ /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def
+ /ToPSSpace {} def
+ end def
+ /DeviceRGB 4 dict dup begin
+ /Channels 3 def
+ /MarksPlate {pop isCMYKSep?} def
+ /ToCMYK {pop _rgbtocmyk} def
+ /ToPSSpace {} def
+ end def
+ /DeviceCMYK 4 dict dup begin
+ /Channels 4 def
+ /MarksPlate {pop isCMYKSep?} def
+ /ToCMYK {pop} def
+ /ToPSSpace {} def
+ end def
+ /Separation 4 dict dup begin
+ /Channels 1 def
+ /MarksPlate {
+ /findcmykcustomcolor where {
+ pop dup 1 exch ToCMYK 5 -1 roll 1 get
+ findcmykcustomcolor 1 setcustomcolor
+ systemdict /currentgray get exec
+ 1 ne
+ }{
+ pop false
+ } ifelse
+ } def
+ /ToCMYK {
+ dup 2 get mark exch 4 2 roll
+ 3 get exec
+ counttomark -1 roll tocmyk
+ 5 -1 roll pop
+ } def
+ /ToPSSpace {} def
+ end def
+ /Process 4 dict dup begin
+ /Channels 1 def
+ /MarksPlate {
+ isCMYKSep? {
+ 1 exch ToCMYK 4 array astore getplateindex get 0 ne
+ }{
+ pop false
+ } ifelse
+ } def
+ /ToCMYK {
+ dup 2 get mark exch 4 2 roll
+ 3 get exec
+ counttomark -1 roll tocmyk
+ 5 -1 roll pop
+ } def
+ /ToPSSpace {
+ 4 array copy dup 0 /Separation put
+ } def
+ end def
+end def
+/isoverprint {
+ /currentoverprint where {pop currentoverprint}{_of} ifelse
+} def
+/version_ge_3010.106 {
+ version {cvr} stopped {
+ pop
+ false
+ }{
+ 3010.106 ge
+ } ifelse
+} def
+end
+end
+defaultpacking setpacking
+%%EndResource
+%%EndProlog
+%%BeginSetup
+userdict /_useSmoothShade true put
+userdict /_aicmykps true put
+userdict /_forceToCMYK true put
+Adobe_level2_AI5 /initialize get exec
+Adobe_cshow /initialize get exec
+Adobe_screens_AI5 /initialize get exec
+Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
+Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 AGM_Gradient /initializeAI get exec
+Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_pattern_AI5 /initialize get exec
+Adobe_ColorImage_AI6 /initialize get exec
+Adobe_shading_AI8 /initialize get exec
+Adobe_Illustrator_AI5 /initialize get exec
+%AI3_BeginRider
+currentpacking true setpacking
+%%BeginFont: Times-Roman
+%!PS-AdobeFont-1.0: Times-Roman 001.007
+%%CreationDate: Tue Mar 20 12:15:38 1990
+%%VMusage: 30487 37379
+%% The digitally encoded machine readable outline data for producing the
+%% Typefaces licensed to you is copyrighted (c) 1981 Linotype AG and/or its
+%% subsidiaries. All Rights Reserved. This data is the property of Linotype AG
+%% and/or its subsidiaries and may not be reproduced, used, displayed,
+%% modified, disclosed or transferred without the express written approval of
+%% Linotype AG and/or its subsidiaries.
+%% Times is a trademark of Linotype AG and/or its subsidiaries.
+11 dict begin
+/FontInfo 10 dict dup begin
+/version (001.007) readonly def
+/Notice (Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries.) readonly def
+/Copyright ( The digitally encoded machine readable outline data for producing
+ the Typefaces licensed to you is copyrighted (c) 1981 Linotype AG
+ and/or its subsidiaries. All Rights Reserved.
+ This data is the property of Linotype AG and/or its subsidiaries
+ and may not be reproduced, used, displayed, modified, disclosed or
+ transferred without the express written approval of Linotype AG
+ and/or its subsidiaries. ) readonly def
+/FullName (Times Roman) readonly def
+/FamilyName (Times) readonly def
+/Weight (Roman) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/FontName /Times-Roman def
+/Encoding StandardEncoding def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/UniqueID 28416 def
+/FontBBox{-168 -218 1000 898}readonly def
+currentdict end
+currentfile eexec
+Z¤÷UP7ñ¤1ºµU(= <ºYOu}#jþpèU$¼7F37j©ÁPaŠÀÿn¶³'3¾U¯ø°¨%ì»…þC´qœÂ¢\ ÌZ³IY`½ÿc¿Ñä޿ÈW-ê@Rš#»•¤Ó”«'ÝüØ8kgjŠ…ÝŽ½†Ò (‚űÄ)õ)¥ÅØ ÔÆù¨÷F¼EØDË!»É¾—V±3zE‹‹ð—à€
+aÖuD}¦ž¨EêÜÔbsRÙ’³{$£©Tònœ†$k‡$Hÿ¡j—沞ª+­ÿ–Í3Ѽ‰ŸK¢-'h9uk}Î8&7¿)P]Å_"dÝÂE>¦¨ÿ-‚¹œû8ú^gcß[Ày4¯¨Ä Y%ÃLA`r8š·I·Õ«hÓ‘ÀÆB‚ ñ[‚‘ÏÎRÓƒf×m†Ç%…D´Rµ?¥ sßìL÷[+»Þ÷†9½8jàǹ*(ÏÈ$
+°’´ôÒ˜°i²“€Z·äüXÂäMCmþü¾ÛÁ aeTÀ ½º4™%ê#«/Å+óôK÷1ªÐ‘©ºËœ”Ýðíw¯\Á Nµ|®µ€L¶qiI»Xi±0†ÂRqº›NàŠ¶q°ÑB­Rër»×ð.È•û~š¡›ûh©ÀO™‘àÀÑ|ž7¸×­]kW'¡¿‹€è¶ëp’]j51ÓË „w¼_ˆô‚³TK”9Œ®{ÍŒ&Ï÷¯U¨Œïñ} åÌ
+ÌýQ4¿9ëcR¨¦sÅwÂÿ¥?ŠyujÙ/õ쾸:Ó†Ñ'qòá«MX¾"j3ÜRl®*j«ýx¯÷"°>Ì(‘H›ÇœlÉC‰óßeZíío oF1®!A=„¤~b–¬
+–øð²åüZÓUÓÄ-a¹2:×”&w€={[_mÇ­·óñ¾Ö'×ÿVó<‘‡ø£9×D ?sùXZ‰‡?ÆÛ€ˆŸ«3Xƒ1{8ÇO_5LÚgÛíÁF`uuø¿>äs“ÙOal¿íÎ]1J]DZýO‘ÚWñR<‹IÙºxÒ#O×ÞÊF»…>ÎS¶€\=£ ÀöÅÛIr­h†«¬ ÃLê˜aq™V?7ÍŽ'§)Ö+ÄP/H?@L)ʱ;‡é0į¾Óó²0sýj1_PüÂúùÛxm~q„ŠGp± "ápø²tùò1ÿ”#tb7,ð;¸³»Ø­Ú‘È
+®ŽÒ³ò…)ˆ-ÒI#ëÍ
+7´M`É/_B"B¨õý/Õ¿!¦h²F
+ÈòÌÿÞ¦ö Ïáüµïˆd¦ò5Ä@<¡´uü`3K
+3Úú}è€3ë¨ÔhØÌ¥,\›ÆTë‥ù:ßÐÒ:‹iL²äPžêo£­÷ž–žkÅæÕÚ¯+ðßš6öQC6€V•åÇCż®ÿ☥ãûTGL*¥y°×;Á¦ÇœúÎA?jÒ·ÂâÁê ÷^è¥kjÙ'K`Ò×@[P;Sçq8Uȧc»;~4·Ï|J^~®¨Å‹+AP­X¡þì‰Ï]œö ¿.+ÛZ_$T3‘¯‹ø|ÚÌèãôHP>%
+?ÊŠ8KôºJ²DýÔßt¨õ­òðù]ŽGåø•wÄ”6.”b6,é«KPˆ!¢ÉRû2%(Ÿ/×(k¢oMõ—TÐÏâ>_j­}o6IJäwrK+掺Z@îAùw'Y@Svš˜Š(ÿ¾²e‘2Xœ’a—"•´Îžé]Ã,ø‚ªC°~\Ö¾<hQz°á ø}sa
+ᜮ‘„LÞqBòÓ¦wxHFîËÁrò4ÿî'øÚÐÜý‰¥›J@XÙöÂÌ¿^¤¨d27ß25öù4%“)‰E&GÔôU´Yáð·yÞÍ>Sàœ?–P‘ÍÉ@‰¾
+×ëûñöê(Þí#M 0~êy4uÿ l¼ÕàrÝòJW¨y{»9ú#UjY’4$‹°j£{ÿbdÄnîŠ/]¢²R²uP@¡A '%µ\kºœ×ýßtí…¥(:º&ô2>NSpÕ<&ú…ù´ä}ìõ‡õ!^ì\¹Qz¸ö÷.w\NÝc1yr-¦ú*Ñøí\µlÒDÂç?
+'š >kµ+ÏYÊ}£'U¬¾Å<0å ¤èû„‘H^çÛž‚Ì{ªgWËÊR¼ò²DGìýªŽ9d&SÝ)µ­æᯨºÝW¢Ku{0œ1ÁÂ-‚¤ÙYã–ÈQ®ÝÃzo'¼J'r,—@û­×£Û?uÓ€S’ͥΰᢠN2…:Ê›jö¹–‚¡%¼Î-Šxx¯ðõTHÁl9€§d­>|vRL–ʼn?-9Få}ƒ(á%Å\«gŒüDÂ:y P ŽŠä:ûŸ„¦˜QÓ'ÿ®[öTèUdU‚/½6l˜]ƶ¤uHÉßó—ï¦zC7rBñ¦c[»‰ÄdfµF«ãö P%ÏóS ÀNU*óý!à,2qK/a¤¬ªÐ낆µ}h˜…Ž$EÑÙ‰O¥õ6<£r­–?v|åÖßPÕkëã»O•µÅséëígŒÃÉÿäNN<Ž/{UUP7ñG¬§(d•\!„bŒ' µÙ—cwo„ú®µ‘Sœÿ(³>hç Ž²%“w•\€ÑŠÍzÒIù»•¾Û$¨1€n_½4:~
+|~ˆPyjÄ'à«ÌÓ4‘ËäÅwšiâ–'C%Ñ»O=[Cðe„:x¯x0«a1çÊd^Û96Þ³8Ù6kÇ N¥“c»6ã¥'ÞK¦9ص³‰þå8ɺb F{5³iQ«Ü'({.Ÿ£NØÓKå Ú4å®P©/.;)â¦øzž4%ýk»#†£ÊÇ¡hê]©Z1C»†ÇA›s6B9×RœøpOü«në|ï3ÀS%¡Ì€„ói–qòŽdWþ¯X¸Â^ÕMaìT“rèÓ‡0X7ˆEúöfIè\ÎïÐmÝ@q}ÒPŽy‹}“ó„Ø7ð½,Ä8ø·«sÙt¡R*võš~+ùÁ÷ÌäàlÇb˜L³D ¬WU„šÒ¯UTéÞ„OžŒ×š§ÊóÝn¯ŸU[ö0lë[‹‘vi›{«fÇ©Ýž?B>'îÔà87ÚÛ†RUÅíÚf]Åòi£ÍƶÞûöðüi°õOìærLì©ðŒ ^“âqki ¶Vnɧ7<:On°¨ ä†÷WƒSl»–âðà,³–ßûŽç+á¡ BVˆ9
+ú’Öh¦yýM§wl|ð->{8·¸ ^m`fРCÚï9Â˸lÕñ"¶Æê.%Èɨžøƒ )Bxy¹uBžWU’T”u=}î’÷‘ S›Y Z¯
+@rzAYú<àœSï~7ñõ6ý€ÎƒD”4ú¿O­ÝÓ|¾Òv`•?ˆ¨ ,×4‹T6lµJ¦´!³:LKG?‚ºKïòO"œîi]óÔrå?“ù{Æšt¤˜Rß4„Tsf3rرê¢_b®ô÷]•dƒ•Ã¡•Ç‹/S‰öÀõÿa3`ïŽ<W"¤•ò>Z8üÂê‚š9Ú”¬ýôøPÑMêƒSQpkûUë¥Sºí_
+KYå£ýäF¿f1~AM™Î³3 Ì÷=‹ñb ’Ž-TD¼‚5ñHˆûË'ӯԘܭ¹˜‹°ßòÜçÙX^‹‘;¬Øs{c…Œ ªþ¦æ#?æùLg²ó€ø²“Kà^™·ÿyGE¡×édCK-¸Éš'_Ü”Öj~«¨<)µ‘ÏÍ”9^õ's5rXHG‘";p[¦Þ좋¢˜æ v"Ìy%Í âÞïþà™²"ßínHQƹҫu•‰Î+÷âl riØwé;-uú+€ë®¤ëçæ9&‘Ž6žg½ À
+d1ÉŒö îèý&ΰIkAXŽ6ÍK…Qš&x¶â§Òýù(êÂDÊÖù¿P2:$:›ù8¤ôúˆx°¥ndAuâåÄ„ëšm⡤øzý´c"4bMSöFI/Úór¡jpsô
+[ÀàÒç’Ĭ\„ l–Š¶Ô³Æì× œïÑ
+,.àôv’¬©g‘㘰×Öµä
+éPe‡:öÚ›D±>ÖÝŠ€³äi¿OB‘à
+™lżx_] :§4àÄ—ÕáaFîåUí¤!‚:ôýa"5ÎÐù„Zƒêaò|:r±k
+cˆNJ£)&ŠL¬ä÷ŽY­P;Ãá¢â@Ê·!¥ãÄH­)`³«s¶¦±G¤ë@oï®7€~¥E (QÏ"àÖ\úá›bmŒ{ûNöäI‹5óܶùÚ[(©™‚Ýr¢í6ÛÜV[ƒ£²:Áí€#ñÁçNz-Ùîát¨+,õú¼%ý[ëm3š6X¿×°Eÿ²gÀz !]¹˜tÍb¡%OÊÀu 8ú—+"Nnô‰ŽcOÑM¯ÐRØ9¯« ;ÇCD¥îÍQå ÚdVüi<Wõ»|“ &•Ò)áôLJ
+n“ ¿S6ó°U"!¬eøÄU¨ #O±J"ÐÌ×jiߌ8²q‚™.³rÿ»Ü* 3bÀ©ôÔtžêþŠ øºÇã߸W۰˱Âÿ¸ŸôôûƒPò£ÿëûIUy6ƒ$i_–×ýŸ ¼ªÑýmB¸&ewŒÎ¤oõɲJÙóWú €ê<¾ZÅ“½äv"ÑCmò É'HÇ™zÒSD¤å5Ë+Þ{ñ
+xšã°×JþŽVsõ#-.vѹK­˜(–“*ÎrMê<hëš+mR=…BvwšŒÅRA?[N깩ª²ÑN3!fiøÊ/Áñ̇äÒPaå.Š²þ%­h3:ûa^8¼6ŸGÛ úL)vÒtÁr¼ùÄï)¦»lbVÔJ69eN’WjßòíšeÞ©Ž£;×ò®NÍ㽬ù6€ð·ÝaâˆéÃe¡yÑ fQø
+‹˜Ón*)ç÷âæ
+öÚŠÒ
+ç©q)7UÅÅÍËGÚÞCÃuç%"}å¿‚ÿhÊŸ²U‘=jÚÙ3^lØÌb°­¶¤L¸1´=ÛŠyÅLݦþ>®Ü^%¶¤þía¹ÆLƒ™»‹­¡vBhnê s<O6'êaW=,ÞíSv 3#nùF3R$”ñ 2õ¾[žWlœwxòVkÆ©oÕ?WA¨ƒ¹Žë–f”|Ñ:ærOR©[w|Ÿ3³"ªø*oú tkLÍ=¶§®ÙÞ±Iðß3E“’t8K_èШ"¦Î2Å’fžïŒ£p é¢,>gf¹‚°T£
+‌hª¶ €¸RÓûtÑX{+Wyöå8­)ñ9ËÅžr¯Ô¬Î7jJ¤ÞZšMd¤
+ñˆC }ŽÂÅ8ÛÜ#)ë³NR¿~Ybw:4Ñ…Ü'„4^˜{d;$#¿ZT»~»CSa–‚ã86Ò#úâ2la䆠EzÙâ™`F…HI8g
+ºx0…¡Uz8w8âÞ1«“ÍR ‚{BÁa]ŽsàûÞ1
+5€&›mäsï£q!íñfœè[`Ñò_1 s44špŒØÐì9ñ=;<0}ÛW$Æ–û=oO’  V#vöGÔ¸ê܉ff=ªåªs.ýO ø–äð½ùã’ž…ؼy8ÖÄÙ(J»\‹yÕÔTv.Š$~­.rõ+Ålÿ­­´;a=X!L’G
+sHKãWŸGe`u`é¹ñø‹^âøsXK%ÖýÝGÍB˜ÎéŽyßA[¨„h¦Þî°¹2èÉy—ÆHx„(÷þÚuRûŸ’[l-{Ã"¥ÂŒ…—;X
+¥™ëî ¨tq*fgjdVκ&±2ÑŒ ²1ÉüK›Li)PDƒ!xƒL™4<ŠNéÒ(;ؘÿÂ^uê7ºèF)E쉼Ö<·³LQTÈØ Zž£Þ|É35¬W™õ_ú ”=½¨·ÁÞ¥ €<ýµy¬9j–šáÒëRÇw·
+Óü uLx-Ø1ÝÐLæ/‡Ëv±nöìõ8ÓúÅêêÎÏN–N¦º ËÊ!Åjÿÿ3]f¢1¬(}4±žËF(d¤Y ¬ð1¢ÚZ…ªMuâUã€ò8«¤u½DlÛwŒ‚Bõp2!‚Œ[þ ÃêF±Ó'r/®\«Zi“?rµ@H ’@œòq»;BG"/c†n o[_¥a˜ ˆN;±M~Hé^×4™Ùxþ-{ Vœ:\]_m3A‚9¥×%–G4¯ã°ËFÁl븎%sðÉPÍ4ó„’ Ÿ=6ÅF«Ë4¾Ê€”Ïóø3¾ÄÆy: ÷Gõ'YѤ!ç‚ÊïLÿG,Ïå}§ôNWhËêÙM9¼²©GÔ¬sÒzÈ+Pó<Ê‚úĪ5Né5ÉQ+C‹%ͬÄw=h¤4ZØ÷&“¿°ºó8È~yàË5*‹3y€Í—Vsíþþ`ÅqÀŽOH"Amá
+pÐÌ!ôjWéýv±,Ù%¯ç¼æÙIRNUÊóÂ…ÃX‡}q^:Ÿƒ*UlÅ·ÀHÄBJ½fÅ-úZò9Ó”Ìþ©îàŠk‘Ââ—Þ`bHLAKDâY—Üžè„Ý£­8ÔÑTü²ìJ(ååþŽêFëB©x„“sÁ344éÑ:Ôâ
+Á›{úF›Žõç}ÿÍK\eD/=9¹TNé™U…ÿMoS#v5üötIxÒáÙKÓ?ê‚€.]ÿH-c ™pðr
+µŸÅŒwA&‹IÛÈS–ÒìNR=4YK¤‚ÆÂX
+jXÃý‘£»>ÃÈKýøÜ£7®Bì}mPiâ›cÎAʱtæ^û»Ü+-óÙæ?¢ÚN$PƒÈd5âWY{xkh\0d“]‹p†Öcó4J³ó5?Àÿ—éó¿‚’cá}¼<›b‚7£`çKš5LºàNvN”Ïý†mZ;ûÑ£ôþxþmùûbî÷¬Üëâ ÁÉ ÿklkéÐ?sF‰´ Ø¥’ä)iS¹»À×òfÿB­Q/Û)اÃÅŒ(2'¬0\Ðólþ ¾ÁmRm|µUè¸hD>çj¾+Æ;¸%èv¥ËdZ™¿äUè9?\WÀ±‚øÝ¡™þƒ»È}ö„ G†Š:áý8>ß Žw˜<¡º³Ó­eÆ¢&èIAj³i«†{ìÄÐúâX²k§˜~ŠáhD¨æ”ùîëxPC<ÆkPè]éRÛ\~Ó9¶Xg•`X`žßÔuÇÛMGÿwí“t½+°³”ãð<F‡R(éãªYÞr^+'¯ä ÙE‡0Í,ÆJÀj*1^S×ØooXVàT;RðàØQ¢.—ào’J.ˆÇµÕ•êË<| ¶aYG묧SCÓ*»þ»]QˆÛ]c¢I¡ä§cÆ5íb†ÉiAäxI±ú o­ØS¨Åéj³¥½)ñN¿—ù;¢ÞÜlñ›^f¦ªPµrT'«…Àú±ºÕÐ9"Oé臾³j7µ@Æ<Q@hŸ—eÓœÅ#Y>žJmjxY
+gzžo‹ŠÞ;4¾Ó+ìÿvç_ß¹’©y(d6æ#·]™Gß’\Áº0cb[p×M¡ ØYûïC^Ç‹<vÝRmÚ"ÔÅ0¶«@OsÌöǽëU^(­sõþPÒ{Ó–  C]´E
+ÑæöpÁ@¡«l\uCÌ=–+žrutt1ˆÑý!Jÿ I³‚÷þ¼æÉ¥xÀÖ| ´Š@¤’· {뚯½^Kn¤+¡§±?v™òEœBH²Û‰vÅ›ç™Ç-õœGFÔ¯ÑÉþN‹Y[ÆàW÷¢„aa~T¢‘zúë‡p¤TE,:™G=HX¾Š4
+É•RW®pˆ¸º¡ŽŠÎ›©²Õ.;κl„«-^h¬§”l´”í¨Ëks¨½ x"l%D,€JéZe$‚ð‰¼˜9ÂcÚκ .%ãGPõJ¦ê{½ÞãìpA4Í/ƒwÞ$?ôóŽ‡ö.-Ãx™s2G[æwëíwˆ)xW3>-UÐ]zJå1
+¾£Ú³úúˆw¡ü3pà:ó Ö#­9{™¨þó¡\£Éü^õúœ«]\´f<Ï·ÅS½çÉÅ×)óeh”õÜ8·;tûoň8Àoè¾è,´õ-8ÿN‚F½
+”Y7¢¢×,³ÈW;p؆Fs_ßžµ†ZACÇôVãQ›Ýª•y4í!®$æ¡UÅóñ¥Ø$FÞæÚÿçÇ’ÿ$;l’Ù›eÌœ7÷ÔúÞs^!†íõpÂ_ò:Ïž¼b®–IL@{iÙZ"µè,æ*ÝŸh@-]$¿ûyF äÌJÿX©8UŸñÎKÀ¼ŒË¸—,˜†¢¹ÑÂ&&áù3p|@ˈì0ßÙHì?ãë1¡SÝšZI*°ç¹ã®5zõ×%,z""dÞØ„îl³Û <CŒ¿ŽeanQXðþøy½u£ñý¸i¸!B$uºß^Ô}T×(w›Ç8öƒÔÌ–8P@ÁB ›qyà EBò(¦–ÞãFnÛ?xõ¨[ žà—fêëqIƒ˜ Îy}³:+¸Û¿[§k^Óȼ
+Š‡h‘Y;K?q¦þNJzq Ó#ÑÌGrzþÛáxþ•Øê"ÿÖÏË–@è8ý”öS/Î)Z~ÊTé^:ž+7a¹GZ«¦(f ¼ OøŠ<~‰[' 
+¦×âùü†ö6úZÎCß@axF—Z¬W@ú5‡¨çù›ïçê›·ï¿ýmRÒkv\\ÂI.v\|´œ4=bž\Ž»—Õ}2X*8 §Ë"Ý@
+OQ2nˆ/w„.Ì•`'ÕE‡¼‡#ªX㇠áÍ5ÃÂÍq¶HJç[„BŽ`·¡ÍÞæåì){í\”" ª¿”ˆB#‘–HtÈŒ<÷©^}#Ì•ë·R2˜Ö
+iððÐ'ót5jD)øûf Fáĸý CÌOˆ“a¿®¾»u&‡Cæ„‹êÕ'kØÚƒ—V'#I‡æÜÞTíkÃúC´„¹"ã#¤‚hšÕ¸Ê~`ã¯1íŽÉ áNn1Λ5”`¯êF¹³{”ÎdÃøW³˜÷«1¯‚HØÀÛ³Êå› ü,Û»fK+/1%&¢· dÆz‡Õ•í„Š±hù¤T¹¯ÅÓJ­³Ã1êµÕZVºpºeðÁ.;š>\äŸrCY^PÕ;`cÏ)t€·x4ÐbÒo¸4²)að<uæSXòÄ-}Gÿ6ªÑ× ðå©®‹q·vÝÊ »6%Y¹b@{ü62ŒÀé Œ"zI©*̱#BÚ8¨FerHú•3Àéæl€<vµÖj
+uˆðVxC’f‘qû!ÏèF2È‘ÚÍð¡yHwõ4®eÞ19d›Ãòy«Ž{×sçVe
+!#U]ãð€ù(©èj™ñ>Ì}*"£ýÈU¤´Ë:°v2
+’ ݪ«d<bJI$WÏho¬²|¥óó2c^š‹™ÂI¦Æ§€HÕèýô7ˆêúéï;z±(RžÍÇkcÌ"Ýë,… µi@ÉÿGÅÿ£=ðk'’Æ
+Ë‘oY€Çô¿Ø¢°Ž¥ ÛU‚ùûóÑÒÜãWÜä'D¸ž¦ô9xù«^÷ yhø\G­;…Âf+D¯/E4Š)…ƒ–µïD‘I=ÎJÄHÜeLHâ$Ä‘"%rr0Ó— ¤qMÔ=.Kp¾sT¨~€ Öwºa Ò}¦„DÈP¬!ª€y?¦‹Ø±$;v Òº ºS,¸~Æê„eµ§Þ<Ó„Cº‘5Bôýº(välµ+;CPÁ{Ôe®¬9,"µÐdñI#ñäp—L‚_fªæVÎ…—RÕ
+£F[#bÞË:†÷7~¨Rfœ\®‰¬Ó8¼UŠ¡ uÀYÛ€ -cíOƒê1G§s&<j…ÿªÖsì$yZ®$['ÌÂ0‚L‰}^&áCÁe("0(¶i7ß•†5ƒ8Þ¨ï;*.%H$nÇ|„10NÅôßÊYH®;kUê_ð$IõÄõþÁ&r ¶–VCcÇÁü~qCÇ1d° o{Å|^Î1SS]¶uÅÀdÿeóVœÁvë`ÎôdâkÉ •™R E ‘Xµ¾*E_eåJ~
+¼Žøð—ú¸lóOõ'ͳRšµî<Ô•ÌÛ‘m y´}Úåêèýç€JҷˆYvt±á þ2¸ØŽ@ŠÓÜM~}áÍìcá¥Ö5ˆµƒÙ"Na+pÔØÛÞ‚ÏZ¨¤2Îf<{ êÕøZ!m×õãóñ+´ÈD†7¡–=IY]™
+¯ñåñÈÄqéÔÏâÀŒ7È?^}‘p¾o&™p£Œ(}M¢·åÀüJ£°Õüp¶BržÂ,ìÄê[ÿ„¬imz£u2ò+ÈL¥\Ϭ|Ð7(Ž_»žæ}…1óšÖ?$¢ùHaÂ?Ìl¦3Œ›"t„ùù@©á´#2M#ìvtõkWª¼’{#’­0“UÍ Œê½º/“Fƒ[?œÿÖ$ÌH‹§ 
+k†J^„³ýss(ÄÍjë8Ë[L*˜.Yµ¡1tº¯_Ëþ:?š;wmUu$¾8Ï®%Îé3«­g)WÀ]
+‹óŠ¶…gÙ¦ÝK5æ
+sø2àšc{Ùi<#D»Mêe?0MÛ@¡ðìq<`u“»úœu‚éëx%jüjï‹Ë\ˇ>{äMòê¯ïÒ‘P[t­3 0[­ª/¨8H J*v5BÕî3_†®Íš{E ÌåtAÈÃPH™î}@ûžä2¥»K~ÁÒ1 Ygª¶4£R3R|QƒëÝÕ8l´0ýž,ÑB <Ç‘³çayƾ#Ý|ïAå Ù*×Í\ÆX·™„pzK©¨CÂÖ9˜hºfûrÜé¨Vl õöNTÑþ›FÙ„øµ•?­cISÁ!t ‹D _„=÷|w®$À7*…¥66R¯“VéÆKœÖ¿,û´O®ïïÒE]ØrD=˜n)ÖPD. Ïvp”£AÒîË¥5îÖû ój’iâ¤kr_‚‡/Jév÷ôý!¼x¨Ýà˜«fJV¤?‚=ò:OöZ[ Cª«*¼JÎÄðöHÎd‰ôBš¢œ-v¸Ÿ Ú:³èíË]ñ³ƒ—D±Áu\[ê³î˸˜@'É­x×ë‚Õ;ÐòiåúÛ—REqL9þ_fãZ4qÑËð›´¦.ÆLD¯>¶O¿åÂŒKûÊM¼€Œ™~èÎö“J©|›{D#¯€¢ï€g,»%,jò¶Â#—:e¸©½ERvpìÁ•(ÄCŽÐÜÛˆêšüƒÔO6KÁLÏ çjDìÀÈ«õo}u^‚rÓÏ›–»ZJóùŒi˜âÅ¿`¨œã5ü~gÌŒé"™&¸ÏP®nŒJìðõ¯Y2mèϸöé8Ö\Q©ÛôH²¬tôüÀ·rd¾§ÝjÏ©v°q¢Ë¾¡/}?f¸÷[ìÀWýU]„û÷×`D^ÂzXòߣ¯6ð•ZöÝ$€Œú6g³‚
+w.tN±”ôž§…›ZN÷à<zT\T§WÙ,À,R°(☠®¨³ÂjŸ¨…Os!^çè v?Nþ”RQ£Âä€jBÿÁ&yÌ P¼aL†’©}º±ÒäJ =¨š‘ËólLj"%t{¦ïîl\€7üƒjjÖ©Y€ËÆÍLÎyt‹¼u\V[„¯_ãJ.¥>Hsíãàõjü{Jrx0»94pŽ"-;‡ç:mÔC±ãƒRo©äêÔí°DۿܽSÞ ¼Œ~f¯°è©¨8ˆä K×?ê‹Çv%]}âÜ̬t?`cµ¡BÁ¥X v›´{ñŸ
+µ¶؃qâ™E!¯Õ æv¦°pÊ•Šß¸Õ[|ø”
+^}ÃE‡G=3ÖõË£¢zü!eøë<!`éûWçùÛY ªkrõPӵ翜ª€IF”=„‰§ÙÖóÁ8\ß‹×_¥]Û½JÇ®€±P«ô}ÏM>éÚOD‘Ñ[ë§nBgaª§÷ðÓVF]q#œ¯WQ¿ or‰ »ùx±H‡¤?Lÿ k¼—·9‰j”DL—À.DW=6º ßîýš®Pí”0P¼çåÕZá°y4¯}žwybP) "©…!Ñ+½¹B¨O#(ɲž<t¦GÞ`´È}÷åùˆ’÷~4duµ°ôWžï?‡`JYƒOïþì
+HˆÒò%!ltïÖ—-æ
+M´Lu,­ðÕŸLCHì̱.b, 6ú"cyÜÂT¿iµ\i°ñöù–3Æ"bPö©r¾5¤uVøÄ"€}—¤Qkç6 íB®@yQÍÙÒsXù·°x_ྊ5ó9)>ú`Á õ7]±áGP¯]Þo­EUZÈ ‚54-ãgÞ×
+SˆX,ò$ îÔ?§!¨Pÿns¬B[Èñ˜ÉÊf‚)N\_Œ¹®Mls¬ëÂ@=Ý ia©Dyí¡VR®já˜_7M®ÈpòHGJ*cH¨÷Ž:­‚M3§ov… ª_(ôURO`CÓ¦‡;0k¢$Ö•¦ÀMg@Ÿ„³
+éQs¹Áí:rzÎhxÅ¡ ]ËZßÕoF9üØëô¿M¸Æ)­­
+sIa.~CõL ¬€+®.®,¢òx°¡šðÖ[Ì1opl{öÆ´2ðœÙ¯g¢¹ÔBe‡¢àò.C)jh3qã†^°ÕùÜ6¨ïÐOX®chÜÒdÑEæž%â;ÿ
+¨DÀT’Có7£z|Úm¢ª÷1‘°5¢2 Õ—±TDIªDÌá¯ú+êHw¢$1ú±7·O­lDkŽ¤xyÕùJÏß 6t4#<7Sp)÷àÜkCg°àÜgÉhIn0vÞn
+£¼-Øå÷ï»Ï°ŸX(írXµñ()±ÍþÙ˜ ®6K¾Bý’‘6T’Ög“L^iõõ¬s˜
+üï5K»8Ô¸îY“v Xê£óü!VðTŸßÚs–çÕU•‰=ñsˆ¬Aa×£™…s1ª¢E±TP(µ4kÌ;ë•x¹ü¼„Óʘ€¬÷pnPxÝߌËXåêÌÑJ¨Í”@G[Ä(×(×™Þ÷#
+…'£©TÒÛ/…HUÇX¢££ }x뢆²ä°¶õÏ;iCmœeßßGŽ,ÉÎÕÐ%ƒWàªÜÈÞaŠ(jåؘn×j‘Û.ÅÿÈÒ\ãòb/?Þ#‰.( eñCÒæ½yK³"óçPûmŒÙ´`¡…3á¶z¡oq{݈qWøÌoÊþ—jƒ1°hßÀ|Op6úgÊ8f¦ÎWlÙÚÓj¦ýöë
+˜Ô’XãÏ£2pÞOþ¼3b6L†þ™Ðù|}cÜZœßÕ<_rÇôgÐz5x=íFòÈ­©Wï5|®‚@z/¾z”Ÿ þí¡Ü’/&´›«¶×§{-æk¿ÿÎÑ R®•#ÎYÚWOÿµÁ–Zh‰ “jö™|/›íš9Øý‡QuÕvØûÝš˜1°Ý'€K°Q„Z%« ¨åÍa”´Ê¼TŽ|©
+Y×€V#Bɨt—÷µ‚§SÐáiÌKȨ³¢
+qïüá¿Î82uê‡^^ —
+È¥z¸‰ ú*vV¸›ÙV6’fãKf­&GÓêvµR<슘ŒÛqó|yï›_YrèÔ,ø×):E|.ÇÜÚ0ECác¥é(æ«3]-lXÊá2Ðë|®œ¼¶è$T¬Ü®PÞ’ŽÏ"%õ qƯV.pCtLˆ=õ
+…Ok"±g¤RH
+yÞ×\
+·y ЈýÜËù®zæK„C,beh¡ö„&€îJ3Üÿ1œò 4ZXÚg³ ?¦Rb²ZÝ­ŒJŠO ±µjH46²Þøßu”ÀP³_E½È‰Ôˆ8÷ó5—ô¼Ø…”(—¶ ˜¬ ½Ã㞣m 5hüS#Yõ|$€LtV§_Å@yº£f‡°±×pj?X…ƒîò ì%É>4£z–èF‰
+Ãa¢ŽWx zfäæ[+×ï³y†~Ü|¯N…¼ŒÙ•<ÐÈ«ÑT¶°KæYÏ‚ÍÏ>=DòˆÙ×’½ ³Å Ùò ¸Ãñt,8Clî9EÀ"_/ò¾Æ›­áÅá]Ø®.ö1Ô`ÎÕ|÷ ï§ú@n]/6ü/µ|¹×ŽH—|‚b>• ܗЀBË鮆½erA)ÿ†3Hªà^ævÈtMÝ)r€gU–`ã(S}ÁMÃ:ÒMÏ,K ¡éfCµÚªÍt*@¸,b¯Æ%,mù¿ÕfƒW( qþÉŠKvóÜê¡%™.Ìj£»hÛW|Ÿm@Ê"xÐïMOXµî©Ã× Ö8x®âî ¢K÷¶r3¦Õ[{›ZEó4·þ¾OÇ[+ÿ'iòÿ¬íp|Ä·‚y›­ÞO½£WËTMÅ=nÎÇ®Œ|™a‡Ìª¹—U00#]ªö«Zæà]à93a7«Íg‹˜ˆß±Iè-È'9ÕüßäŽeÓ<k›vŠ?6µ%T§äY ~Û ¶¡’={I½¡ãÊ£D¾Öµ—<j¡#Œ³ø›×Ý©þ
+O€C˜þ:¥R'MôÊÓþÐ6ÅM ŸÜñV:—'#;¶%SåÆH¥J0ëð–Ñ«æ/´¿ñó„pWŒâü¿b=0pTI¡øš€MYÐËÛEîÐ;h‡Â'3…9qÃ_¦ Ô•^i˜Ùœe0‡šâ­ÿl3 H0Th!tÅêrNöâ§ß(,tá—
+“ú¤Þô£q›=`«ù|¸3b¼^1Ât%¨®èöÌìv
+¼¤AA§"
+¶ŒÌ•@3‰·DñÞÓ™·M-
+Q»þS®2ØiâG¡6°½ï±3ªþŒ“‹ËŽlØUìW2Ù)‘éÌ ¸=›gº`l^»òâªåXå6ºéöÀ0½œèÍ:õýM tfŽóÝÚPO =ÃB<šÿ(Ñ·ú"ÑâéeD·;§5¿'k “ëðªG©K½–W®èÝ}+ñùÊ÷ú“*àñÇá”G-'^
+(¸0XŸdæVÊ!·ë#nx~ Á\ƒ,¾Rí¡º”¼=5Ý((c$oÇàr»Â´¯kÀ… ñ¿¯tg<­VvŽ¦2#i<Õ gVå@dϘ>Ƴm+X´]|¹鳘N6JÝV– Å`kÔâèê;-ÐâoV¨2 èM)4zû ÆѼT§Lh²7ZûªénôpæCßä5M)Ú¥t«ºWm6–Ûˆî|ûHºKÍ bÍYOˆåÖ”¾½Pæ)×]L 2"þyI‘úÁ£Bßd`Á
+ÉÚþýe€,hïLÒ7LT­}L2ÄšU;Ný1[jO°&ëp} ÷ÂmŽWù¸
+G@\ÀRþg ÞÉn½x#­*ù„Ö "Mí¦ÆKèJ¬y~¤\©ðA?Iœ¾â3*\A˜¶ñZÞÍ¢:Jí”B¡²àØ“¢V5y‡TÚìPigX«õþ®ET‚ÇW²Ð­ì*•õ ‡E°ç«,M}sÜÅ"%4‰4&€²®[¾N…Ñ]ÉÄâ´oƒ­×c"=KÌüÐgéoÌ]˜‹9¦wiµ°2ùÄfºÎZ·Ñ¹Ô(ÊHGK€“ïð¤'˜›b ÉË×æ(rÆ—®j| dÖ¬ïÊý¬ázN¼.棹-4óôí…+>K
+Jž¹'Bäï¢bA©8˜{ƒ,žìç_ë£
+µçe\¹&<À‡S‚‘Ãï¼¾à]¹Ù8P–Š™ˆ†–òê`¤‚á=+ 1.ß1ƒŽÈ_Ë”ýëƒ)ŸyÇîúRžÛ6e&g}o}Ë·¾¹ë«"lz\ÿ‡vútçg Üï"«¨ø™Ãpaó
+ã0ªm]b“‡U‘¸™ÂJß²Ú!·FQÄTØy<ðm]ÎN1 I“Péht4uŸHÂo¤Ì=J,±SϾ¯>ãdçPèçÃ{¥Mw”÷ùs][­¡h>LªHÔp±]ñ´¸<DÔáð²ç¯?™™dÈ&øÆýûH–HsâÏCÔ0Þ?C§Ý¾+±$ÌnÔÌ'$Ì Á\õt#— ‰ã„}pÐxRÈR\Å9è¿ýü‚~pƒ@–÷7^ î'_€¹
+í žøÓ”í9he'v½èäÕ¦åheƒœäbäHotÝux üµzË"&W’úí¼2*WØj,H³ó>a_ï
+3šÝJÿwû%x™Éï ŒÉ¿/$¨íÁ: M;ô ó÷ðw å„ØL^?^Åwø²ñàE>Ò”Ÿï~——• ©b†„v&ˆ¾JT32iš#ÏcEY¯™hì©…P®’2ñ8Ôí=wrCk-h× žQ–ý¡•Ÿ99FÂ÷²K™u
+þ›©ú¢nîÙ:¼^ð4Yg-ËËU9‹u@.ðc¾Û3ÚöX?¯xéuT™áù*c¢]Xj®Üß^Øk늻+{õ|ù߈U¶X®üÏè\è¶ÉÊDàŸ ÈŽUþªÌK@ëŒák>Eà”€°¸¿.×$YæJå| ¹)¸
+Gža¨ÿŸkÂ}iŠŠô´ÁêMPf#VT=‚M©¢{¡õΑ&y>¶[ØI•Ý†ÝT_oý°15Šâ· ¸9yÄì¢âèÐ+îEušÂ>^ø/‘ ƒ$!¨OKµ0rÝVfù+`'#˜8è©9Æ-„ƒ&
+G !íš@“B6ͯ¿X::šþÓ8døî¶h§0ËFÎÜBkK¬FGÐêP/ÛÝÏÀg˜Ç.ÒÎeR¹eÝd|«J¡âD¸‹’™Ö'9Í'€’oŒÐÍM£‹R\<jiGsãm,/š„bW@¹™ù½Ç Œ÷6,¹ì1R­ûÎ'm¡
+">©~“¬ï¤bºåd\ÆÝä)¯êþ­‹\ñPxÁ~íîÂœ7·rÔ{ó‹\¤%¸÷$L4Ý/HqQå0¹0jáŒCu·[þ‚#)ü©$6üž¨£°ˆÌ6ÑG
+¸G2¹uîmùOµ@ØITâAZo¯2Ê]‹×IÃ1ðjjìY蟛G³ÿ1ŽØ
+XÖ²euN€\™Ž}¦·áá?øÅ\¥EÕ×ÜúPæ5ÓQ<WWžµ¸ºý·/¿=ÐqQ¯
+s’Òé}¬®´Ýô®§H‘GrAxÝf„Öq‚©xœT¨ð"Ê
+ìXzdJßFÆ%­³ˆ‰;% êtªIIÕÌŽ6Bw¥øÐUPH•Ë(h@˜Dœ
+;i ÷»`Dô•%¾2hC?Þ?‘]#MuN} :¤±vž‰%vƤÃnUM`.YæX§|ì÷&ѽïSB¡¸‚.Fá_ܹ0¾iëûg/G¤%æLKN65Ôfÿ£Go/".4ªÂ¬!>+CÞ¾ª`®nyR×'Ib/>§ÿeÄWpæCeq)%9Z‚ϧ~+a´Ê®5'< sôSÒq»‘ÂLM3-C½ë>Hì3(Å;8µ˜i4/w*î†õk¿–Óµƒù
+¨ä£E™Ö^
+üRCÒ®š¿­ j‰äÉÙËÛ˜˜¬{ƪQ^8ZNb L’´4ßæ''rvÚa¼$ØáUvªØ¸ð¶€Á<o)DÑ›-Öéö95ŠÔs˜yÍ&„[@Ü$A Z;öÅj)ìâÉ ª­ž> ø9ê„ >Ò¼Ûdu~s|þ…ÈAz÷‰È÷gv@¯8UkTÐ}U œ–Ô,tÈÜë‘‚Qâ¹Á{1‰b<÷T ‡ô˜#G÷íø¢—þ.8^_2ÝõíK• ŸòDd°ŠÈ&ÜÉÔü¾î¨ž
+š¢½‰Úë|Ï®ù¤‚mÎé÷­…‘V>ër$·‰œ„xº3/Þä¡Å¯à:µgÉ…_3Å®\æiT´`Ú¯¥Ÿ«gwÙW˜7f戱GÌ+}H.T\êBÚw¿²ãP%s¼é»Ø½Ð­…f´8`jIE0¿ã…/üCÖžQѹ/v‰O=µ. #Æ­2‚«âÖ¢-xƒú¸ž\ßÁÀUt6½gô5“=ünê|&P\2¶E\‹¾(ÑfÑÜUP0hÝhß¡ð0Ö--Y¨±]~…÷Ö²>ü'·9ÔÀäÊ(CX
+á4çàÍÊ%‚.9ô/“VkÅùTÉZ]_\Gft=ép-ë/¢ÃùàT›/ý·ý OY2ÅGßåÎ_ß*·g—¿uÓç5õ¹KüG¼}x!iÿj »U+*#L›õ¿»™Ì[B,/PùßJ¯L}Ó«‰)½ßUZ·¨AºV4øi}œ\½gn }†V<3(ßæÔý¨•jW~K¬w‰üÔxõâ̲K¼èŸföäŸGwp°z]…A…ð­\XÀB$OP@Å16±”DË/
+
+}vŠõ¦0k…8yEGÆT®ƒº
+ÍíP€OïuY«‹Ôå ©[Ùµ½x¸¿k“­OÃ-qå23]_Ž>uÜTˆÖ®ÑzŸvئ@_å *?®•¹"ã‰eø46”ŸF|gžn¡øbO¹Ú²Y†-×lùÎ*cy˱<\½×ÆÆœµ% š©ÙIöFô亭¡b ÎÎ. ×ÍA® ý|–B’Lñ¬z·Âã`Tí³÷þ£–°*<%öc­=¼Ÿñ'¬î¬H0µ3iîÖ?Î÷CÎçXÍyÈ‹õŸäi¿áá5°Ç$ˆYzLƒ°“ñK©t/¸2ø€‘Q1óÝÖµmPÔfÀf£ƒÈ<üßUßlÖä +ÒZm”ñ^%Å‚µ<Æ3MÊ´ÄrŽ„V,¡«ßdDj­
+è#WvùYYг[Ž ýíü¢Í+øZ¾Ö2
+|¹ˆ ç'êDÇÌi?ðÛ“ÖTM7Õa°3àâé'éßlåM+¤Ybð.BaœØ‚Os€øZæÃÚ4€?ä7G5TX®éÏbyCéšsKú¿ÈX÷°Vüt±£ïIÄÊ Á»&Z«¨"²çŠ>~DÍt%/DÕÙÆ#’
+Sÿè 6·˜~3iÀ¡ÅÏÔ2È<E…þ`v¸åhƒ‡uÜ-e“è›5ñÛ®ÓBžÛ
+=Œ”$î¾O'4¯Ý±õá_¥k}U²¹ ¶Zc°ËŠ‡Ç¦ÃçÇfñWÓ¤c#ïW9/÷¨[ˆ(ÉÕ ;¨\î¬Ðif½R¿öØÿ"~ùtÞ4ÞRSíGSú}[˜´Ÿ‰¹œ™GŸ~ÒÍmºÒJûZÀ]êÎ4§XÿŽÊƒµœ'Aºi嘬O¦Ó*„5DfAÒĆ\t¯Î
+¯ ;„„/Må¡50¯O <aâŒðÖNp°¢(Ö@ràËØx«óºCˆ«ä/ DKŽÍÒ’×Xn2°ÚÕFƒ#dÅŠ~6"Ç®B˜(j3ÙøB04·0W\{ëƒV•ƒêQ‘nuÝ NsohWÏ@Ä€€WÇSº4“…æI|ÎOÕk薦샇J˜>ÉÍîÉ«']Õѽý¦*EÊ…•0éàÙDñŒOqäDÿ%…³V™cÊÆÖ,Ïv¾}•nšÅ˜Âü/‹åè‡ðIÐ 5^W5.GË
+Ü“¶Z KynÒ§P“†ÈÇKªB¾"8KS pãIYª@+Ý¢£s ü‹DtÝ’»Å
+îiÊÂ…Ç`¯Ê‚É{FëkÖ³Kx[kê¼óhKÄnž†¬\&ánŒ§a¸ÒhžyÉ”¸Ä†dpCyôÖ„ÓM­ +óÆî‡h–ðrái1ìöÆbµzá2?ÏÅø¨xÅö¦/Rªâso 6)«z8¢ QØ·ù†Óõ!úÇ¢OÕ¿ŒZåêáÂM,U´ËÜ• ^˜ ¿x¿8‚‰L¥E÷–S9Oz+äâÄ©ú-ÄÝ¡ý|µ §@üˆð¿uF®_·XºtÏ¥Y.í—µº ùÝú*µñUqMA£ë
+ª ±¿ÐlMX1ɯˆf;ö³^f\›Í7dº—Xè*Ø‚yÊʾcKEì¤}^É>@¦wÀ÷+qX7&e\ÍÆ ÕVù7ÎðaƒzïáPYddÚxÍ7æŸáÊ®g¾/0Òå™ ¸¯¡¶X ùúAñè±T
+l^Öt@þUì¢3ˆ4§…dÄá¬Ó¦ä*½lrçÏ°°:Áüwé¥Çœ²ó(qffÊ“É™¸Ž®yuwY©Ú¹Õ}ôEñ×·¢J/íœâïQì(AböcÇ4Ééõ>Lrâ~²c”Í´½|“Ïùyy3͘ì«Õ6•Û!aj"g@Ÿ’/¾òôÓ˜¾BVíöÒM¥Dç!ý
+rÇ‘yÍ^¨õã&é¢Û µ‹dÍ|¦«”;/´gÄTNC•õVÛRâ B$îdw«:
+Ê£kLä6¡5gàO\U1®ç¹Âfy<º—áï*Me*|öžO©Í’ï™Îá{xÕhù ˜œÝ7*öâÊ^M\ [i.%Ç¢R;ü͵Ûó(>Í÷©š›ÒO!fñVäÖÔ»@¿}&5™µâíÙ§ÂLHUö }±ÊßЖÿe]$¿…Ôͱ{Oõá%Q“á—=F{r™ð¯QLÈ qyצEþææKá7Æd’ì§C
+I W#w×[#òÐ|û¸ÇTÈí\*6¸ð’阮ÿ{YèÐrO3Mf¶Q͘ ÕVé ìA©¶6Çq÷Rü+²ÖkA <È¿e4Ïî!±FÁ
+“XãY’[þÝ>mñZ‡Ó(€‡*+¿¼µTë¡èò|²7rn„è¡1CÞacןï¶;N7$Îè|²¥Ê¦N q4Ï¿~šùçâÑã…IÈ_Ta«å?PnÈäªýqª@ééÚ6™Ù[i¤†7kGtC1’.›àGz!f ÛF´¼GFš-g0W¹¿†ˆÂî¬Àé} •5Ø4ñ¤WRQ ÊèEë6ÄüörÊ ´LuG¼L†ò¢/Äc‡ÿŠ®%íÙ.†Û’A/,–ê57Ú)1ºÞðô $ÿnZ›AUvÂdŠHWÖ@Ø>>\ûÅRtºvwà™ß—¡D ¹ý†‡ÞK_58›íù¹?µ¡V!??mM×i¬Þžpw¸ÞYd™È h‰É+ƒf^@—E%´g›.á¢Q¹ßs3šµ šŸø5€vQÄwêoO„³2­§0
+6ƒX\ðé½n糓ûëMƒ*ßž­ú•>ø`BÁß\¸«µœãddùâM:F‹—clŽšyј
+W¬JÊ@»<áÉíW¼¿÷+Û)FëS´1Kˆ?¼¨YUSšàC¥”J>,sí¥îÓôî»fdµ“AÒôNìâΤFÂL ;ü uÊ?¼?†S–ý5 “VC‰×eÞ y[WPú5ø=‹¸~sÉ
+¡N`ÀŽ¸'~ÜÊ®¦¯PŠzr +¿‹sÙͺ±=ñH¯#=:RL<]vBI¶tp@m_´'ŽF~Q‚L«HŠÙþŸžR&Ô dU (0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark
+%%EndFont
+/TimesNewRomanPSMT havefont not {
+%%BeginFont: TimesNewRomanPSMT
+/TimesNewRomanPSMT
+15 dict dup begin
+/FontName /TimesNewRomanPSMT def
+/FontType 3 def
+/FontMatrix [ 0.000977 0 0 0.000977 0 0 ] def
+/FontAscent 935 def
+/FontDescent -221 def
+/FontScript 0 def
+/FontBBox [ 0 -512 1024 1024 ] def
+/Encoding 256 array dup 0 1 255 { /.notdef put dup } for pop def
+/l /lineto load def
+/m /moveto load def
+/c /curveto load def
+/BuildChar {
+ Adobe_Illustrator_AI5_vars exch /_bitlobyte exch put
+ Adobe_Illustrator_AI5_vars exch /_bitfont exch put
+ Adobe_Illustrator_AI5_vars /_bithibyte 0 put
+
+ _bitlobyte 16 4 string cvrs dup length (K) dup length
+ dup 4 -1 roll add string Adobe_Illustrator_AI5_vars exch /_bitkey exch put
+ exch _bitkey copy pop _bitkey exch 3 -1 roll putinterval
+ _bitfont /CharMetrics get _bitkey cvn get dup type /arraytype
+ eq { aload pop setcachedevice }
+ { 0 setcharwidth } ifelse
+ _bitfont /CharStrings get _bitkey cvn get exec
+} bind def
+12 dict dup begin
+/K20 {
+} bind def
+/K2D {
+{
+newpath
+42 192 m
+301 192 l
+301 268 l
+42 268 l
+42 192 l
+closepath
+} exec
+fill
+} bind def
+/K54 {
+{
+newpath
+38 678 m
+31 519 l
+50 519 l
+52 549 60 574 72 592 c
+84 610 99 622 117 628 c
+130 633 153 635 184 635 c
+266 635 l
+266 118 l
+266 80 262 56 255 45 c
+243 28 222 19 193 19 c
+169 19 l
+169 0 l
+458 0 l
+458 19 l
+434 19 l
+408 19 388 26 376 40 c
+367 50 362 76 362 118 c
+362 635 l
+457 635 l
+485 635 508 630 525 621 c
+542 612 556 598 566 579 c
+572 567 577 547 581 519 c
+600 519 l
+593 678 l
+38 678 l
+closepath
+} exec
+fill
+} bind def
+/K61 {
+{
+newpath
+306 8 m
+316 -3 329 -9 345 -9 c
+380 -9 415 16 453 66 c
+453 94 l
+433 74 419 62 412 58 c
+408 55 404 54 398 54 c
+393 54 389 56 385 59 c
+381 62 378 69 377 79 c
+375 89 374 115 374 159 c
+374 314 l
+374 358 371 388 365 402 c
+356 424 341 440 322 451 c
+296 464 262 471 222 471 c
+169 471 127 459 98 435 c
+69 411 54 384 54 356 c
+54 341 58 329 66 320 c
+74 311 84 307 96 307 c
+109 307 119 311 127 320 c
+135 328 139 340 139 355 c
+138 384 l
+138 399 144 412 157 423 c
+169 434 186 440 207 440 c
+234 440 255 432 269 415 c
+284 398 291 366 291 321 c
+291 303 l
+212 274 156 250 122 230 c
+88 210 65 189 51 166 c
+41 150 36 130 36 108 c
+36 73 46 44 67 23 c
+87 1 113 -10 145 -10 c
+165 -10 185 -6 203 3 c
+215 8 244 29 291 65 c
+291 38 296 19 306 8 c
+closepath
+190 48 m
+172 48 155 56 141 72 c
+126 87 119 107 119 131 c
+119 150 125 168 136 184 c
+148 200 166 215 193 230 c
+208 238 240 252 291 272 c
+291 98 l
+249 65 216 48 190 48 c
+190 48 l
+closepath
+} exec
+fill
+} bind def
+/K63 {
+{
+newpath
+407 181 m
+390 140 372 112 354 97 c
+328 75 298 64 266 64 c
+220 64 184 85 157 127 c
+130 169 117 217 117 272 c
+117 325 131 368 158 401 c
+178 426 205 438 238 438 c
+259 438 275 433 287 423 c
+298 412 305 397 307 378 c
+309 358 313 344 319 337 c
+328 324 343 318 363 318 c
+377 318 389 322 397 330 c
+405 338 409 348 409 361 c
+409 386 395 411 366 435 c
+337 459 300 471 255 471 c
+195 471 143 449 100 404 c
+57 359 36 300 36 228 c
+36 154 55 95 94 51 c
+133 8 178 -14 230 -14 c
+274 -14 314 2 350 35 c
+386 67 410 113 422 174 c
+407 181 l
+closepath
+} exec
+fill
+} bind def
+/K65 {
+{
+newpath
+426 285 m
+426 342 409 387 376 420 c
+343 454 301 471 250 471 c
+189 471 139 449 98 405 c
+58 362 38 301 38 223 c
+38 150 58 93 97 50 c
+136 7 183 -14 238 -14 c
+289 -14 331 5 365 42 c
+399 80 419 122 426 168 c
+410 178 l
+395 137 376 109 354 93 c
+332 76 306 68 276 68 c
+231 68 192 87 159 126 c
+125 164 109 217 109 285 c
+426 285 l
+closepath
+147 403 m
+169 424 194 435 222 435 c
+240 435 257 430 274 419 c
+291 409 303 394 311 375 c
+317 364 320 343 322 314 c
+109 314 l
+113 352 125 382 147 403 c
+closepath
+} exec
+fill
+} bind def
+/K68 {
+{
+newpath
+144 711 m
+7 655 l
+14 637 l
+30 642 41 645 48 645 c
+57 645 64 643 69 639 c
+74 634 78 626 80 614 c
+83 602 84 570 84 518 c
+84 104 l
+84 75 82 56 78 47 c
+74 37 69 31 62 28 c
+50 21 34 18 14 18 c
+14 0 l
+241 0 l
+241 18 l
+218 18 201 21 192 26 c
+182 31 176 37 172 45 c
+169 53 167 72 167 104 c
+167 345 l
+192 371 213 388 231 397 c
+248 406 265 410 282 410 c
+298 410 311 406 323 398 c
+334 391 342 379 347 363 c
+352 348 355 315 355 265 c
+355 104 l
+355 78 355 62 354 57 c
+350 44 344 34 336 28 c
+328 21 313 18 292 18 c
+281 18 l
+281 0 l
+506 0 l
+506 18 l
+485 18 470 20 462 25 c
+454 30 448 36 445 44 c
+440 55 438 75 438 104 c
+438 266 l
+438 322 435 361 429 382 c
+420 413 406 435 387 450 c
+368 464 346 471 320 471 c
+298 471 277 465 255 454 c
+233 442 204 416 167 375 c
+167 711 l
+144 711 l
+closepath
+} exec
+fill
+} bind def
+/K69 {
+{
+newpath
+112 696 m
+102 686 97 674 97 660 c
+97 646 102 634 112 624 c
+122 614 134 609 148 609 c
+162 609 174 614 184 624 c
+194 634 199 646 199 660 c
+199 674 194 686 184 696 c
+174 706 162 711 148 711 c
+134 711 122 706 112 696 c
+closepath
+168 471 m
+30 415 l
+37 397 l
+50 402 62 405 71 405 c
+80 405 87 402 92 398 c
+97 394 100 387 103 376 c
+106 361 107 329 107 279 c
+107 104 l
+107 76 105 56 100 46 c
+96 36 90 29 82 25 c
+74 20 59 18 37 18 c
+37 0 l
+260 0 l
+260 18 l
+238 18 223 20 215 25 c
+207 30 200 37 196 46 c
+192 56 190 75 190 104 c
+190 471 l
+168 471 l
+closepath
+} exec
+fill
+} bind def
+/K6C {
+{
+newpath
+168 711 m
+31 655 l
+40 637 l
+53 642 64 645 73 645 c
+81 645 87 643 92 639 c
+97 634 101 626 104 614 c
+106 602 107 571 107 519 c
+107 104 l
+107 76 105 56 100 46 c
+96 36 90 29 82 25 c
+75 20 60 18 39 18 c
+39 0 l
+264 0 l
+264 18 l
+240 18 224 20 216 25 c
+207 30 200 37 196 47 c
+192 56 190 75 190 104 c
+190 711 l
+168 711 l
+closepath
+} exec
+fill
+} bind def
+/K6E {
+{
+newpath
+166 471 m
+144 471 l
+6 415 l
+14 397 l
+27 402 38 405 47 405 c
+56 405 63 402 68 398 c
+73 394 77 386 79 374 c
+82 362 83 328 83 273 c
+83 104 l
+83 70 79 48 71 36 c
+62 24 47 18 23 18 c
+13 18 l
+13 0 l
+241 0 l
+241 18 l
+216 18 199 20 191 25 c
+183 29 176 36 172 46 c
+168 54 166 73 166 104 c
+166 345 l
+205 388 245 410 284 410 c
+310 410 328 401 339 382 c
+350 363 355 333 355 291 c
+355 104 l
+355 78 354 62 353 57 c
+350 44 344 34 335 28 c
+327 21 312 18 291 18 c
+281 18 l
+281 0 l
+508 0 l
+508 18 l
+486 18 471 20 463 25 c
+455 30 449 36 445 45 c
+440 55 438 75 438 104 c
+438 299 l
+438 340 434 371 427 391 c
+416 419 402 440 384 452 c
+366 465 345 471 320 471 c
+271 471 220 439 166 375 c
+166 471 l
+closepath
+} exec
+fill
+} bind def
+/K72 {
+{
+newpath
+146 471 m
+7 415 l
+12 397 l
+25 402 37 405 47 405 c
+56 405 63 402 69 398 c
+75 393 79 385 81 375 c
+83 365 84 333 84 280 c
+84 104 l
+84 77 83 61 82 55 c
+78 43 72 35 64 29 c
+53 22 35 18 12 18 c
+12 0 l
+247 0 l
+247 18 l
+226 18 211 21 200 27 c
+189 33 181 40 177 49 c
+170 62 167 82 167 107 c
+167 326 l
+183 357 198 380 213 393 c
+220 400 227 403 233 403 c
+240 403 250 397 265 386 c
+279 375 292 369 304 369 c
+316 369 326 374 335 383 c
+344 392 348 403 348 416 c
+348 430 342 443 330 454 c
+318 465 303 471 285 471 c
+244 471 205 437 167 368 c
+167 471 l
+146 471 l
+closepath
+} exec
+fill
+} bind def
+/K74 {
+{
+newpath
+150 609 m
+136 575 126 552 118 539 c
+103 515 86 494 67 477 c
+47 460 28 447 10 440 c
+10 424 l
+83 424 l
+83 115 l
+83 82 87 57 94 41 c
+101 26 111 13 126 5 c
+141 -4 156 -8 171 -8 c
+194 -8 216 0 237 17 c
+259 33 275 58 287 91 c
+267 91 l
+261 78 253 67 243 60 c
+233 53 222 50 211 50 c
+198 50 187 55 179 66 c
+170 76 166 96 166 126 c
+166 423 l
+273 424 l
+273 458 l
+166 458 l
+166 609 l
+150 609 l
+closepath
+} exec
+fill
+} bind def
+end /CharStrings exch def
+12 dict dup begin
+/K20 [256 0 0 0 0 0] def
+Encoding 32 /K20 put
+/K2D [341 0 42 193 301 268] def
+Encoding 45 /K2D put
+/K54 [626 0 31 0 600 679] def
+Encoding 84 /K54 put
+/K61 [455 0 36 -9 453 472] def
+Encoding 97 /K61 put
+/K63 [455 0 36 -13 422 472] def
+Encoding 99 /K63 put
+/K65 [455 0 38 -13 425 472] def
+Encoding 101 /K65 put
+/K68 [512 0 7 0 506 712] def
+Encoding 104 /K68 put
+/K69 [285 0 31 0 260 712] def
+Encoding 105 /K69 put
+/K6C [285 0 32 0 264 712] def
+Encoding 108 /K6C put
+/K6E [512 0 6 0 507 472] def
+Encoding 110 /K6E put
+/K72 [341 0 7 0 347 472] def
+Encoding 114 /K72 put
+/K74 [285 0 10 -7 287 609] def
+Encoding 116 /K74 put
+end /CharMetrics exch def
+end
+definefont pop
+%%EndFont
+} if
+/EuclidSymbol havefont not {
+%%BeginFont: EuclidSymbol
+/EuclidSymbol
+15 dict dup begin
+/FontName /EuclidSymbol def
+/FontType 3 def
+/FontMatrix [ 0.000977 0 0 0.000977 0 0 ] def
+/FontAscent 975 def
+/FontDescent -256 def
+/FontScript 0 def
+/FontBBox [ 0 -512 1024 1024 ] def
+/Encoding 256 array dup 0 1 255 { /.notdef put dup } for pop def
+/l /lineto load def
+/m /moveto load def
+/c /curveto load def
+/BuildChar {
+ Adobe_Illustrator_AI5_vars exch /_bitlobyte exch put
+ Adobe_Illustrator_AI5_vars exch /_bitfont exch put
+ Adobe_Illustrator_AI5_vars /_bithibyte 0 put
+
+ _bitlobyte 16 4 string cvrs dup length (K) dup length
+ dup 4 -1 roll add string Adobe_Illustrator_AI5_vars exch /_bitkey exch put
+ exch _bitkey copy pop _bitkey exch 3 -1 roll putinterval
+ _bitfont /CharMetrics get _bitkey cvn get dup type /arraytype
+ eq { aload pop setcachedevice }
+ { 0 setcharwidth } ifelse
+ _bitfont /CharStrings get _bitkey cvn get exec
+} bind def
+1 dict dup begin
+/K77 {
+{
+newpath
+18 496 m
+168 0 l
+250 0 l
+330 236 l
+347 289 362 340 375 399 c
+377 399 l
+389 341 403 292 421 237 c
+497 0 l
+579 0 l
+738 496 l
+649 496 l
+579 247 l
+562 188 549 136 541 86 c
+538 86 l
+526 136 512 188 494 248 c
+417 496 l
+341 496 l
+260 244 l
+244 189 227 136 216 86 c
+213 86 l
+204 137 190 188 176 244 c
+111 496 l
+closepath
+} exec
+fill
+} bind def
+end /CharStrings exch def
+1 dict dup begin
+/K77 [754 0 18 0 738 496] def
+Encoding 119 /K77 put
+end /CharMetrics exch def
+end
+definefont pop
+%%EndFont
+} if
+setpacking
+%AI3_EndRider
+[
+39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis
+/Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute
+/egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde
+/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex
+/udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
+/registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash
+/.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef
+/.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash
+/questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef
+/guillemotleft/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe
+/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide
+/.notdef/ydieresis/Ydieresis/fraction/Euro/guilsinglleft/guilsinglright
+/fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
+/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex
+/Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex
+/Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla
+/hungarumlaut/ogonek/caron
+TE
+%AI55J_Tsume: None
+%AI3_BeginEncoding: _EuclidSymbol EuclidSymbol
+[/_EuclidSymbol/EuclidSymbol 0 0 0 TZ
+%AI3_EndEncoding TrueType
+%AI55J_Tsume: None
+%AI3_BeginEncoding: _Times-Roman Times-Roman
+[/_Times-Roman/Times-Roman 0 0 1 TZ
+%AI3_EndEncoding AdobeType
+%AI55J_Tsume: None
+%AI3_BeginEncoding: _TimesNewRomanPSMT TimesNewRomanPSMT
+[/_TimesNewRomanPSMT/TimesNewRomanPSMT 0 0 0 TZ
+%AI3_EndEncoding TrueType
+[161/degree 173/notequal 176/infinity/plusminus/lessequal/greaterequal
+181/mu/partialdiff/summation/product/pi/integral 189/Omega
+195/radical 197/approxequal 198/Delta 214/divide/lozenge 240/apple
+/_Symbol_/Symbol 0 0 0 TZ
+%AI5_Begin_NonPrinting
+Np
+%AI8_PluginGroupInfo
+(Adobe Path Blends) (Adobe Blends Plugin) (LiveBlends.aip)
+%AI8_PluginGroupInfo
+(Adobe Tracing Object) (Tracing) (TracingSuite.aip)
+%AI8_PluginGroupInfo
+(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (ScatterBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (ScatterBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (ArtBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (ArtBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (ArtBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (ArtBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe Calligraphic Brush Tool) (Adobe Calligraphic Brush Plugin) (CalligBrushTool.aip)
+%AI8_PluginGroupInfo
+(Adobe Flare Plugin) (Flare) (Flare.aip)
+%AI8_PluginGroupInfo
+(Adobe Symbolism) (Adobe Symbolism) (ParticleSystem.aip)
+%AI8_PluginGroupInfo
+(Adobe Deform Plugin) (Adobe Envelope Plugin) (Envelope and Warp.aip)
+%AI8_PluginGroupInfo
+(Pathfinder Suite) (Adobe Compound Shape) (PathFinderS.aip)
+%AI8_PluginGroupInfo
+(Adobe Planar Group) (Adobe Live Paint Plugin) (Live Paint.aip)
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+4 Bn
+%AI5_BeginGradient: (Black, White)
+(Black, White) 0 2 Bd
+[
+<
+FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8
+D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988
+87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160
+5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938
+37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110
+0F0E0D0C0B0A09080706050403020100
+>
+0 %_Br
+[
+0 0 50 100 %_BS
+%_0 0 50 100 Bs
+1 0 50 0 %_BS
+%_1 0 50 0 Bs
+BD
+%AI5_EndGradient
+%AI5_BeginGradient: (Chrome)
+(Chrome) 0 6 Bd
+[
+0
+<
+464646454545444444444343434342424241414141404040403F3F3F3E3E3E3E3D3D3D3C3C3C3C3B
+3B3B3B3A3A3A39393939383838383737373636363635353535343434333333333232323131313130
+3030302F2F2F2E2E2E2E2D2D2D2D2C2C2C2B2B2B2B2A2A2A2A292929282828282727272626262625
+2525252424242323232322222222212121202020201F1F1F1F1E1E1E1D1D1D1D1C1C1C1B1B1B1B1A
+1A1A1A1919191818181817171717161616151515151414141413131312121212111111101010100F
+0F0F0F0E0E0E0D0D0D0D0C0C0C0C0B0B0B0A0A0A0A09090909080808070707070606060505050504
+04040403030302020202010101010000
+>
+<
+FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8
+D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988
+87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160
+5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938
+37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110
+0F0E0D0C0B0A09080706050403020100
+>
+<
+1F1E1E1E1E1E1E1E1E1E1D1D1D1D1D1D1D1D1C1C1C1C1C1C1C1C1B1B1B1B1B1B1B1B1B1A1A1A1A1A
+1A1A1A19191919191919191818181818181818181717171717171717161616161616161615151515
+15151515151414141414141414131313131313131312121212121212121211111111111111111010
+1010101010100F0F0F0F0F0F0F0F0F0E0E0E0E0E0E0E0E0D0D0D0D0D0D0D0D0C0C0C0C0C0C0C0C0C
+0B0B0B0B0B0B0B0B0A0A0A0A0A0A0A0A090909090909090909080808080808080807070707070707
+07060606060606060606050505050505050504040404040404040303030303030303030202020202
+02020201010101010101010000000000
+>
+1 %_Br
+0
+0.275
+1
+<
+6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544
+434241403F3E3D3C3B3A393837363534333231302F2E2D2C2B2A292827262524232221201F
+>
+1 %_Br
+0
+<
+00000101010102020202030303040404040505050506060607070707080808090909090A0A0A0A0B
+0B0B0C0C0C0C0D0D0D0D0E0E0E0F0F0F0F1010101011111112121212131313141414141515151516
+161617171717181818181919191A1A1A1A1B1B1B1C1C1C1C1D1D1D1D1E1E1E1F1F1F1F2020202021
+212122222222232323232424242525252526262626272727282828282929292A2A2A2A2B2B2B2B2C
+2C2C2D2D2D2D2E2E2E2E2F2F2F303030303131313132323233333333343434353535353636363637
+373738383838393939393A3A3A3B3B3B3B3C3C3C3D3D3D3D3E3E3E3E3F3F3F404040404141414142
+42424343434344444444454545464646
+>
+<
+000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F
+505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677
+78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F
+A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7
+C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
+F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
+>
+<
+00000101020203030304040505050606070708080809090A0A0B0B0B0C0C0D0D0D0E0E0F0F101010
+1111121212131314141515151616171718181819191A1A1A1B1B1C1C1D1D1D1E1E1F1F1F20202121
+222222232324242525252626272727282829292A2A2A2B2B2C2C2D2D2D2E2E2F2F2F303031313232
+32333334343435353636373737383839393A3A3A3B3B3C3C3C3D3D3E3E3F3F3F4040414142424243
+434444444545464647474748484949494A4A4B4B4C4C4C4D4D4E4E4F4F4F50505151515252535354
+54545555565657575758585959595A5A5B5B5C5C5C5D5D5E5E5E5F5F606061616162626363646464
+6565666666676768686969696A6A6B6B
+>
+1 %_Br
+1
+0 %_Br
+<
+FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8
+D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988
+87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160
+5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938
+37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110
+0F0E0D0C0B0A09080706050403020100
+>
+<
+4D4C4C4C4B4B4B4A4A4A4A4949494848484747474746464645454544444444434343424242414141
+414040403F3F3F3E3E3E3E3D3D3D3C3C3C3B3B3B3B3A3A3A39393938383838373737363636353535
+35343434333333323232323131313030302F2F2F2E2E2E2E2D2D2D2C2C2C2B2B2B2B2A2A2A292929
+282828282727272626262525252524242423232322222222212121202020201F1F1F1E1E1E1D1D1D
+1D1C1C1C1B1B1B1A1A1A1A1919191818181717171616161615151514141413131313121212111111
+101010100F0F0F0E0E0E0D0D0D0D0C0C0C0B0B0B0A0A0A0A09090908080807070707060606050505
+04040404030303020202010101010000
+>
+0
+0
+1 %_Br
+[
+1 0 50 92 %_BS
+%_1 0 50 92 Bs
+0 0.275 1 0.12 1 50 59 %_BS
+%_0 0.275 1 0.12 1 50 59 Bs
+0 0.275 1 0.42 1 50 50 %_BS
+%_0 0.275 1 0.42 1 50 50 Bs
+1 0 50 49 %_BS
+%_1 0 50 49 Bs
+1 0 50 41 %_BS
+%_1 0 50 41 Bs
+1 0.3 0 0 1 50 0 %_BS
+%_1 0.3 0 0 1 50 0 Bs
+BD
+%AI5_EndGradient
+%AI5_BeginGradient: (Rainbow)
+(Rainbow) 0 6 Bd
+[
+<
+FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8
+D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988
+87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160
+5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938
+37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110
+0F0E0D0C0B0A09080706050403020100
+>
+1
+0
+0
+1 %_Br
+1
+<
+0708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E
+2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F50515253545556
+5758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E
+7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6
+A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCE
+CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6
+F7F8F9FAFBFCFDFEFF
+>
+0
+0
+1 %_Br
+1
+<
+00000000000000000000000000000000000001010101010101010101010101010101010101010101
+01010101010101010101010101010202020202020202020202020202020202020202020202020202
+02020202020202020202030303030303030303030303030303030303030303030303030303030303
+03030303030304040404040404040404040404040404040404040404040404040404040404040404
+04040505050505050505050505050505050505050505050505050505050505050505050505050606
+06060606060606060606060606060606060606060606060606060606060606060607070707070707
+07070707070707070707070707070707
+>
+<
+FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8
+D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988
+87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160
+5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938
+37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110
+0F0E0D0C0B0A09080706050403020100
+>
+0
+1 %_Br
+<
+000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627
+28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F
+505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677
+78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F
+A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7
+C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
+F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
+>
+0
+1
+0
+1 %_Br
+0
+<
+FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8
+D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988
+87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160
+5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938
+37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110
+0F0E0D0C0B0A09080706050403020100
+>
+1
+0
+1 %_Br
+[
+0 1 0 0 1 50 100 %_BS
+%_0 1 0 0 1 50 100 Bs
+1 1 0 0 1 50 80 %_BS
+%_1 1 0 0 1 50 80 Bs
+1 0.0279 0 0 1 50 60 %_BS
+%_1 0.0279 0 0 1 50 60 Bs
+1 0 1 0 1 50 40 %_BS
+%_1 0 1 0 1 50 40 Bs
+0 0 1 0 1 50 20 %_BS
+%_0 0 1 0 1 50 20 Bs
+0 1 1 0 1 50 0 %_BS
+%_0 1 1 0 1 50 0 Bs
+BD
+%AI5_EndGradient
+%AI5_BeginGradient: (Yellow & Orange Radial)
+(Yellow & Orange Radial) 1 2 Bd
+[
+0
+<
+0001010203040506060708090A0B0C0C0D0E0F10111213131415161718191A1B1C1D1D1E1F202122
+232425262728292A2B2B2C2D2E2F303132333435363738393A3B3C3D3E3E3F404142434445464748
+494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60606162636465666768696A6B6C6D6E6F
+707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C
+>
+<
+FFFFFFFFFEFEFEFEFEFEFEFDFDFDFDFDFDFCFCFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAFAF9F9F9F9F9
+F9F8F8F8F8F8F8F7F7F7F7F7F7F6F6F6F6F6F6F5F5F5F5F5F5F4F4F4F4F4F3F3F3F3F3F3F2F2F2F2
+F2F2F1F1F1F1F1F0F0F0F0F0F0EFEFEFEFEFEFEEEEEEEEEEEDEDEDEDEDEDECECECECECEBEBEBEBEB
+EBEAEAEAEAEAE9E9E9E9E9E9E8E8E8E8E8E8E7E7E7E7E7E6E6E6E6E6E6
+>
+0
+1 %_Br
+[
+0 0 1 0 1 52 19 %_BS
+%_0 0 1 0 1 52 19 Bs
+0 0.55 0.9 0 1 50 100 %_BS
+%_0 0.55 0.9 0 1 50 100 Bs
+BD
+%AI5_EndGradient
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI3_BeginPattern: (Brick)
+(Brick) 0 0 72 72 [
+%AI3_Tile
+(0 O 0 R 0.3 0.85 0.85 0 k
+ 0.3 0.85 0.85 0 K
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 1 w 4 M []0 d
+0 XR
+0 0 m
+0 72 L
+72 72 L
+72 0 L
+0 0 L
+f
+%AI6_EndPatternLayer
+) &
+(0 O 0 R 1 g
+ 1 G
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 0.3 w 4 M []0 d
+0 XR
+0 68.4097 m
+72 68.4097 l
+S
+0 61.209 m
+72 61.209 L
+S
+0 54.0088 m
+72 54.0088 L
+S
+0 46.8076 m
+72 46.8076 L
+S
+0 39.6084 m
+72 39.6084 L
+S
+0 32.4072 m
+72 32.4072 L
+S
+0 25.207 m
+72 25.207 L
+S
+0 18.0059 m
+72 18.0059 L
+S
+0 10.8057 m
+72 10.8057 L
+S
+0 3.6064 m
+72 3.6064 L
+S
+68.4102 68.4097 m
+68.4102 61.2217 l
+S
+54.0098 68.4097 m
+54.0098 61.2217 L
+S
+39.6094 68.4097 m
+39.6094 61.2217 L
+S
+25.21 68.4097 m
+25.21 61.2217 L
+S
+10.8105 68.4097 m
+10.8105 61.2217 L
+S
+68.4102 53.9717 m
+68.4102 46.7842 l
+S
+54.0098 53.9717 m
+54.0098 46.7842 L
+S
+39.6094 53.9717 m
+39.6094 46.7842 L
+S
+25.21 53.9717 m
+25.21 46.7842 L
+S
+10.8105 53.9717 m
+10.8105 46.7842 L
+S
+68.4102 39.5967 m
+68.4102 32.4092 l
+S
+54.0098 39.5967 m
+54.0098 32.4092 L
+S
+39.6094 39.5967 m
+39.6094 32.4092 L
+S
+25.21 39.5967 m
+25.21 32.4092 L
+S
+10.8105 39.5967 m
+10.8105 32.4092 L
+S
+68.4102 25.2217 m
+68.4102 18.0342 l
+S
+54.0098 25.2217 m
+54.0098 18.0342 L
+S
+39.6094 25.2217 m
+39.6094 18.0342 L
+S
+25.21 25.2217 m
+25.21 18.0342 L
+S
+10.8105 25.2217 m
+10.8105 18.0342 L
+S
+68.4102 10.7842 m
+68.4102 3.5967 l
+S
+54.0098 10.7842 m
+54.0098 3.5967 L
+S
+39.6094 10.7842 m
+39.6094 3.5967 L
+S
+25.21 10.7842 m
+25.21 3.5967 L
+S
+10.8105 10.7842 m
+10.8105 3.5967 L
+S
+61.1973 3.5967 m
+61.1973 0 L
+S
+46.7969 3.5967 m
+46.7969 0 L
+S
+32.3965 3.5967 m
+32.3965 0 L
+S
+17.9971 3.5967 m
+17.9971 0 L
+S
+3.5967 3.5967 m
+3.5967 0 l
+S
+61.1973 18.0342 m
+61.1973 10.8467 L
+S
+46.7969 18.0342 m
+46.7969 10.8467 L
+S
+32.3965 18.0342 m
+32.3965 10.8467 L
+S
+17.9971 18.0342 m
+17.9971 10.8467 L
+S
+3.5967 18.0342 m
+3.5967 10.8467 l
+S
+61.1973 32.4092 m
+61.1973 25.2217 L
+S
+46.7969 32.4092 m
+46.7969 25.2217 L
+S
+17.9971 32.4092 m
+17.9971 25.2217 L
+S
+3.5967 32.4092 m
+3.5967 25.2217 l
+S
+61.1973 46.7842 m
+61.1973 39.5967 L
+S
+46.7969 46.7842 m
+46.7969 39.5967 L
+S
+32.3965 46.7842 m
+32.3965 39.5967 L
+S
+17.9971 46.7842 m
+17.9971 39.5967 L
+S
+3.5967 46.7842 m
+3.5967 39.5967 l
+S
+61.1973 61.2217 m
+61.1973 54.0347 L
+S
+46.7969 61.2217 m
+46.7969 54.0347 L
+S
+32.3965 61.2217 m
+32.3965 54.0347 L
+S
+17.9971 61.2217 m
+17.9971 54.0347 L
+S
+3.5967 61.2217 m
+3.5967 54.0347 l
+S
+61.1973 71.959 m
+61.1973 68.4717 L
+S
+46.7969 71.959 m
+46.7969 68.4717 L
+S
+32.3965 71.959 m
+32.3965 68.4717 L
+S
+17.9971 71.959 m
+17.9971 68.4717 L
+S
+3.5967 71.959 m
+3.5967 68.4717 l
+S
+32.3965 32.4092 m
+32.3965 25.2217 L
+S
+%AI6_EndPatternLayer
+) &
+] E
+%AI3_EndPattern
+%AI3_BeginPattern: (Confetti)
+(Confetti) 4.85 3.617 76.85 75.617 [
+%AI3_Tile
+(0 O 0 R 1 g
+ 1 G
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 1 w 4 M []0 d
+0 XR
+4.85 3.617 m
+4.85 75.617 L
+76.85 75.617 L
+76.85 3.617 L
+4.85 3.617 L
+f
+%AI6_EndPatternLayer
+) &
+(0 O 0 R 0 g
+ 0 G
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 0.3 w 4 M []0 d
+0 XR
+10.6 64.867 m
+7.85 62.867 l
+S
+9.1 8.617 m
+6.85 6.867 l
+S
+78.1 68.617 m
+74.85 67.867 l
+S
+76.85 56.867 m
+74.35 55.117 l
+S
+79.6 51.617 m
+76.6 51.617 l
+S
+76.35 44.117 m
+73.6 45.867 l
+S
+78.6 35.867 m
+76.6 34.367 l
+S
+76.1 23.867 m
+73.35 26.117 l
+S
+78.1 12.867 m
+73.85 13.617 l
+S
+68.35 14.617 m
+66.1 12.867 l
+S
+76.6 30.617 m
+73.6 30.617 l
+S
+62.85 58.117 m
+60.956 60.941 l
+S
+32.85 59.617 m
+31.196 62.181 l
+S
+47.891 64.061 m
+49.744 66.742 l
+S
+72.814 2.769 m
+73.928 5.729 l
+S
+67.976 2.633 m
+67.35 5.909 l
+S
+61.85 27.617 m
+59.956 30.441 l
+S
+53.504 56.053 m
+51.85 58.617 l
+S
+52.762 1.779 m
+52.876 4.776 l
+S
+45.391 5.311 m
+47.244 7.992 l
+S
+37.062 3.375 m
+35.639 5.43 l
+S
+55.165 34.828 m
+57.518 37.491 l
+S
+20.795 3.242 m
+22.12 5.193 l
+S
+14.097 4.747 m
+15.008 8.965 l
+S
+9.736 1.91 m
+8.073 4.225 l
+S
+31.891 5.573 m
+32.005 8.571 l
+S
+12.1 70.367 m
+15.6 68.867 l
+S
+9.35 54.867 m
+9.6 58.117 l
+S
+12.85 31.867 m
+14.35 28.117 l
+S
+10.1 37.367 m
+12.35 41.117 l
+S
+34.1 71.117 m
+31.85 68.617 l
+S
+38.35 71.117 m
+41.6 68.367 l
+S
+55.1 71.117 m
+58.35 69.117 l
+S
+57.35 65.117 m
+55.35 61.867 l
+S
+64.35 66.367 m
+69.35 68.617 l
+S
+71.85 62.867 m
+69.35 61.117 l
+S
+23.6 70.867 m
+23.6 67.867 l
+S
+20.6 65.867 m
+17.35 65.367 l
+S
+24.85 61.367 m
+25.35 58.117 l
+S
+25.85 65.867 m
+29.35 66.617 l
+S
+14.1 54.117 m
+16.85 56.117 l
+S
+12.35 11.617 m
+12.6 15.617 l
+S
+12.1 19.867 m
+14.35 22.367 l
+S
+26.1 9.867 m
+23.6 13.367 l
+S
+34.6 47.117 m
+32.1 45.367 l
+S
+62.6 41.867 m
+59.85 43.367 l
+S
+31.6 35.617 m
+27.85 36.367 l
+S
+36.35 26.117 m
+34.35 24.617 l
+S
+33.85 14.117 m
+31.1 16.367 l
+S
+37.1 9.867 m
+35.1 11.117 l
+S
+34.35 20.867 m
+31.35 20.867 l
+S
+44.6 56.617 m
+42.1 54.867 l
+S
+47.35 51.367 m
+44.35 51.367 l
+S
+44.1 43.867 m
+41.35 45.617 l
+S
+43.35 33.117 m
+42.6 30.617 l
+S
+43.85 23.617 m
+41.1 25.867 l
+S
+44.35 15.617 m
+42.35 16.867 l
+S
+67.823 31.1 m
+64.823 31.1 l
+S
+27.1 32.617 m
+29.6 30.867 l
+S
+31.85 55.117 m
+34.85 55.117 l
+S
+19.6 40.867 m
+22.1 39.117 l
+S
+16.85 35.617 m
+19.85 35.617 l
+S
+20.1 28.117 m
+22.85 29.867 l
+S
+52.1 42.617 m
+54.484 44.178 l
+S
+52.437 50.146 m
+54.821 48.325 l
+S
+59.572 54.133 m
+59.35 51.117 l
+S
+50.185 10.055 m
+53.234 9.928 l
+S
+51.187 15.896 m
+53.571 14.075 l
+S
+58.322 19.883 m
+59.445 16.823 l
+S
+53.1 32.117 m
+50.6 30.367 l
+S
+52.85 24.617 m
+49.6 25.617 l
+S
+61.85 9.117 m
+59.1 10.867 l
+S
+69.35 34.617 m
+66.6 36.367 l
+S
+67.1 23.617 m
+65.1 22.117 l
+S
+24.435 46.055 m
+27.484 45.928 l
+S
+25.437 51.896 m
+27.821 50.075 l
+S
+62.6 47.117 m
+65.321 46.575 l
+S
+19.85 19.867 m
+20.35 16.617 l
+S
+21.85 21.867 m
+25.35 22.617 l
+S
+37.6 62.867 m
+41.6 62.117 l
+S
+38.323 42.1 m
+38.823 38.6 l
+S
+69.35 52.617 m
+66.85 53.867 l
+S
+14.85 62.117 m
+18.1 59.367 l
+S
+9.6 46.117 m
+7.1 44.367 l
+S
+20.6 51.617 m
+18.6 50.117 l
+S
+46.141 70.811 m
+47.994 73.492 l
+S
+69.391 40.561 m
+71.244 43.242 l
+S
+38.641 49.311 m
+39.35 52.117 l
+S
+25.141 16.811 m
+25.85 19.617 l
+S
+36.6 32.867 m
+34.6 31.367 l
+S
+6.1 68.617 m
+2.85 67.867 l
+S
+4.85 56.867 m
+2.35 55.117 l
+S
+7.6 51.617 m
+4.6 51.617 l
+S
+6.6 35.867 m
+4.6 34.367 l
+S
+6.1 12.867 m
+1.85 13.617 l
+S
+4.6 30.617 m
+1.6 30.617 l
+S
+72.814 74.769 m
+73.928 77.729 l
+S
+67.976 74.633 m
+67.35 77.909 l
+S
+52.762 73.779 m
+52.876 76.776 l
+S
+37.062 75.375 m
+35.639 77.43 l
+S
+20.795 75.242 m
+22.12 77.193 l
+S
+9.736 73.91 m
+8.073 76.225 l
+S
+10.1 23.617 m
+6.35 24.367 l
+S
+73.217 18.276 m
+71.323 21.1 l
+S
+28.823 39.6 m
+29.505 42.389 l
+S
+49.6 38.617 m
+47.6 37.117 l
+S
+60.323 73.6 m
+62.323 76.6 l
+S
+60.323 1.6 m
+62.323 4.6 l
+S
+%AI6_EndPatternLayer
+) &
+] E
+%AI3_EndPattern
+%AI3_BeginPattern: (Leaves - Fall )
+(Leaves - Fall ) 0 0 64.0781 78.9336 [
+%AI3_Tile
+(0 O 0 R 0.05 0.2 1 0 k
+ 0.05 0.2 1 0 K
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 1 w 4 M []0 d
+0 XR
+64.0781 78.9336 m
+64.0781 0 L
+0 0 L
+0 78.9336 L
+64.0781 78.9336 L
+f
+%AI6_EndPatternLayer
+) &
+(0 O 0 R 0.83 0 1 0 k
+ 0.83 0 1 0 K
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 1 w 4 M []0 d
+0 XR
+29.7578 0.9902 m
+30.4346 1.1914 30.7246 1.3428 V
+29.2559 4.0547 33.707 8.3359 34.627 9.0762 C
+35.2275 8.8506 35.3477 6.3184 34.6699 4.9805 C
+35.5137 5.1035 37.7031 3.7256 38.4609 2.4365 C
+38.5254 3.125 40.0957 6.0664 40.9219 6.4434 C
+40.002 6.8408 39.3359 8.3135 38.5742 9.7617 C
+39.5957 9.9287 40.9961 9.0078 42.4668 8.1025 C
+42.9814 8.9043 44.3555 9.875 45.6143 10.3916 C
+44.5264 11.0781 44.0313 11.8203 43.5352 13.2793 C
+42.4922 12.7139 40.3057 12.5645 39.7764 12.8516 C
+40.291 13.9648 42.5371 14.5078 43.2676 14.4551 C
+43.0137 15.3164 42.8652 17.4697 43.0391 20.0625 C
+41.3789 18.7461 39.834 17.4297 38.1738 17.4883 C
+38.4434 16.0664 37.8076 14.2607 37.4307 13.7676 C
+36.8574 14.5117 36.4463 15.3389 36.8008 17.3164 C
+35.3486 17.8008 34.1113 18.3467 32.7373 19.6045 C
+32.7373 17.7734 32.166 16.5723 31.2969 15.2959 C
+32.5576 14.8076 33.8301 13.6045 33.8252 12.5664 C
+32.9775 12.7178 31.2852 13.4619 30.793 14.4551 C
+30.0742 13.707 28.3906 12.3984 26.7871 12.3945 C
+27.9746 11.5391 28.8945 10.5059 28.9893 8.5938 C
+30.2422 9.5645 32.6953 10.1797 34.0752 9.582 C
+29.2344 5.3457 29.7031 2.3125 29.7578 0.9902 C
+f
+13.8525 29.9844 m
+13.3281 29.5127 13.1309 29.25 V
+15.623 27.4326 13.3691 21.6074 12.8555 20.5439 C
+12.2168 20.4883 10.8096 23.2285 10.8457 24.7266 C
+9.7129 23.9707 8.0488 24.0918 6.4463 24.3779 C
+7.0186 23.2891 6.6172 21.3447 5.8164 20.5439 C
+6.8184 20.5801 8.1699 19.8652 9.4785 18.8838 C
+8.6436 18.0645 6.8164 18.2246 4.9004 18.8838 C
+4.9004 17.5107 4.0781 15.7734 3.2412 14.5918 C
+4.5576 14.6484 5.7031 13.9629 6.5605 12.9316 C
+7.2256 14.5 9.2598 15.6133 10.166 15.5645 C
+10.1826 14.1992 8.6094 12.1094 7.5879 11.7109 C
+8.1875 11.041 9.207 9.5107 10.166 7.0947 C
+10.9648 9.0205 12.1348 10.2627 13.3672 11.1953 C
+12.2256 12.7578 12.3994 13.6289 12.7988 15.1074 C
+13.541 14.5664 14.5723 14.1338 14.7441 12.1309 C
+16.4609 12.416 17.5957 12.3447 19.0938 11.4434 C
+18.6387 13.1055 18.6348 14.707 18.9551 16.4063 C
+17.1055 16.2666 15.5449 16.4795 14.5156 17.9688 C
+15.3457 18.1953 17.6055 18.2549 18.4795 17.3223 C
+18.8066 18.3047 19.7012 19.7109 21.1475 20.4043 C
+19.707 20.6641 18.7227 21.7637 17.8135 23.4492 C
+17.1006 22.0332 14.873 20.3691 13.3711 20.3145 C
+15.373 24.3779 15.373 27.2959 13.8525 29.9844 C
+f
+41.2324 26.0742 m
+41.5518 26.7021 41.7549 26.959 V
+44.1523 25.0176 48.958 28.3262 49.8535 29.0957 C
+49.7432 29.7266 47.6182 30.8643 45.9004 29.834 C
+46.3408 31.123 45.4395 33.084 44.2402 34.126 C
+45.9805 34.0254 48.126 35.3867 48.6484 36.1289 C
+48.8701 35.1514 50.0527 33.8809 51.3379 32.8672 C
+51.6895 33.8398 50.9941 35.958 50.0781 37.5605 C
+51.3125 38.0605 52.4248 38.9912 52.8828 40.25 C
+53.3398 38.9336 54.3428 38.2598 55.6875 37.5039 C
+54.5273 36.0762 53.7471 33.9023 54.0273 33.0391 C
+55.3496 33.374 56.9209 36.0918 57.0439 37.1816 C
+57.9189 36.415 59.4727 35.7285 62.0537 35.4219 C
+60.3535 34.3438 59.9902 32.3516 59.4063 30.9219 C
+58.2588 31.3682 56.0898 31.4277 55.1152 30.8643 C
+55.8281 30.2852 57.168 29.7344 59.1777 29.7207 C
+59.1777 28.1758 59.6406 27.043 60.8945 25.8281 C
+59.1719 25.8418 57.0723 25.3555 55.5762 24.9629 C
+55.3281 26.292 54.4844 27.8887 53.3398 28.2891 C
+53.334 27.4277 53.5996 25.1797 54.4844 24.5117 C
+53.6201 23.9443 52.3672 22.5674 51.9102 20.8496 C
+51.2881 22.1758 50.4268 23.4805 48.5645 23.9238 C
+49.749 24.9766 50.584 26.9941 50.25 28.4609 C
+45.1973 24.4785 42.5215 25.7773 41.2324 26.0742 C
+f
+27.7578 38.7324 m
+28.4346 38.9316 28.7246 39.084 V
+27.2559 41.7969 31.707 46.0776 32.627 46.8169 C
+33.2275 46.5918 33.3477 44.0586 32.6699 42.7227 C
+33.5137 42.8457 35.7031 41.4678 36.4609 40.1787 C
+36.5254 40.8652 38.0957 43.8066 38.9219 44.1846 C
+38.002 44.582 37.3359 46.0547 36.5742 47.5039 C
+37.5957 47.6709 38.9961 46.7485 40.4668 45.8438 C
+40.9814 46.6445 42.3555 47.6177 43.6143 48.1328 C
+42.5264 48.8198 42.0313 49.5615 41.5352 51.0205 C
+40.4922 50.4556 38.3057 50.3057 37.7764 50.5938 C
+38.291 51.7056 40.5371 52.2485 41.2676 52.1958 C
+41.0137 53.0576 40.8652 55.2109 41.0391 57.8037 C
+39.3789 56.4878 37.834 55.1719 36.1738 55.2285 C
+36.4434 53.8076 35.8076 52.002 35.4307 51.5088 C
+34.8574 52.2529 34.4463 53.0796 34.8008 55.0576 C
+33.3486 55.5425 32.1113 56.0879 30.7373 57.3467 C
+30.7373 55.5146 30.166 54.314 29.2969 53.0366 C
+30.5576 52.5488 31.8301 51.3467 31.8252 50.3076 C
+30.9775 50.46 29.2852 51.2036 28.793 52.1958 C
+28.0742 51.4497 26.3906 50.1396 24.7871 50.1357 C
+25.9746 49.2817 26.8945 48.2466 26.9893 46.335 C
+28.2422 47.3057 30.6953 47.9209 32.0752 47.3237 C
+27.2344 43.0869 27.7031 40.0547 27.7578 38.7324 C
+f
+13.5195 70.3916 m
+12.9941 69.9209 12.7988 69.6587 V
+15.2891 67.8418 13.0352 62.0146 12.5225 60.9517 C
+11.8828 60.8955 10.4766 63.6367 10.5117 65.1348 C
+9.3809 64.3789 7.7148 64.4995 6.1133 64.7856 C
+6.6855 63.6987 6.2842 61.7529 5.4834 60.9517 C
+6.4854 60.9878 7.8359 60.2729 9.1455 59.2925 C
+8.3105 58.4717 6.4834 58.6338 4.5674 59.2925 C
+4.5674 57.9189 3.7461 56.1816 2.9082 54.9995 C
+4.2246 55.0576 5.3691 54.3706 6.2275 53.3408 C
+6.8926 54.9097 8.9258 56.0215 9.832 55.9727 C
+9.8496 54.6079 8.2764 52.5176 7.2539 52.1187 C
+7.8545 51.4497 8.873 49.9189 9.832 47.5039 C
+10.6309 49.4297 11.8008 50.6719 13.0342 51.6045 C
+11.8926 53.1655 12.0664 54.0366 12.4648 55.5146 C
+13.209 54.9746 14.2393 54.5415 14.4102 52.5386 C
+16.127 52.8247 17.2637 52.7529 18.7598 51.8525 C
+18.3057 53.5137 18.3027 55.1147 18.623 56.8149 C
+16.7725 56.6748 15.2129 56.8887 14.1826 58.377 C
+15.0117 58.6035 17.2725 58.6626 18.1465 57.731 C
+18.4736 58.7129 19.3691 60.1187 20.8145 60.8125 C
+19.375 61.0728 18.3896 62.1719 17.4805 63.8579 C
+16.7676 62.4429 14.541 60.7769 13.0371 60.7227 C
+15.041 64.7856 15.041 67.7046 13.5195 70.3916 C
+f
+41.2324 64.4824 m
+41.5518 65.1113 41.7549 65.3682 V
+44.1523 63.4272 48.958 66.7354 49.8535 67.5034 C
+49.7432 68.1362 47.6182 69.2725 45.9004 68.2422 C
+46.3408 69.5313 45.4395 71.4922 44.2402 72.5342 C
+45.9805 72.4341 48.126 73.7954 48.6484 74.5371 C
+48.8701 73.5601 50.0527 72.29 51.3379 71.2754 C
+51.6895 72.249 50.9941 74.3662 50.0781 75.9683 C
+51.3125 76.4692 52.4248 77.3994 52.8828 78.6582 C
+53.3398 77.3423 54.3428 76.667 55.6875 75.9111 C
+54.5273 74.4844 53.7471 72.3101 54.0273 71.4473 C
+55.3496 71.7822 56.9209 74.5 57.0439 75.5903 C
+57.9189 74.8232 59.4727 74.1372 62.0537 73.8311 C
+60.3535 72.7534 59.9902 70.7612 59.4063 69.3301 C
+58.2588 69.7773 56.0898 69.8364 55.1152 69.2725 C
+55.8281 68.6934 57.168 68.1431 59.1777 68.1284 C
+59.1777 66.583 59.6406 65.4512 60.8945 64.2373 C
+59.1719 64.249 57.0723 63.7632 55.5762 63.3721 C
+55.3281 64.7002 54.4844 66.2974 53.3398 66.6973 C
+53.334 65.8364 53.5996 63.5874 54.4844 62.9214 C
+53.6201 62.353 52.3672 60.9751 51.9102 59.2583 C
+51.2881 60.583 50.4268 61.8882 48.5645 62.333 C
+49.749 63.3862 50.584 65.4033 50.25 66.8691 C
+45.1973 62.8872 42.5215 64.1851 41.2324 64.4824 C
+f
+%AI6_EndPatternLayer
+) &
+] E
+%AI3_EndPattern
+%AI3_BeginPattern: (Stripes)
+(Stripes) 8.45 4.6001 80.45 76.6001 [
+%AI3_Tile
+(0 O 0 R 1 0.07 1 0 k
+ 1 0.07 1 0 K
+) @
+(
+%AI6_BeginPatternLayer
+0 J 0 j 3.6 w 4 M []0 d
+0 XR
+8.2 8.2 m
+80.7 8.2 L
+S
+8.2 22.6001 m
+80.7 22.6001 L
+S
+8.2 37.0002 m
+80.7 37.0002 L
+S
+8.2 51.4 m
+80.7 51.4 L
+S
+8.2 65.8001 m
+80.7 65.8001 L
+S
+8.2 15.4 m
+80.7 15.4 L
+S
+8.2 29.8001 m
+80.7 29.8001 L
+S
+8.2 44.2 m
+80.7 44.2 L
+S
+8.2 58.6001 m
+80.7 58.6001 L
+S
+8.2 73.0002 m
+80.7 73.0002 L
+S
+%AI6_EndPatternLayer
+) &
+] E
+%AI3_EndPattern
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI8_BeginBrushPattern
+(New Pattern 1)
+0 A
+u
+1 Ap
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-7966.8496 8072.5967 m
+-7966.8496 8048.5967 L
+-8016.8496 8048.5967 L
+-8016.8496 8072.5967 L
+-7966.8496 8072.5967 L
+n
+u
+0 Ap
+0 O
+1 g
+-7986.8496 8070.5967 m
+-7999.0596 8073.6494 -8007.543 8063.6572 -8016.8496 8056.5479 C
+F
+-7976.8496 8070.5967 m
+-7993.2275 8074.6904 -8002.9004 8055.3193 -8016.8496 8050.9121 C
+F
+-8016.8496 8050.5967 m
+-7996.8496 8045.5967 -7986.8496 8075.5967 -7966.8496 8070.5967 C
+F
+-8006.8496 8050.5967 m
+-7990.4717 8046.502 -7980.7988 8065.874 -7966.8496 8070.2813 C
+F
+-7996.8496 8050.5967 m
+-7984.6396 8047.5439 -7976.1563 8057.5361 -7966.8496 8064.6455 C
+F
+-7976.8496 8050.5967 m
+-7973.2275 8049.6904 -7969.9351 8049.9375 -7966.8496 8050.9121 C
+F
+-8006.8496 8070.5967 m
+-8010.4717 8071.502 -8013.7651 8071.2559 -8016.8496 8070.2813 C
+F
+-7976.8813 8050.7217 m
+-7983.0005 8049.2129 -7986.8813 8050.7217 V
+-7990.9771 8049.2441 -7996.8813 8050.7217 V
+-8001.8442 8049.0459 -8006.8813 8050.7217 V
+-8012.8965 8049.1709 -8016.8813 8050.7217 V
+-8016.8813 8070.4063 L
+-8013.7954 8071.3809 -8010.3965 8071.5879 -8006.4795 8070.5049 C
+-8000.313 8072.0879 -7996.563 8070.5049 V
+-7991.563 8072.0879 -7986.4795 8070.4209 V
+-7982.147 8072.0049 -7976.4795 8070.5049 V
+-7970.9795 8071.9209 -7966.8813 8070.7217 V
+-7966.8813 8051.0361 L
+-7969.625 8050.0254 -7972.751 8049.5254 -7976.8813 8050.7217 C
+f
+0 R
+0 G
+1 J 1 j 0.5 w
+-7996.8496 8070.5967 m
+-8004.6396 8072.5439 -8010.9131 8069.1816 -8016.8496 8064.6455 C
+S
+-7986.8496 8070.5967 m
+-7999.0596 8073.6494 -8007.543 8063.6572 -8016.8496 8056.5479 C
+S
+-7976.8496 8070.5967 m
+-7993.2275 8074.6904 -8002.9004 8055.3193 -8016.8496 8050.9121 C
+S
+-8016.8496 8050.5967 m
+-7996.8496 8045.5967 -7986.8496 8075.5967 -7966.8496 8070.5967 C
+S
+-8006.8496 8050.5967 m
+-7990.4717 8046.502 -7980.7988 8065.874 -7966.8496 8070.2813 C
+S
+-7996.8496 8050.5967 m
+-7984.6396 8047.5439 -7976.1563 8057.5361 -7966.8496 8064.6455 C
+S
+-7986.8496 8050.5967 m
+-7979.0596 8048.6494 -7972.7871 8052.0117 -7966.8496 8056.5479 C
+S
+-7976.8496 8050.5967 m
+-7973.2275 8049.6904 -7969.9351 8049.9375 -7966.8496 8050.9121 C
+S
+-8006.8496 8070.5967 m
+-8010.4717 8071.502 -8013.7651 8071.2559 -8016.8496 8070.2813 C
+S
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 10)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.0996 8071.5967 m
+-7965.9917 8071.5967 L
+-7965.9917 8015.5723 L
+-8016.0996 8015.5723 L
+-8016.0996 8071.5967 L
+n
+u
+0 O
+0.1 1 1 0 k
+-7979.001 8037.1719 m
+-7980.8174 8030.6924 -7990.9243 8034.0625 Y
+-7990.8911 8034.127 L
+-8000.9995 8030.7568 -8002.814 8037.2363 V
+-8008.7754 8054.6025 -8003.5918 8061.3408 V
+-7996.8525 8070.9336 -7992.7051 8070.9336 V
+-7989.1099 8070.8672 L
+-7984.9634 8070.8672 -7978.2251 8061.2783 Y
+-7973.0405 8054.5391 -7979.001 8037.1719 Y
+f
+u
+0 0 0 1 k
+-7983.4922 8015.5723 m
+-7984.2163 8017.0166 -7985.0234 8018.0713 V
+-7984.5054 8017.6592 -7983.6147 8016.7881 -7983.4922 8015.5723 C
+f
+-7997.1641 8018.082 m
+-7997.9707 8017.0273 -7998.6938 8015.583 Y
+-7998.5723 8016.7988 -7997.6821 8017.6699 -7997.1641 8018.082 C
+f
+U
+0 0.61 0.74 0 k
+-7982.6973 8040.0576 m
+-7984.0034 8035.3926 -7991.2813 8037.8184 Y
+-7991.2563 8037.8652 L
+-7998.5361 8035.4395 -7999.8413 8040.1045 V
+-8004.1333 8052.6084 -8000.4014 8057.46 V
+-7995.5483 8064.3652 -7992.563 8064.3652 V
+-7989.9751 8064.3193 L
+-7986.9883 8064.3193 -7982.1362 8057.4141 Y
+-7978.4038 8052.5605 -7982.6973 8040.0576 Y
+f
+u
+1 Ap
+0.73 0.43 1 0.22 k
+0 R
+0 0 0 1 K
+-7986.7222 8042.8721 m
+-7985.9131 8042.8721 -7985.2554 8042.2148 -7985.2554 8041.4063 c
+-7985.2554 8040.5967 -7985.9131 8039.9385 -7986.7222 8039.9385 c
+-7987.5317 8039.9385 -7988.1885 8040.5967 -7988.1885 8041.4063 c
+-7988.1885 8042.2148 -7987.5317 8042.8721 -7986.7222 8042.8721 c
+b
+-7986.4634 8054.5938 m
+-7985.1802 8054.5938 -7984.1411 8053.7168 -7984.1411 8052.6387 c
+-7984.1411 8051.5576 -7985.1802 8050.6836 -7986.4634 8050.6836 c
+-7987.7451 8050.6836 -7988.7842 8051.5576 -7988.7842 8052.6387 c
+-7988.7842 8053.7168 -7987.7451 8054.5938 -7986.4634 8054.5938 c
+b
+-7985.9341 8066.3828 m
+-7984.3813 8066.3828 -7983.1235 8065.7256 -7983.1235 8064.918 c
+-7983.1235 8064.1084 -7984.3813 8063.4512 -7985.9341 8063.4512 c
+-7987.4858 8063.4512 -7988.7451 8064.1084 -7988.7451 8064.918 c
+-7988.7451 8065.7256 -7987.4858 8066.3828 -7985.9341 8066.3828 c
+b
+-7981.71 8038.123 m
+-7980.9683 8038.123 -7980.3667 8037.4121 -7980.3667 8036.5332 c
+-7980.3667 8035.6553 -7980.9683 8034.9443 -7981.71 8034.9443 c
+-7982.4531 8034.9443 -7983.0542 8035.6553 -7983.0542 8036.5332 c
+-7983.0542 8037.4121 -7982.4531 8038.123 -7981.71 8038.123 c
+b
+-7980.103 8059.6797 m
+-7980.9814 8059.332 -7981.249 8057.9316 -7980.7031 8056.5508 c
+-7980.1563 8055.1719 -7979.001 8054.332 -7978.123 8054.6816 c
+-7977.2451 8055.0293 -7976.9771 8056.4297 -7977.5229 8057.8105 c
+-7978.0698 8059.1904 -7979.2251 8060.0283 -7980.103 8059.6797 c
+b
+u
+-7995.1563 8042.7559 m
+-7995.9658 8042.7559 -7996.6235 8042.0986 -7996.6235 8041.29 c
+-7996.6235 8040.4795 -7995.9658 8039.8232 -7995.1563 8039.8232 c
+-7994.3481 8039.8232 -7993.6909 8040.4795 -7993.6909 8041.29 c
+-7993.6909 8042.0986 -7994.3481 8042.7559 -7995.1563 8042.7559 c
+b
+-7995.4155 8054.4766 m
+-7996.6987 8054.4766 -7997.7378 8053.6016 -7997.7378 8052.5215 c
+-7997.7378 8051.4414 -7996.6987 8050.5664 -7995.4155 8050.5664 c
+-7994.1338 8050.5664 -7993.0947 8051.4414 -7993.0947 8052.5215 c
+-7993.0947 8053.6016 -7994.1338 8054.4766 -7995.4155 8054.4766 c
+b
+-7995.9453 8066.2676 m
+-7997.4971 8066.2676 -7998.7554 8065.6113 -7998.7554 8064.8008 c
+-7998.7554 8063.9902 -7997.4971 8063.335 -7995.9453 8063.335 c
+-7994.3931 8063.335 -7993.1348 8063.9902 -7993.1348 8064.8008 c
+-7993.1348 8065.6113 -7994.3931 8066.2676 -7995.9453 8066.2676 c
+b
+-8000.1675 8038.0059 m
+-8000.9111 8038.0059 -8001.5117 8037.2949 -8001.5117 8036.418 c
+-8001.5117 8035.54 -8000.9111 8034.8301 -8000.1675 8034.8301 c
+-7999.4258 8034.8301 -7998.8237 8035.54 -7998.8237 8036.418 c
+-7998.8237 8037.2949 -7999.4258 8038.0059 -8000.1675 8038.0059 c
+b
+-8001.7754 8059.5645 m
+-8000.8979 8059.2168 -8000.6294 8057.8154 -8001.1758 8056.4336 c
+-8001.7222 8055.0537 -8002.8774 8054.2168 -8003.7554 8054.5645 c
+-8004.6338 8054.9131 -8004.9028 8056.3145 -8004.3564 8057.6934 c
+-8003.8101 8059.0742 -8002.6548 8059.9121 -8001.7754 8059.5645 c
+b
+U
+U
+0 Ap
+0 0 0 1 k
+-7991.2314 8038.252 m
+-7991.2314 8070.9111 l
+F
+u
+-7975.4902 8024.127 m
+-7976.1812 8023.4336 -7979.1191 8024.2988 Y
+-7980.3291 8024.4707 -7980.1558 8026.8896 Y
+-7979.1191 8028.9648 -7979.8101 8028.791 Y
+-7980.3994 8028.791 -7981.9551 8028.7109 -7982.8818 8028.6592 C
+-7983.2222 8027.2656 -7984.7124 8026.0713 -7986.8213 8025.3662 C
+-7984.8574 8022.0742 -7986.6172 8021.3916 -7988.3931 8021.3867 C
+-7988.4092 8021.2988 -7988.4321 8021.2129 -7988.4595 8021.1289 C
+-7986.2085 8021.1758 -7985.7388 8018.8555 Y
+-7985.5044 8018.6592 -7985.2603 8018.3828 -7985.0234 8018.0713 C
+-7985.2412 8018.2441 -7985.394 8018.3359 Y
+-7986.3579 8018.3359 -7987.9771 8020.0908 -7988.5962 8020.8037 C
+-7989.019 8020.04 -7989.9531 8019.5078 -7991.043 8019.5078 c
+-7992.1694 8019.5078 -7993.1318 8020.0752 -7993.5308 8020.8809 C
+-7994.0981 8020.2207 -7995.7964 8018.3477 -7996.7939 8018.3477 C
+-7996.9458 8018.2539 -7997.1641 8018.082 V
+-7996.9277 8018.3896 -7996.6831 8018.6699 -7996.4478 8018.8652 C
+-7995.9634 8021.2529 -7993.625 8021.1309 V
+-7993.6445 8021.1855 -7993.667 8021.2393 -7993.6802 8021.2988 C
+-7997.0234 8021.2891 -7996.0371 8023.9141 -7995.3101 8025.2568 C
+-7997.6914 8025.9727 -7999.3643 8027.2969 -7999.6235 8028.8467 C
+-8000.5469 8028.8965 -8001.7725 8028.9551 -8002.2798 8028.9551 C
+-8002.9722 8029.1279 -8001.9351 8027.0547 V
+-8001.7622 8024.6357 -8002.9722 8024.4629 V
+-8005.9092 8023.5986 -8006.6011 8024.29 V
+-8007.2915 8025.1533 -8008.1558 8023.9424 V
+-8007.2915 8025.6719 -8005.3911 8025.1533 V
+-8002.7979 8024.4629 -8003.4902 8026.1904 V
+-8004.0083 8029.6465 -8002.2798 8030.3369 V
+-8000.1338 8031.4512 -7998.3818 8031.6855 V
+-7998.0083 8032.0107 -7997.5635 8032.3076 -7997.0581 8032.5732 C
+-7999.6558 8032.6436 -8002.3242 8033.5176 -8003.1748 8036.5527 C
+-8003.6147 8037.8398 -8004.1514 8039.8398 V
+-8005.2021 8040.4219 -8006.4019 8041.6045 -8007.6411 8043.8584 C
+-8008.4941 8047.0469 -8009.2671 8042.3096 V
+-8010.4971 8039.2461 -8011.75 8039.1348 V
+-8010.5698 8040.8838 -8011.0034 8042.0127 V
+-8009.3994 8046.5137 -8007.7134 8045.4961 V
+-8006.1982 8044.8164 -8004.7881 8042.4121 V
+-8005.1694 8044.0938 -8005.5322 8046.0137 -8005.7739 8047.9873 C
+-8006.5884 8047.9941 L
+-8008.4502 8047.0752 -8008.4258 8050.5557 V
+-8009.2222 8054.542 -8008.459 8057.2793 V
+-8007.7471 8059.7471 -8010.2271 8058.5273 V
+-8011.3838 8058.9209 -8012.0835 8058.3848 V
+-8014.4878 8057.0088 -8016.0996 8058.7207 V
+-8014.2471 8058.4766 -8013.5479 8059.0137 V
+-8012.0781 8059.1582 -8011.9971 8059.7744 V
+-8009.0557 8060.4521 -8008.2881 8059.6729 V
+-8006.5171 8058.8105 -8007.23 8055.9561 V
+-8007.9795 8048.0781 -8006.4194 8050.002 V
+-8006.2178 8050.0176 -8005.978 8050.1143 V
+-8006.2515 8054.0293 -8005.9014 8057.9209 -8004.0957 8060.4473 C
+-8007.5532 8052.9297 -8002.397 8037.9004 Y
+-8001.0605 8033.127 -7995.2271 8033.6982 -7992.2451 8034.3311 C
+-7992.1714 8035.7256 -7991.937 8037.5449 -7991.2314 8038.252 C
+-7990.313 8036.292 -7990.3354 8034.6699 V
+-7989.1758 8034.3184 -7982.3813 8032.4414 -7979.5483 8035.9336 C
+-7980.5308 8033.4102 -7982.9258 8032.6152 -7985.3003 8032.5156 C
+-7984.7671 8032.2285 -7984.3037 8031.9014 -7983.9253 8031.5469 C
+-7982.1411 8031.3828 -7979.8101 8030.1729 Y
+-7978.0811 8029.4824 -7978.6011 8026.0273 Y
+-7979.2915 8024.2988 -7976.6987 8024.9902 Y
+-7974.7998 8025.5078 -7973.9351 8023.7803 Y
+-7974.7998 8024.9902 -7975.4902 8024.127 Y
+f
+-7970.0078 8058.5488 m
+-7970.707 8059.0859 -7971.8628 8058.6904 Y
+-7974.3442 8059.9102 -7973.6323 8057.4424 Y
+-7972.8691 8054.707 -7973.6641 8050.7188 Y
+-7973.6411 8047.2412 -7975.501 8048.1563 Y
+-7976.1338 8048.1523 L
+-7976.4194 8046.208 -7976.8042 8044.3516 -7977.1895 8042.7656 C
+-7975.8125 8045.0166 -7974.3774 8045.6592 Y
+-7972.6909 8046.6787 -7971.0874 8042.1758 Y
+-7971.521 8041.0469 -7970.3413 8039.2988 Y
+-7971.5933 8039.4092 -7972.8242 8042.4727 Y
+-7973.5972 8047.2119 -7974.4507 8044.0234 Y
+-7975.6772 8041.7871 -7976.8691 8040.6064 -7977.9141 8040.0195 C
+-7978.3022 8038.6592 -7978.5854 8037.8359 Y
+-7978.7998 8037.0693 -7979.1333 8036.4453 -7979.5483 8035.9336 C
+-7979.4795 8036.1094 -7979.417 8036.2949 -7979.3628 8036.4873 C
+-7973.4019 8053.8555 -7978.5854 8060.5938 V
+-7985.3242 8070.1836 -7989.4717 8070.1836 V
+-7993.0659 8070.248 L
+-7997.2134 8070.248 -8003.9531 8060.6582 Y
+-8004.0034 8060.5928 -8004.0459 8060.5176 -8004.0957 8060.4473 C
+-8003.8374 8061.0107 -8003.5371 8061.5371 -8003.1748 8062.0059 C
+-7996.4355 8071.5967 -7992.2891 8071.5967 V
+-7988.6938 8071.5313 L
+-7984.5479 8071.5313 -7977.8091 8061.9414 Y
+-7975.6797 8059.1729 -7975.4302 8054.6143 -7975.8765 8050.2021 C
+-7975.7549 8050.1719 -7975.6694 8050.1641 Y
+-7974.1108 8048.2441 -7974.8594 8056.1211 Y
+-7975.5742 8058.9756 -7973.8022 8059.8369 Y
+-7973.0347 8060.6152 -7970.0942 8059.9385 Y
+-7970.0132 8059.3223 -7968.543 8059.1777 Y
+-7967.8442 8058.6416 -7965.9917 8058.8848 Y
+-7967.6021 8057.1729 -7970.0078 8058.5488 Y
+f
+U
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 2)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.0996 8071.5967 m
+-7951.2871 8071.5967 L
+-7951.2871 8007.499 L
+-8016.0996 8007.499 L
+-8016.0996 8071.5967 L
+n
+u
+0 O
+0 g
+-7981.7974 8030.0264 m
+-7983.709 8007.499 L
+-7985.6211 8030.0264 L
+-7985.0029 8029.9033 -7984.3638 8029.8369 -7983.709 8029.8369 c
+-7983.0547 8029.8369 -7982.4155 8029.9033 -7981.7974 8030.0264 C
+f
+-7993.3398 8037.9941 m
+-8016.0996 8039.9268 L
+-7993.2134 8041.8701 L
+-7993.3853 8041.1436 -7993.4844 8040.3896 -7993.4844 8039.6123 c
+-7993.4844 8039.0596 -7993.4277 8038.5215 -7993.3398 8037.9941 C
+f
+-7988.6191 8031.1689 m
+-8002.2622 8022.4014 L
+-7992.3149 8034.9736 L
+-7991.457 8033.3877 -7990.1714 8032.0732 -7988.6191 8031.1689 C
+f
+-7985.5811 8049.2041 m
+-7983.6782 8071.5967 L
+-7981.7764 8049.1934 L
+-7982.4014 8049.3193 -7983.0469 8049.3877 -7983.709 8049.3877 c
+-7984.3496 8049.3877 -7984.9731 8049.3213 -7985.5811 8049.2041 C
+f
+-7974.0605 8041.1035 m
+-7951.2871 8039.1689 L
+-7974.1831 8037.2256 L
+-7974.1831 8037.4473 L
+-7974.0254 8038.1455 -7973.9341 8038.8662 -7973.9341 8039.6123 c
+-7973.9341 8040.1201 -7973.9844 8040.6152 -7974.0605 8041.1035 C
+f
+-7992.2134 8044.4229 m
+-8002.2637 8057.126 L
+-7988.3774 8048.2021 L
+-7989.9819 8047.3271 -7991.311 8046.0127 -7992.2134 8044.4229 C
+f
+-7975.0957 8034.9912 m
+-7964.9751 8022.2021 L
+-7978.8662 8031.1279 L
+-7977.2764 8032.0381 -7975.9629 8033.376 -7975.0957 8034.9912 C
+f
+-7978.7891 8048.0479 m
+-7964.9731 8056.9248 L
+-7975.0654 8044.1689 L
+-7975.9194 8045.7861 -7977.2148 8047.1279 -7978.7891 8048.0479 C
+f
+-7974.9883 8044.21 m
+-7974.4858 8043.2607 -7974.1431 8042.2168 -7973.9751 8041.1152 c
+-7973.8989 8040.626 -7973.8481 8040.124 -7973.8481 8039.6123 c
+-7973.8481 8038.8604 -7973.9395 8038.1318 -7974.0981 8037.4277 c
+-7974.2954 8036.5537 -7974.6045 8035.7207 -7975.0181 8034.9512 c
+-7975.895 8033.3213 -7977.2188 8031.9707 -7978.8237 8031.0527 c
+-7979.729 8030.5342 -7980.7222 8030.1504 -7981.7798 8029.9424 c
+-7982.4043 8029.8174 -7983.0493 8029.748 -7983.709 8029.748 c
+-7984.3691 8029.748 -7985.0151 8029.8174 -7985.6387 8029.9424 c
+-7986.7231 8030.1572 -7987.7378 8030.5537 -7988.6621 8031.0928 c
+-7990.231 8032.0068 -7991.5278 8033.332 -7992.3911 8034.9316 c
+-7992.8965 8035.8662 -7993.2451 8036.8936 -7993.4258 8037.9785 c
+-7993.5151 8038.5127 -7993.5723 8039.0557 -7993.5723 8039.6123 c
+-7993.5723 8040.3975 -7993.4707 8041.1572 -7993.2974 8041.8896 c
+-7993.0811 8042.8037 -7992.7402 8043.6699 -7992.2871 8044.4668 c
+-7991.3789 8046.0693 -7990.0391 8047.3975 -7988.417 8048.2793 c
+-7987.5483 8048.752 -7986.5996 8049.0947 -7985.5957 8049.29 c
+-7984.9844 8049.4072 -7984.355 8049.4736 -7983.709 8049.4736 c
+-7983.041 8049.4736 -7982.3896 8049.4053 -7981.7598 8049.2793 c
+-7980.6782 8049.0635 -7979.666 8048.6621 -7978.7451 8048.124 c
+-7977.1563 8047.1943 -7975.8511 8045.8408 -7974.9883 8044.21 c
+f
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 3)
+0 A
+u
+1 Ap
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8006.8496 8072.5967 m
+-8006.8496 8048.5967 L
+-8016.8496 8048.5967 L
+-8016.8496 8072.5967 L
+-8006.8496 8072.5967 L
+n
+u
+u
+0 Ap
+0 O
+1 g
+-8007.5054 8064.1328 m
+-8007.0874 8063.0313 -8006.8496 8061.8438 -8006.8496 8060.5967 c
+-8006.8496 8058.7344 -8007.3677 8056.9961 -8008.2539 8055.5039 c
+-8009.9971 8052.5703 -8013.1895 8050.5967 -8016.8496 8050.5967 C
+-8016.8496 8070.5967 L
+-8016.5293 8070.5967 -8016.2139 8070.5781 -8015.9014 8070.5488 c
+-8014.0117 8070.3721 -8012.2803 8069.6611 -8010.8438 8068.5791 c
+-8009.3467 8067.4512 -8008.1797 8065.915 -8007.5054 8064.1328 c
+f
+0 R
+0 G
+1 J 1 j 0.5 w
+-8016.8496 8050.9141 m
+-8013.8203 8051.8711 -8010.9922 8053.5293 -8008.2539 8055.5039 C
+S
+-8016.8496 8056.5479 m
+-8013.6987 8058.9531 -8010.6431 8061.6836 -8007.5054 8064.1328 C
+S
+-8010.8438 8068.5791 m
+-8012.9102 8067.4873 -8014.8989 8066.1309 -8016.8496 8064.6396 C
+S
+-8015.9014 8070.5488 m
+-8016.2188 8070.4648 -8016.5371 8070.3818 -8016.8496 8070.2832 C
+S
+-8010.8438 8068.5791 m
+-8012.2803 8069.6611 -8014.0117 8070.3711 -8015.9014 8070.5488 C
+S
+-8007.5054 8064.1328 m
+-8007.0874 8063.0313 -8006.8496 8061.8438 -8006.8496 8060.5967 c
+-8006.8496 8058.7344 -8007.3677 8056.9961 -8008.2539 8055.5039 C
+S
+-8016.8496 8070.5967 m
+-8016.5293 8070.5967 -8016.2139 8070.5781 -8015.9014 8070.5488 C
+S
+-8010.8438 8068.5791 m
+-8009.3467 8067.4512 -8008.1797 8065.915 -8007.5054 8064.1328 C
+S
+-8008.2539 8055.5039 m
+-8009.9971 8052.5703 -8013.1895 8050.5967 -8016.8496 8050.5967 C
+S
+U
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 34)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.125 8071.623 m
+-7960.1538 8071.623 L
+-7960.1538 8010.1309 L
+-8016.125 8010.1309 L
+-8016.125 8071.623 L
+n
+u
+u
+0 O
+0.0745 0.9 0.9019 0.18 k
+0 R
+0 0 0 1 K
+1 J 1 j 0.0518 w
+-7989.6987 8048.3184 m
+-7989.459 8059.1182 -7994.979 8069.4365 v
+-7994.5005 8071.5967 -7993.0591 8071.5967 v
+-7993.2998 8068.2373 -7992.3389 8067.7568 v
+-7988.0195 8055.7568 -7988.7378 8047.8369 v
+-7989.6987 8048.3184 l
+b
+-7989.6987 8048.3184 m
+-7991.3789 8053.5967 -8003.1387 8054.7979 v
+-8007.459 8055.2773 -8007.6987 8056.7168 v
+-8001.2202 8047.1152 -8000.2598 8047.3574 v
+-8013.459 8041.5977 -8016.0996 8036.3164 v
+-8011.0591 8039.1973 -8007.6987 8037.0361 v
+-7999.7798 8036.7979 -7994.7402 8038.958 v
+-7990.9004 8040.8779 -7998.8198 8024.7979 v
+-7994.979 8036.5576 -7991.3789 8010.1572 v
+-7990.4194 8015.4375 -7988.9795 8016.8779 v
+-7982.9795 8024.5576 -7983.9395 8026.7168 v
+-7984.4194 8030.5576 -7979.8594 8024.3174 v
+-7980.0996 8033.918 -7982.5005 8037.2773 v
+-7984.6587 8040.8779 -7978.6587 8038.7168 v
+-7972.6587 8036.7979 -7967.3789 8038.4775 v
+-7961.8594 8039.916 -7960.1797 8037.0361 v
+-7971.9395 8049.5176 -7977.6987 8049.2773 v
+-7976.019 8052.8779 l
+-7973.6191 8057.6777 -7974.0996 8058.8779 v
+-7989.3677 8049.4795 -7989.6987 8048.3184 v
+b
+-7989.6987 8048.3184 m
+-7987.0591 8029.8369 -7989.6987 8022.1572 v
+-7992.0981 8011.5977 -7991.3789 8010.1572 v
+S
+-7988.2598 8037.0361 m
+-7982.2598 8032.2373 -7981.0591 8026.9561 v
+S
+-7988.2598 8036.3164 m
+-7997.1387 8028.6377 -7998.8198 8024.7979 v
+S
+-7960.1797 8037.0361 m
+-7961.3789 8039.1973 -7989.459 8047.3574 y
+-7994.5005 8041.8389 -8006.0195 8039.4375 v
+-8013.6982 8038.4775 -8016.0996 8036.3164 v
+S
+-8006.7378 8055.2773 m
+-7995.2188 8046.1582 -7989.459 8047.3574 y
+-7975.2988 8053.5967 -7974.0996 8058.8779 v
+S
+U
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 36)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8015.9492 8071.5928 m
+-7966.0596 8071.5928 L
+-7966.0596 8020.5225 L
+-8015.9492 8020.5225 L
+-8015.9492 8071.5928 L
+n
+u
+0 O
+0.025 0.1 0.475 0 k
+-7994.25 8039.5 m
+-7996.5762 8038.4092 -7998.791 8038.04 -8000.4731 8038.5205 c
+-8001.1514 8038.7129 -8001.7451 8039.0439 -8002.2231 8039.5205 c
+-8002.7002 8039.999 -8003.0293 8040.5918 -8003.2231 8041.2695 c
+-8004.1084 8044.3672 -8002.1099 8049.2744 -7998.0229 8053.3633 c
+-7993.9341 8057.4502 -7989.0293 8059.4473 -7985.9282 8058.5625 c
+-7985.2515 8058.3672 -7984.6582 8058.0391 -7984.1802 8057.5625 c
+-7983.7031 8057.084 -7983.375 8056.4912 -7983.1821 8055.8135 c
+-7982.6172 8053.8428 -7983.2222 8051.1416 -7984.7852 8048.3857 c
+-7985.6821 8046.8066 -7986.8911 8045.21 -7988.3789 8043.7197 c
+-7990.25 8041.8496 -7992.291 8040.4209 -7994.25 8039.5 c
+f
+u
+0.0035 0.014 0.0665 0 k
+-7993.3179 8038.5693 m
+-7995.9302 8037.6182 -7998.4971 8037.5654 -8000.4731 8038.5205 C
+-7998.791 8038.04 -7996.5762 8038.4092 -7994.25 8039.5 c
+-7993.7188 8039.751 -7993.1802 8040.04 -7992.6431 8040.3643 C
+-7990.998 8039.6504 L
+-7991.7671 8039.2139 -7992.543 8038.8496 -7993.3179 8038.5693 c
+f
+0.015 0.06 0.285 0 k
+-7990.998 8039.6504 m
+-7992.6431 8040.3643 L
+-7991.1958 8041.2314 -7989.7422 8042.3574 -7988.3789 8043.7197 c
+-7988.2534 8043.8467 -7988.1323 8043.9736 -7988.0098 8044.1025 C
+-7987.3149 8042.46 L
+-7988.4702 8041.3193 -7989.7188 8040.3779 -7990.998 8039.6504 C
+f
+U
+u
+0.039 0.156 0.741 0 k
+-7981.7871 8027 m
+-7982.0742 8027.2881 -7993.3179 8038.5693 Y
+-7992.543 8038.8496 -7991.7671 8039.2139 -7990.998 8039.6504 C
+-7977.5142 8026.167 L
+-7979.1611 8025.6953 -7980.7402 8025.9521 -7981.7871 8027 c
+f
+0.025 0.1 0.475 0 k
+-7977.5142 8026.167 m
+-7990.998 8039.6504 L
+-7989.6841 8040.3984 -7988.3965 8041.3721 -7987.2139 8042.5537 c
+-7987.1841 8042.583 -7987.1582 8042.6123 -7987.1274 8042.6416 C
+-7973.4404 8028.9541 L
+-7973.626 8028.7295 -7973.8198 8028.5107 -7974.0298 8028.2969 c
+-7975.1099 8027.2197 -7976.3301 8026.5049 -7977.5142 8026.167 C
+f
+U
+u
+0.0115 0.046 0.2185 0 k
+-7968.0342 8035.9893 m
+-7965.6333 8033.5859 -7965.4351 8029.6865 -7967.2378 8026.2939 C
+-7968.395 8026.7148 L
+-7966.1934 8030.0928 -7965.9395 8033.8916 -7968.0342 8035.9893 c
+f
+0.015 0.06 0.285 0 k
+-7975.6333 8021.1924 m
+-7974.6821 8020.5225 L
+-7977.3042 8019.9482 -7979.9302 8020.5107 -7981.7202 8022.3027 c
+-7980.2715 8020.8545 -7978.0078 8020.5273 -7975.6333 8021.1924 C
+f
+0.0295 0.118 0.5605 0 k
+-7975.6333 8021.1924 m
+-7978.0078 8020.5273 -7980.2715 8020.8545 -7981.7202 8022.3027 c
+-7983.1191 8023.7021 -7983.4702 8025.8604 -7982.895 8028.1436 C
+-7980.9668 8025.1416 -7977.5078 8026.1504 V
+-7975.6851 8021.2275 L
+-7975.6333 8021.1924 L
+f
+*u
+1 D
+0.048 0.192 0.912 0 k
+-7968.0342 8035.9893 m
+-7969.3813 8037.335 -7971.4321 8037.71 -7973.623 8037.2236 C
+-7983.771 8047.3701 L
+-7983.8691 8047.1641 -7983.8691 8047.1641 -7983.771 8047.3701 c
+-7982.3242 8050.4111 -7982.0698 8053.5127 -7983.1821 8055.8135 C
+-7982.6172 8053.8428 -7983.2222 8051.1416 -7984.7852 8048.3857 c
+-7985.605 8046.9404 -7986.6914 8045.4814 -7988.0098 8044.1025 C
+-7987.3149 8042.46 L
+-7987.2813 8042.4912 -7987.2461 8042.5205 -7987.2139 8042.5537 c
+-7987.1841 8042.584 -7987.1563 8042.6143 -7987.127 8042.6436 c
+-7987.1274 8042.6436 -7987.1274 8042.6436 -7987.1274 8042.6416 C
+-7973.4404 8028.9541 L
+-7968.4258 8026.7256 L
+-7968.395 8026.7148 L
+-7966.1934 8030.0928 -7965.9395 8033.8916 -7968.0342 8035.9893 c
+f
+*U
+0 D
+0.0215 0.086 0.4085 0 k
+-7974.6821 8020.5225 m
+-7975.6333 8021.1924 L
+-7973.7842 8021.708 -7971.8652 8022.8252 -7970.2134 8024.4795 c
+-7969.5059 8025.1855 -7968.8994 8025.9385 -7968.395 8026.7148 C
+-7967.2378 8026.2939 L
+-7967.7549 8025.3213 -7968.437 8024.3896 -7969.2798 8023.5479 c
+-7970.8691 8021.9561 -7972.7754 8020.9385 -7974.6821 8020.5225 C
+f
+0.0205 0.082 0.3895 0 k
+-7968.395 8026.7148 m
+-7968.8994 8025.9385 -7969.5059 8025.1855 -7970.2134 8024.4795 c
+-7971.8652 8022.8252 -7973.7842 8021.708 -7975.6333 8021.1924 C
+-7975.6851 8021.2275 L
+-7977.5078 8026.1504 L
+-7976.311 8026.5176 -7975.0874 8027.2393 -7974.0298 8028.2969 c
+-7973.8198 8028.5107 -7973.626 8028.7295 -7973.4404 8028.9541 C
+-7968.4258 8026.7256 L
+-7968.395 8026.7148 L
+f
+U
+u
+0.445 0.356 0.267 0 k
+-8015.9492 8071.5928 m
+-7994.0571 8048.5654 L
+-7994.3003 8048.2461 -7994.6748 8048.21 -7994.9883 8048.2559 C
+-7999.2798 8052.8857 -8010.4141 8065.0527 -8014.8262 8069.876 C
+-8015.6646 8070.9482 -8016.0996 8071.5898 -8015.9492 8071.5928 C
+f
+0.15 0.12 0.09 0 k
+-8015.9341 8071.5928 m
+-8014.7603 8071.2998 -7993.793 8049.5996 Y
+-7993.793 8049.0986 -7993.8989 8048.7725 -7994.0571 8048.5654 C
+-8015.9492 8071.5928 L
+-8015.9438 8071.5928 -8015.9414 8071.5967 -8015.9341 8071.5928 c
+f
+0.2 0.16 0.12 0 k
+-8014.8262 8069.876 m
+-8010.4141 8065.0527 -7999.2798 8052.8857 -7994.9883 8048.2559 C
+-7995.2998 8048.3008 -7995.5522 8048.4268 Y
+-7996.7031 8048.7295 -8010.6738 8064.5576 -8014.8262 8069.876 C
+f
+U
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 37)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8015.0498 8070.8281 m
+-7965.1387 8070.8281 L
+-7965.1387 8006.7119 L
+-8015.0498 8006.7119 L
+-8015.0498 8070.8281 L
+n
+u
+0 O
+0 0 0 1 k
+0 R
+0 0 0 1 K
+0 w
+-7965.3354 8006.7119 m
+-7965.7061 8006.8447 -7966.0854 8006.8799 -7966.4829 8006.7998 c
+-7966.5859 8006.7646 l
+-7966.625 8006.7568 -7966.6699 8006.7744 -7966.7021 8006.7959 c
+-7967.043 8006.9893 l
+-7970.8125 8008.8926 -7974.1958 8011.4932 -7976.5996 8015.0439 c
+-7978.063 8017.1885 -7979.2231 8019.4756 -7980.8989 8021.4521 c
+-7981.2725 8021.8057 -7981.2754 8022.3691 -7980.9341 8022.7275 c
+-7980.5947 8023.0977 -7980.0181 8023.1045 -7979.6611 8022.7617 c
+-7979.5034 8022.8066 l
+-7979.3638 8022.7256 -7979.1738 8022.667 -7979.123 8022.5537 c
+-7977.9531 8019.7998 -7977.2891 8017.1104 -7975.5332 8014.7354 c
+-7973.2715 8011.6904 -7970.2773 8009.5908 -7967.1294 8007.6201 c
+-7966.4668 8007.2021 L
+-7966.5962 8007.2314 L
+-7965.8691 8007.2393 l
+-7965.8911 8007.208 -7965.9004 8007.1924 -7965.9219 8007.1611 C
+-7965.7061 8007.1201 -7965.4771 8007.0713 -7965.2622 8007.0303 c
+-7965.1758 8007.0205 -7965.1182 8006.9355 -7965.1387 8006.835 c
+-7965.1499 8006.748 -7965.2378 8006.7051 -7965.3354 8006.7119 c
+-7965.3354 8006.7119 l
+b
+-7981.3218 8020.5918 m
+-7981.6738 8020.4033 -7982.0654 8020.2686 -7982.3481 8019.9854 c
+-7988.5518 8013.7686 -7998.7798 8012.8701 -8006.1484 8019.2822 C
+-8006.2578 8019.3779 -8006.2578 8019.5537 -8006.1631 8019.6611 C
+-8003.1523 8018.54 -7994.9834 8019.9717 -7991.4219 8023.0088 C
+-7991.353 8023.0635 -7991.2461 8023.0488 -7991.2051 8022.9678 C
+-7991.1499 8022.9014 -7991.166 8022.792 -7991.2324 8022.7529 C
+-7994.6621 8019.6816 -7999.167 8017.8867 -8003.7725 8018.3447 C
+-8000.9531 8016.7822 -7997.731 8016.0908 -7994.498 8016.2852 c
+-7989.814 8016.5684 -7985.563 8018.7158 -7981.4707 8020.876 c
+-7981.3911 8020.916 -7981.2974 8020.8896 -7981.2549 8020.8076 C
+-7981.2012 8020.7275 -7981.2422 8020.6318 -7981.3218 8020.5918 c
+b
+-7990.7471 8021.9326 m
+-7992.3262 8025.958 -7994.4907 8029.916 -7997.9014 8032.6729 c
+-7998.0645 8032.8086 -7998.0942 8033.0459 -7997.9707 8033.2021 c
+-7997.834 8033.3643 -7997.6045 8033.376 -7997.4478 8033.2529 c
+-7993.2231 8031.1934 -7990.29 8026.7275 -7990.2622 8021.998 c
+-7990.2622 8021.998 l
+-7990.2324 8021.8633 -7990.335 8021.7305 -7990.4629 8021.7188 c
+-7990.6035 8021.7021 -7990.7314 8021.7939 -7990.7471 8021.9326 c
+-7990.7471 8021.9326 l
+b
+-7985.041 8026.6143 m
+-7985.1421 8026.7783 -7985.2148 8026.9805 -7985.3613 8027.0791 c
+-7988.1802 8028.9873 -7991.0781 8030.2275 -7993.9844 8031.7295 c
+-7994.1499 8031.8057 -7994.2114 8032.0146 -7994.1309 8032.167 c
+-7994.0508 8032.3193 -7993.8555 8032.376 -7993.6895 8032.3008 c
+-7990.5391 8030.9199 -7986.4131 8030.0967 -7984.7725 8026.7764 c
+-7984.7285 8026.708 -7984.7451 8026.6113 -7984.8262 8026.5615 c
+-7984.8955 8026.5166 -7984.9971 8026.5449 -7985.041 8026.6143 c
+-7985.041 8026.6143 l
+b
+-7984.7598 8027.5146 m
+-7984.5435 8028.0264 -7984.2427 8028.4863 -7984.1499 8029.0313 c
+-7983.3179 8033.874 -7983.2148 8038.6387 -7984.3481 8043.2832 c
+-7984.3481 8043.2832 l
+-7984.4414 8043.5488 -7984.311 8043.8408 -7984.0435 8043.9355 c
+-7983.7773 8044.0303 -7983.4878 8043.9092 -7983.3931 8043.6445 c
+-7981.3931 8038.4072 -7981.9971 8032.334 -7984.4707 8027.3799 c
+-7984.5059 8027.2969 -7984.5981 8027.2656 -7984.6821 8027.2881 c
+-7984.7637 8027.3232 -7984.7974 8027.4316 -7984.7598 8027.5146 c
+-7984.7598 8027.5146 l
+b
+-7983.6348 8043.1904 m
+-7980.998 8040.8232 -7978.7813 8037.8486 -7977.9531 8034.332 c
+-7977.9531 8034.332 l
+-7977.8242 8033.7783 -7978.1738 8033.2197 -7978.7412 8033.0869 c
+-7979.2988 8032.9717 -7979.8574 8033.3213 -7979.9858 8033.876 c
+-7980.6646 8037.1279 -7981.9707 8040.2695 -7983.895 8042.9824 c
+-7983.895 8042.9824 l
+-7983.9458 8043.0518 -7983.9341 8043.1543 -7983.8691 8043.2168 c
+-7983.7988 8043.2656 -7983.6973 8043.2549 -7983.6348 8043.1904 c
+-7983.6348 8043.1904 l
+b
+-7968.4707 8035.7793 m
+-7969.811 8031.4268 -7972.3594 8027.666 -7975.7891 8024.75 C
+-7975.8291 8024.6689 -7975.9238 8024.6289 -7976.0034 8024.6816 C
+-7976.0859 8024.7236 -7976.1118 8024.8174 -7976.0718 8024.8984 C
+-7976.0571 8025.3857 -7975.814 8025.8301 -7975.5454 8026.1279 c
+-7970.5059 8031.7588 -7967.0898 8040.3164 -7969.4429 8047.5518 C
+-7969.1758 8042.0479 -7970.8237 8035.8975 -7974.2358 8031.2705 c
+-7975.2603 8029.8662 -7976.8418 8029.7168 -7978.4077 8029.7998 C
+-7978.502 8029.7861 -7978.583 8029.8398 -7978.5957 8029.9336 c
+-7978.6094 8030.0156 -7978.5547 8030.1104 -7978.4619 8030.1221 C
+-7975.2476 8031.3662 -7973.5874 8034.8213 -7972.1841 8037.791 c
+-7970.5151 8041.3408 -7969.8013 8045.2354 -7970.105 8049.0967 C
+-7970.145 8049.2744 -7970.2134 8050.9941 -7970.0771 8051.0068 C
+-7969.9302 8051.0361 -7969.8091 8050.9404 -7969.7798 8050.791 C
+-7969.7451 8050.6416 -7966.7422 8041.3945 -7968.4707 8035.7793 c
+b
+-7976.5859 8023.0879 m
+-7975.4941 8019.2168 -7973.209 8015.8477 -7970.582 8012.835 c
+-7970.4302 8012.7012 -7970.4141 8012.4824 -7970.5498 8012.332 c
+-7970.6748 8012.1973 -7970.9043 8012.1787 -7971.0571 8012.3145 c
+-7974.4302 8014.9287 -7975.5483 8019.1377 -7976.895 8022.9717 c
+-7976.895 8022.9717 l
+-7976.9258 8023.0615 -7976.875 8023.1553 -7976.7979 8023.1836 c
+-7976.709 8023.2158 -7976.6162 8023.1641 -7976.5859 8023.0879 c
+-7976.5859 8023.0879 l
+b
+-7970.6309 8047.7061 m
+-7970.6987 8047.6533 -7970.8071 8047.6797 -7970.8481 8047.7471 C
+-7971.063 8048.0713 -7972.791 8050.1152 -7973.4922 8050.7373 c
+-7978.2715 8054.9912 -7981.6133 8059.5576 -7989.6387 8063.3193 c
+-7996.5508 8066.5605 -7999.2109 8069.1924 -8006.4858 8067.4229 c
+-8009.7871 8066.626 -8011.1309 8066.1279 -8012.5347 8061.0518 C
+-8014.0469 8054.8955 -8012.9668 8057.3799 -8013.1841 8050.0352 c
+-8013.3218 8045.2939 -8016.0996 8034.0518 -8003.625 8019.8564 C
+-8003.5195 8019.7451 -8003.5332 8019.5928 -8003.6333 8019.5039 C
+-8003.7324 8019.3984 -8003.8955 8019.4121 -8003.9858 8019.5127 C
+-8009.6782 8024.3135 -8013.123 8031.2549 -8014.4141 8038.5391 c
+-8015.3867 8044.0635 -8015.0195 8048.8467 -8014.7661 8055.2334 c
+-8014.6685 8057.6904 -8015.7852 8064.6689 -8011.0098 8068.6592 c
+-8007.4922 8071.5967 -8002.4907 8071.1436 -7998.4541 8069.7529 c
+-7992.7988 8067.8086 -7988.0723 8064.7432 -7982.9707 8061.2061 c
+-7979.3652 8058.7217 -7971.3877 8048.8809 -7970.5781 8047.9229 C
+-7970.5347 8047.8555 -7970.5498 8047.7471 -7970.6309 8047.7061 C
+b
+-8005.1499 8034.9023 m
+-8004.2681 8034.0996 -8003.8013 8035.4424 -8003.5293 8036.1982 c
+-8003.2622 8036.9541 -8002.2891 8036.8467 -8002.6123 8037.1689 c
+-8002.9365 8037.4941 -8002.9365 8037.5488 -8003.4229 8037.1152 c
+-8003.9082 8036.6846 -8003.9082 8037.332 -8004.6646 8036.8467 c
+-8005.4194 8036.3584 -8005.7451 8035.4424 -8005.1499 8034.9023 c
+b
+-7997.7515 8039.5449 m
+-7997.4653 8039.1885 -7996.7798 8039.1689 -7996.5645 8039.4912 c
+-7996.3496 8039.8164 -7995.4302 8039.8701 -7995.5933 8040.1934 c
+-7995.7539 8040.5176 -7995.7012 8040.7354 -7996.187 8040.5176 c
+-7996.6733 8040.3008 -7996.5117 8040.8965 -7996.9971 8040.6807 c
+-7997.4829 8040.4639 -7997.9683 8039.8164 -7997.7515 8039.5449 c
+b
+-7989.707 8044.6758 m
+-7989.2202 8044.3525 -7987.979 8045.1084 -7988.5723 8045.1084 c
+-7989.167 8045.1084 -7988.4111 8045.8633 -7988.9517 8046.0801 c
+-7989.4902 8046.2959 -7989.3828 8046.0264 -7989.707 8046.2412 c
+-7990.0293 8046.458 -7990.4629 8046.8359 -7990.6235 8046.0264 c
+-7990.7852 8045.2158 -7990.4629 8045.2158 -7990.0845 8044.9463 c
+-7989.707 8044.6758 -7989.707 8044.6758 y
+b
+-8004.3398 8044.9463 m
+-8003.207 8044.8389 -8003.9629 8045.5947 -8003.3691 8046.0801 c
+-8002.7734 8046.5664 -8002.0181 8047.2139 -8002.8291 8046.9961 c
+-8003.6387 8046.7822 -8005.0957 8047.2686 -8005.043 8046.1348 c
+-8004.9883 8045 -8004.7324 8044.9824 -8004.3398 8044.9463 c
+b
+-7998.6699 8053.208 m
+-7998.2012 8052.9404 -7998.7798 8053.3164 -7998.1299 8053.208 c
+-7997.4829 8053.1006 -7996.8882 8053.208 -7997.3203 8053.4248 c
+-7997.7515 8053.6406 -7998.4004 8053.748 -7998.563 8053.5859 c
+-7998.7251 8053.4248 -7999.0469 8053.4248 -7998.6699 8053.208 c
+b
+-7989.167 8052.7764 m
+-7989.5781 8051.7764 -7988.1958 8052.0205 -7987.5469 8052.3428 c
+-7986.8994 8052.6689 -7985.9258 8052.0742 -7986.5205 8052.5068 c
+-7987.1133 8052.9385 -7986.8994 8052.5068 -7987.4922 8052.8301 c
+-7988.0869 8053.1533 -7988.7891 8053.6943 -7989.167 8052.7764 c
+b
+-8004.7734 8058.6631 m
+-8004.8218 8057.6719 -8003.9082 8058.5537 -8003.3691 8058.6084 c
+-8002.8291 8058.6631 -8002.1797 8058.6631 -8002.3428 8058.8779 c
+-8002.5034 8059.0947 -8002.5591 8059.0947 -8003.2622 8059.3096 c
+-8003.9629 8059.5264 -8004.7188 8059.7412 -8004.7734 8058.6631 c
+b
+-8005.2578 8053.208 m
+-8006.166 8053.5713 -8006.3931 8053.4775 -8006.6621 8053.8008 c
+-8006.9341 8054.126 -8007.2554 8054.8281 -8007.6348 8053.6943 c
+-8008.0117 8052.5596 -8007.5278 8051.3721 -8007.1475 8051.5342 c
+-8006.771 8051.6953 -8006.3931 8052.3428 -8005.9614 8052.5596 c
+-8005.5293 8052.7764 -8004.7188 8052.9912 -8005.2578 8053.208 c
+b
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 41)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.0996 8071.5967 m
+-7935.0996 8071.5967 L
+-7935.0996 7966.5967 L
+-8016.0996 7966.5967 L
+-8016.0996 8071.5967 L
+n
+u
+u
+u
+0 O
+0 0 0 1 k
+-7997.9053 7984.0225 m
+-7998.1738 7982.2588 -7999.2598 7980.8877 -8000.6235 7980.9932 c
+-8001.9858 7981.0986 -8002.8071 7982.6201 -8002.8428 7984.4033 c
+-8002.8481 7984.666 -8002.7739 7985.8408 -8002.73 7986.0742 C
+-8002.7378 7986.1787 -8002.7188 7986.2705 -8002.71 7986.377 c
+-8002.6138 7987.6221 -8001.457 7988.9561 -8000.041 7988.8467 c
+-7998.6245 7988.7373 -7997.5894 7987.458 -7997.7363 7986.0693 c
+-7997.7441 7986.0039 -7997.7954 7985.2227 -7997.8071 7985.1592 C
+-7997.7813 7984.8809 -7997.8594 7984.3223 -7997.9053 7984.0225 c
+f
+-8008.3643 7993.3301 m
+-8009.0942 8001.5127 -8003.6011 8000.7158 v
+-8000.4678 7999.6152 -8001.541 7996.7168 v
+-8001.7422 7995.3486 -8003.8843 7994.0947 v
+-8004.2461 7993.8467 -8004.8628 7992.6982 v
+-8005.229 7991.1943 -8006.6182 7990.8945 v
+-8008.1758 7990.8477 -8008.3643 7993.3301 v
+f
+-7982.8643 8002.0938 m
+F
+-7982.1758 7999.9375 m
+-7982.8843 7998.79 -7985.9844 7999.2246 Y
+-7986.9111 7999.2852 -7987.4795 7998.708 Y
+-7989.939 7994.6885 -7993.1382 7995.4824 -7993.5078 7995.5898 C
+-7993.5093 7995.583 L
+-7997.0991 7996.2012 -7997.3662 8001.1992 V
+-7997.5908 8001.9785 -7998.4351 8002.3662 V
+-8001.3691 8003.458 -8001.4478 8004.8047 V
+-8001.9995 8006.7119 -7999.7002 8007.3389 V
+-7997.7788 8007.8535 -7995.8882 8005.4912 V
+-7994.7109 8004.2764 -7991.6758 8003.5361 V
+-7991.6724 8003.5488 L
+-7988.459 8002.6416 -7986.7388 8003.1855 Y
+-7983.9517 8004.3643 -7982.5059 8002.998 Y
+-7980.7822 8001.3525 -7982.1758 7999.9375 Y
+f
+-7996.083 7983.4756 m
+-7996.6851 7981.7969 -7996.3818 7980.0742 -7995.1323 7979.5195 c
+-7993.8838 7978.9639 -7992.438 7979.9131 -7991.5581 7981.4639 c
+-7991.4282 7981.6924 -7990.9355 7982.7617 -7990.8628 7982.9873 C
+-7990.8062 7983.0752 -7990.7788 7983.1641 -7990.7358 7983.2637 c
+-7990.2285 7984.4053 -7990.6118 7986.127 -7991.9102 7986.7041 c
+-7993.2085 7987.2822 -7994.7275 7986.6494 -7995.2578 7985.3584 c
+-7995.2827 7985.2969 -7995.6074 7984.584 -7995.6294 7984.5225 C
+-7995.7827 7984.292 -7995.9805 7983.7627 -7996.083 7983.4756 c
+f
+-7981.8125 7986.5273 m
+-7977.2798 7993.3789 -7982.4907 7995.291 v
+-7985.771 7995.8135 -7986.2031 7992.7529 v
+-7986.6782 7991.4521 -7985.3896 7989.332 v
+-7985.1899 7988.9414 -7985.1934 7987.6367 v
+-7985.5854 7986.1416 -7984.5078 7985.2148 v
+-7983.1587 7984.4326 -7981.8125 7986.5273 v
+f
+U
+u
+-7956.8354 8035.7041 m
+-7956.4683 8033.959 -7957.0044 8032.292 -7958.3179 8031.9131 c
+-7959.6318 8031.5342 -7960.9341 8032.6719 -7961.5933 8034.3291 c
+-7961.6899 8034.5742 -7962.0322 8035.6992 -7962.0742 8035.9336 C
+-7962.1172 8036.0293 -7962.1318 8036.1211 -7962.1621 8036.2246 c
+-7962.5083 8037.4238 -7961.8931 8039.0771 -7960.5278 8039.4717 c
+-7959.1631 8039.8662 -7957.7451 8039.0332 -7957.3965 8037.6816 c
+-7957.3789 8037.6172 -7957.1548 8036.8672 -7957.1421 8036.8037 C
+-7957.021 8036.5518 -7956.8979 8036.002 -7956.8354 8035.7041 c
+f
+-7970.3701 8040.2139 m
+-7973.9238 8047.6201 -7968.4995 8048.8027 v
+-7965.1797 8048.8721 -7965.1685 8045.7813 v
+-7964.8774 8044.4277 -7966.4429 8042.5039 v
+-7966.6938 8042.1416 -7966.8691 8040.8496 v
+-7966.6851 8039.3145 -7967.8789 8038.5449 v
+-7969.3218 8037.9561 -7970.3701 8040.2139 v
+f
+-7949.5645 8057.3662 m
+F
+-7948.1631 8055.5879 m
+-7948.4243 8054.2656 -7951.4795 8053.584 Y
+-7952.3696 8053.3164 -7952.6982 8052.5752 Y
+-7953.5918 8047.9502 -7956.8662 8047.5713 -7957.249 8047.542 C
+-7957.249 8047.5361 L
+-7960.8267 8046.8555 -7962.8311 8051.4424 V
+-7963.3149 8052.0928 -7964.2412 8052.1592 V
+-7967.3721 8052.1523 -7967.9165 8053.3857 V
+-7969.1035 8054.9775 -7967.1709 8056.3721 V
+-7965.5522 8057.5273 -7962.9531 8055.9785 V
+-7961.4238 8055.2549 -7958.3218 8055.626 V
+-7958.3228 8055.6387 L
+-7954.9961 8055.918 -7953.5762 8057.0293 Y
+-7951.3789 8059.1113 -7949.5459 8058.3398 Y
+-7947.355 8057.4023 -7948.1631 8055.5879 Y
+f
+-7954.937 8035.832 m
+-7954.9131 8034.0479 -7954.0254 8032.542 -7952.6597 8032.46 c
+-7951.2939 8032.376 -7950.2739 8033.7734 -7949.9951 8035.5352 c
+-7949.9541 8035.7939 -7949.8662 8036.9678 -7949.8774 8037.2061 C
+-7949.8555 8037.3076 -7949.8613 8037.4004 -7949.8555 8037.5088 c
+-7949.7803 8038.7559 -7950.7441 8040.2334 -7952.1621 8040.3184 c
+-7953.5811 8040.4033 -7954.7822 8039.2793 -7954.8242 8037.8838 c
+-7954.8267 8037.8184 -7954.8818 8037.0361 -7954.8794 8036.9717 C
+-7954.9429 8036.7012 -7954.9419 8036.1367 -7954.937 8035.832 c
+f
+-7943.1182 8043.1592 m
+-7941.2773 8051.1641 -7946.8267 8051.127 v
+-7950.083 8050.4648 -7949.415 8047.4473 v
+-7949.4028 8046.0635 -7947.4531 8044.5293 v
+-7947.1274 8044.2344 -7946.6738 8043.0117 v
+-7946.5171 8041.4727 -7945.1831 8040.9844 v
+-7943.645 8040.7246 -7943.1182 8043.1592 v
+f
+U
+U
+1 Ap
+-8016.0996 8071.5967 m
+-8016.0996 7966.5967 L
+-7935.0996 7966.5967 L
+-7935.0996 8071.5967 L
+-8016.0996 8071.5967 L
+n
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 42)
+0 A
+u
+0 Ap
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-7989.5605 8044.6816 m
+-8017.0996 8044.6816 L
+-8017.0996 8072.2207 L
+-7989.5605 8072.2207 L
+-7989.5605 8044.6816 L
+n
+0 O
+0 0.55 1 0.12 k
+-8003.8594 8062.959 m
+-8003.8594 8072.5967 L
+-8002.7339 8072.5967 L
+-8002.7339 8062.959 L
+-8003.8594 8062.959 L
+f
+0 0.55 1 0.3 k
+-8007.5229 8058.4727 m
+-8006.4092 8056.752 -8002.9805 8055.0537 -7998.5962 8055.0537 c
+-7994.2148 8055.0537 -7990.7134 8056.7031 -7989.6714 8058.4707 C
+-7989.6714 8058.4707 L
+-7990.7134 8060.1973 -7994.2148 8061.8945 -7998.5962 8061.8945 c
+-8002.9751 8061.8945 -8006.4238 8060.1582 -8007.5229 8058.4727 C
+f
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 45)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8017.0996 8029.5146 m
+-8017.0996 8072.5967 L
+-7930.3213 8072.5967 L
+-7930.3213 8029.5146 L
+-8017.0996 8029.5146 L
+n
+u
+u
+0 O
+0 0 0 1 k
+-7957.3213 8058.832 m
+-7957.3213 8066.6709 L
+-7945.3213 8059.7412 L
+-7933.3213 8052.8135 L
+-7945.3213 8045.8857 L
+-7957.3213 8038.958 L
+-7957.3213 8047.0791 L
+-8016.0347 8033.3135 L
+-8003.0874 8052.3984 L
+-8017.0996 8072.5967 L
+-7957.3213 8058.832 L
+f
+0 1 1 0.1 k
+0 R
+0 0 0 1 K
+-7955.3213 8055.832 m
+-7955.3213 8063.6709 L
+-7943.3213 8056.7412 L
+-7931.3213 8049.8135 L
+-7943.3213 8042.8857 L
+-7955.3213 8035.958 L
+-7955.3213 8044.0791 L
+-8014.0347 8030.3135 L
+-7999.375 8049.9561 L
+-8014.0347 8069.5967 L
+-7955.3213 8055.832 L
+b
+U
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 5)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-7858.499 8072.5967 m
+-7858.499 8059.0166 L
+-8017.0996 8059.0166 L
+-8017.0996 8072.5967 L
+-7858.499 8072.5967 L
+n
+u
+u
+0 O
+0.285 0.228 0.171 0 k
+-7873.1782 8071.0811 m
+-7873.1431 8072.2861 L
+-7859.6099 8073.1143 -7858.9414 8071.8789 v
+-7858.8438 8071.6982 -7858.7471 8071.3115 -7858.6611 8070.79 C
+-7860.6841 8071.4209 -7870.3911 8071.168 -7873.1782 8071.0811 C
+f
+0.44 0.352 0.264 0 k
+-7873.5059 8059.6201 m
+-7873.4707 8060.8633 L
+-7870.5908 8060.6455 -7860.291 8059.9131 -7858.6431 8060.4619 C
+-7858.8027 8059.8154 -7859.0195 8059.3613 -7859.3042 8059.2119 c
+-7860.9302 8058.3623 -7873.5059 8059.6201 Y
+f
+0.145 0.116 0.087 0 k
+-7873.4707 8060.8633 m
+-7873.1782 8071.0811 L
+-7870.3911 8071.168 -7860.6841 8071.4209 -7858.6611 8070.79 C
+-7858.2515 8068.374 -7858.0254 8062.9561 -7858.6431 8060.4619 C
+-7860.291 8059.9131 -7870.5908 8060.6455 -7873.4707 8060.8633 C
+f
+U
+u
+0.155 0.124 0.093 0 k
+-7899.0371 8064.8701 m
+-7897.9971 8065.2529 L
+-7879.1724 8060.7432 L
+-7879.5811 8059.9111 L
+-7898.4629 8062.3213 L
+-7899.3521 8062.6025 L
+-7899.75 8062.4902 -7900.293 8062.4209 V
+-7899.709 8062.834 -7899.2422 8063.7373 -7899.0371 8064.8701 C
+f
+u
+0.085 0.068 0.051 0 k
+-7903.8989 8069.2627 m
+-7904.6973 8069.3184 -7901.8491 8069.2607 Y
+-7902.4478 8068.6143 -7902.8711 8067.416 -7902.9102 8066.0342 c
+-7902.9165 8065.8213 -7902.9102 8065.6143 -7902.8989 8065.4102 C
+-7903.1411 8065.3037 -7903.1914 8065.3701 -7903.7285 8065.1611 C
+-7903.0996 8069.208 -7903.8989 8069.2627 v
+f
+0.305 0.244 0.183 0 k
+-7902.4438 8062.4639 m
+-7902.6523 8062.4072 -7902.5933 8064.5273 Y
+-7901.5781 8065.3545 L
+-7899.9355 8064.54 L
+-7899.0371 8064.8701 L
+-7899.2422 8063.7373 -7899.709 8062.834 -7900.293 8062.4209 C
+-7900.709 8062.3672 -7901.9741 8062.3965 -7902.4438 8062.4639 C
+f
+U
+0.115 0.092 0.069 0 k
+-7899.0371 8064.8701 m
+-7899.9355 8064.54 L
+-7901.5781 8065.3545 L
+-7902.5933 8064.5273 L
+-7902.8931 8065.3047 -7902.8989 8065.4102 V
+-7901.6133 8065.9756 -7900.2827 8066.3369 -7898.9395 8066.5225 C
+-7898.8896 8066.3232 -7898.8838 8066.1396 -7898.8896 8065.9336 c
+-7898.8994 8065.5684 -7898.9214 8065.2148 -7899.0371 8064.8701 C
+f
+0.41 0.328 0.246 0 k
+-7879.5508 8060.9932 m
+-7881.4771 8062.2393 -7890.4858 8067.6953 -7898.9395 8066.5225 C
+-7899.0034 8067.6895 -7899.3481 8068.6875 -7899.8496 8069.2598 C
+-7899.2891 8069.2588 L
+-7878.8398 8072.3525 L
+-7879.1362 8062.0225 L
+-7879.1724 8060.7432 L
+-7879.3042 8060.834 -7879.5508 8060.9932 v
+f
+0.395 0.316 0.237 0 k
+-7902.9102 8066.0342 m
+-7902.8711 8067.416 -7902.4478 8068.6143 -7901.8491 8069.2607 C
+-7899.7803 8069.2598 L
+-7899.2778 8068.6875 -7898.9214 8067.668 -7898.9395 8066.5225 C
+-7900.2827 8066.3369 -7901.6133 8065.9756 -7902.8989 8065.4102 C
+-7902.9102 8065.6143 -7902.9165 8065.8213 -7902.9102 8066.0342 c
+f
+U
+u
+0 0 0 0.11 k
+-7873.3638 8059.7979 m
+-7872.3403 8059.6318 L
+-7873.3638 8059.7979 L
+-7873.3638 8059.7979 L
+f
+0 0 0 0.34 k
+-7879.5811 8059.9111 m
+-7879.1724 8060.7432 L
+-7877.771 8060.5146 L
+-7876.623 8060.3281 L
+-7874.7754 8060.0273 L
+-7873.3638 8059.7979 L
+-7872.3403 8059.6318 L
+-7872.395 8059.3135 -7872.4668 8059.0947 -7872.5645 8059.0166 C
+-7879.5811 8059.9111 L
+f
+0 0 0 0.32 k
+-7877.9038 8064.8037 m
+-7878.1411 8072.458 L
+-7872.814 8072.5967 L
+-7871.8262 8069.1113 -7872.2813 8064.751 V
+-7877.9038 8064.8037 L
+f
+U
+0.025 0.02 0.015 0 k
+-7871.4219 8061.9814 m
+-7868.4731 8062.5166 -7865.3398 8062.7568 -7862.4155 8061.958 c
+-7862.3853 8061.9463 -7862.375 8061.915 -7862.3867 8061.8936 c
+-7862.3877 8061.8623 -7862.4194 8061.8525 -7862.4414 8061.8525 c
+-7865.3418 8062.6611 -7868.4751 8062.4209 -7871.4038 8061.875 c
+-7871.4258 8061.876 -7871.457 8061.8877 -7871.4668 8061.9189 c
+-7871.4658 8061.9404 -7871.4551 8061.9717 -7871.4219 8061.9814 c
+-7871.4219 8061.9814 l
+f
+-7869.937 8060.9033 m
+-7869.8291 8060.9756 -7869.731 8061.0908 -7869.623 8061.0986 c
+-7865.8882 8061.4287 -7862.2627 8061.3779 -7858.5742 8061.2607 c
+-7858.5522 8061.2607 -7858.5205 8061.2393 -7858.521 8061.2168 c
+-7858.521 8061.1846 -7858.5547 8061.1641 -7858.5762 8061.1641 c
+-7861.4219 8061.2783 -7864.2397 8061.2959 -7867.1035 8061.1318 c
+-7868.0332 8061.0732 -7869.0078 8061.3369 -7869.8774 8060.8174 c
+-7869.8989 8060.8076 -7869.9302 8060.8076 -7869.9502 8060.8301 c
+-7869.9614 8060.8525 -7869.959 8060.8838 -7869.937 8060.9033 c
+-7869.937 8060.9033 l
+f
+-7865.4731 8062.9639 m
+-7863.6094 8064.2764 -7861.4019 8064.9707 -7859.1997 8065.4824 c
+-7859.1675 8065.4932 -7859.147 8065.4814 -7859.1362 8065.4502 c
+-7859.127 8065.416 -7859.1484 8065.3975 -7859.1699 8065.3867 c
+-7861.3613 8064.8623 -7863.5591 8064.1992 -7865.4102 8062.876 c
+-7865.4429 8062.8564 -7865.4751 8062.8672 -7865.4844 8062.8896 c
+-7865.5054 8062.9111 -7865.4941 8062.9424 -7865.4731 8062.9639 c
+-7865.4731 8062.9639 l
+f
+-7871.0317 8069.6533 m
+-7868.8291 8070.167 -7866.6294 8070.627 -7864.3794 8070.8721 c
+-7864.3594 8070.8809 -7864.3291 8070.8604 -7864.3291 8070.8389 c
+-7864.3179 8070.8057 -7864.3403 8070.7744 -7864.3726 8070.7744 c
+-7866.6118 8070.4775 -7868.8301 8070.1143 -7871.0122 8069.5469 c
+-7871.0347 8069.5479 -7871.0669 8069.5596 -7871.0762 8069.5908 c
+-7871.0747 8069.6123 -7871.0645 8069.6445 -7871.0317 8069.6533 c
+-7871.0317 8069.6533 l
+f
+-7870.5391 8068.9561 m
+-7868.4453 8069.7939 -7866.2012 8069.5264 -7864.002 8069.5596 c
+-7863.9702 8069.5576 -7863.9492 8069.5361 -7863.9502 8069.5049 c
+-7863.9517 8069.4717 -7863.9731 8069.4521 -7863.9941 8069.4521 c
+-7866.1924 8069.4404 -7868.437 8069.6953 -7870.5205 8068.8496 c
+-7870.543 8068.8496 -7870.5742 8068.8623 -7870.583 8068.8936 c
+-7870.583 8068.915 -7870.5718 8068.9473 -7870.5391 8068.9561 c
+-7870.5391 8068.9561 l
+f
+-7869.8071 8070.3008 m
+-7868.4829 8070.3486 -7867.25 8070.1436 -7865.9268 8069.8057 c
+-7865.459 8069.6953 -7865.0195 8069.8232 -7864.5605 8069.8096 c
+-7863.9971 8069.7939 l
+-7863.9741 8069.792 -7863.9629 8069.7822 -7863.9531 8069.7705 c
+-7863.9341 8069.748 -7863.9438 8069.7168 -7863.9658 8069.6953 c
+-7864.1621 8069.542 l
+-7864.1738 8069.542 -7864.1851 8069.5313 -7864.1958 8069.5313 c
+-7864.5996 8069.5439 l
+-7866.0547 8069.7881 -7867.5571 8070.2686 -7868.9922 8069.6709 c
+-7869.0254 8069.6611 -7869.0571 8069.6816 -7869.0669 8069.7041 c
+-7869.0669 8069.7354 -7869.0547 8069.7568 -7869.0332 8069.7676 c
+-7867.7471 8070.2959 -7866.271 8070.0713 -7864.9814 8069.6504 c
+-7864.1914 8069.6396 L
+-7864.2241 8069.6299 L
+-7864.0278 8069.7832 L
+-7863.998 8069.6865 L
+-7864.5635 8069.7031 l
+-7865.0317 8069.7373 -7865.4844 8069.5801 -7865.9395 8069.6992 c
+-7867.2539 8070.0576 -7868.4971 8070.2217 -7869.8096 8070.1953 c
+-7869.8418 8070.1963 -7869.8638 8070.2168 -7869.8613 8070.25 c
+-7869.8613 8070.2822 -7869.8398 8070.3027 -7869.8071 8070.3008 c
+-7869.8071 8070.3008 l
+f
+-7870.6714 8070.6572 m
+-7867.9707 8071.8174 -7865.002 8071.167 -7862.2275 8070.7783 c
+-7861.8828 8070.8857 l
+-7861.8613 8070.8955 -7861.8413 8070.8838 -7861.8203 8070.8623 c
+-7861.8096 8070.8408 -7861.8213 8070.8096 -7861.8418 8070.7988 c
+-7862.1797 8070.6064 l
+-7864.875 8069.9893 -7867.6387 8070.3779 -7870.3711 8070.3818 c
+-7870.4019 8070.3838 -7870.4229 8070.4053 -7870.4219 8070.4365 c
+-7870.4194 8070.4688 -7870.3979 8070.4893 -7870.3677 8070.4893 c
+-7867.7734 8070.5313 -7865.1299 8070.04 -7862.5723 8070.6709 c
+-7861.895 8070.8857 L
+-7861.853 8070.7881 L
+-7862.2402 8070.6816 l
+-7865.0054 8071.0391 -7867.9414 8071.7305 -7870.6309 8070.5713 c
+-7870.6533 8070.5615 -7870.6851 8070.5615 -7870.6958 8070.5947 c
+-7870.7051 8070.6152 -7870.7051 8070.6475 -7870.6714 8070.6572 c
+-7870.6714 8070.6572 l
+f
+-7867.7891 8063.9912 m
+-7866.4941 8064.4971 -7865.083 8064.2432 -7863.7798 8063.9404 c
+-7863.7471 8063.9385 -7863.7363 8063.916 -7863.7378 8063.8857 c
+-7863.75 8063.8535 -7863.771 8063.8428 -7863.8027 8063.8447 c
+-7865.0981 8064.127 -7866.4771 8064.4121 -7867.75 8063.8936 c
+-7867.7822 8063.8838 -7867.814 8063.8955 -7867.8242 8063.9277 c
+-7867.8218 8063.9492 -7867.811 8063.9814 -7867.7891 8063.9912 c
+-7867.7891 8063.9912 l
+f
+-7868.2397 8065.8174 m
+-7866.3262 8066.2861 -7864.4141 8066.6992 -7862.4551 8066.9209 c
+-7862.4238 8066.9307 -7862.4019 8066.9092 -7862.3931 8066.876 c
+-7862.395 8066.8564 -7862.4155 8066.8252 -7862.437 8066.8252 c
+-7864.3955 8066.6045 -7866.3091 8066.1787 -7868.2202 8065.71 c
+-7868.2422 8065.7119 -7868.2734 8065.7227 -7868.2827 8065.7549 c
+-7868.2827 8065.7764 -7868.2715 8065.8076 -7868.2397 8065.8174 c
+-7868.2397 8065.8174 l
+f
+-7869.0332 8068.2314 m
+-7866.5991 8069.0576 -7863.9644 8068.6504 -7861.4453 8068.6846 c
+-7861.4131 8068.6846 -7861.3931 8068.6631 -7861.3931 8068.6299 c
+-7861.395 8068.6084 -7861.4155 8068.5889 -7861.4478 8068.5889 c
+-7863.957 8068.5127 -7866.5811 8068.9814 -7868.9941 8068.123 c
+-7869.0278 8068.124 -7869.0591 8068.1357 -7869.0684 8068.1572 c
+-7869.0674 8068.1885 -7869.0557 8068.2207 -7869.0332 8068.2314 c
+-7869.0332 8068.2314 l
+f
+-7864.1538 8069.4463 m
+-7862.7578 8070.1416 -7861.1499 8070 -7859.6338 8070.0635 c
+-7859.6021 8070.0615 -7859.582 8070.04 -7859.582 8070.0088 c
+-7859.583 8069.9873 -7859.605 8069.9561 -7859.6362 8069.9561 c
+-7861.1133 8069.8174 -7862.7485 8070.1201 -7864.1035 8069.3584 c
+-7864.1362 8069.3496 -7864.1675 8069.3604 -7864.1782 8069.3828 c
+-7864.1875 8069.4043 -7864.1763 8069.4365 -7864.1538 8069.4463 c
+-7864.1538 8069.4463 l
+f
+-7863.4414 8066.0215 m
+-7862.4922 8065.9941 -7861.5332 8065.9668 -7860.5835 8065.9385 c
+-7860.5522 8065.9385 -7860.5308 8065.916 -7860.5332 8065.8848 c
+-7860.5332 8065.8525 -7860.5547 8065.832 -7860.5874 8065.832 c
+-7861.5371 8065.8604 -7862.4971 8065.8877 -7863.4453 8065.915 c
+-7863.4771 8065.915 -7863.4971 8065.9385 -7863.4971 8065.9697 c
+-7863.4971 8066 -7863.4741 8066.0225 -7863.4414 8066.0215 c
+-7863.4414 8066.0215 l
+f
+-7861.2588 8063.6328 m
+-7860.7891 8063.6611 -7860.3091 8063.6689 -7859.8379 8063.6885 c
+-7859.8164 8063.6875 -7859.7852 8063.665 -7859.7861 8063.6328 c
+-7859.7871 8063.6006 -7859.8096 8063.5801 -7859.8413 8063.5801 c
+-7860.311 8063.584 -7860.7813 8063.5342 -7861.251 8063.5361 c
+-7861.2827 8063.5264 -7861.3027 8063.5479 -7861.313 8063.5801 c
+-7861.3125 8063.6123 -7861.291 8063.6328 -7861.2588 8063.6328 c
+-7861.2588 8063.6328 l
+f
+-7869.0698 8065.8311 m
+-7868.6685 8066.1064 -7868.2251 8066.2764 -7867.7451 8066.3477 c
+-7867.7109 8066.3574 -7867.6914 8066.335 -7867.6802 8066.3135 c
+-7867.6699 8066.2822 -7867.6924 8066.251 -7867.7148 8066.251 c
+-7868.1851 8066.1689 -7868.6172 8065.999 -7869.0205 8065.7441 c
+-7869.0518 8065.7344 -7869.0845 8065.7344 -7869.0942 8065.7676 c
+-7869.1035 8065.79 -7869.0918 8065.8213 -7869.0698 8065.8311 c
+-7869.0698 8065.8311 l
+f
+-7870.29 8071.6816 m
+-7867.834 8072.124 -7865.3979 8072.5977 -7862.8989 8072.3232 c
+-7862.8774 8072.3232 -7862.8564 8072.3008 -7862.8574 8072.2686 c
+-7862.8574 8072.2373 -7862.8794 8072.2158 -7862.9019 8072.2158 c
+-7865.3911 8072.4697 -7867.834 8072.0811 -7870.2715 8071.5742 c
+-7870.293 8071.5752 -7870.3252 8071.5869 -7870.334 8071.6182 c
+-7870.334 8071.6396 -7870.3218 8071.6719 -7870.29 8071.6816 c
+-7870.29 8071.6816 l
+f
+0.195 0.156 0.117 0 k
+-7870.2661 8060.2412 m
+-7867.8965 8059.8633 -7865.5054 8059.9443 -7863.1294 8060.1865 c
+-7863.0981 8060.1846 -7863.0762 8060.1631 -7863.0762 8060.1318 c
+-7863.0781 8060.1104 -7863.0996 8060.0791 -7863.1211 8060.0791 c
+-7865.5078 8059.8389 -7867.8911 8059.7568 -7870.269 8060.1357 c
+-7870.3022 8060.1357 -7870.3218 8060.1572 -7870.3213 8060.1904 c
+-7870.3203 8060.2217 -7870.2988 8060.2432 -7870.2661 8060.2412 c
+-7870.2661 8060.2412 l
+f
+0.335 0.268 0.201 0 k
+-7869.5347 8059.708 m
+-7867.0278 8059.7119 -7864.5142 8059.874 -7862.0181 8059.4932 c
+-7861.9858 8059.4912 -7861.9644 8059.4697 -7861.9658 8059.4385 c
+-7861.9668 8059.4053 -7861.9893 8059.3857 -7862.0205 8059.3857 c
+-7864.5181 8059.7656 -7867.0293 8059.626 -7869.5371 8059.6025 c
+-7869.5596 8059.6025 -7869.5811 8059.624 -7869.5781 8059.6553 c
+-7869.5781 8059.6885 -7869.5571 8059.708 -7869.5347 8059.708 c
+-7869.5347 8059.708 l
+f
+0.205 0.164 0.123 0 k
+-7871.0762 8059.9229 m
+-7869.6035 8060.2646 -7868.1074 8059.999 -7866.6387 8059.8174 c
+-7866.6074 8059.8174 -7866.5869 8059.7939 -7866.5991 8059.7627 c
+-7866.5996 8059.7305 -7866.6211 8059.71 -7866.6533 8059.7217 c
+-7868.1099 8059.8809 -7869.5957 8060.1797 -7871.0469 8059.8154 c
+-7871.0781 8059.8174 -7871.1099 8059.8281 -7871.1094 8059.8604 c
+-7871.1191 8059.8809 -7871.0981 8059.9131 -7871.0762 8059.9229 c
+-7871.0762 8059.9229 l
+f
+-7864.4531 8059.3916 m
+-7863.2974 8059.5176 -7862.127 8059.4111 -7860.9922 8059.1865 c
+-7860.9707 8059.1748 -7860.9502 8059.1533 -7860.9614 8059.1211 c
+-7860.9619 8059.0996 -7860.9941 8059.0791 -7861.0161 8059.0908 c
+-7862.1499 8059.3369 -7863.291 8059.3896 -7864.4458 8059.2852 c
+-7864.479 8059.2861 -7864.498 8059.3076 -7864.5083 8059.3291 c
+-7864.5078 8059.3613 -7864.4858 8059.3818 -7864.4531 8059.3916 c
+-7864.4531 8059.3916 l
+f
+0.335 0.268 0.201 0 k
+-7871.3677 8062.0439 m
+-7870.021 8062.7852 -7868.4063 8062.1943 -7866.9551 8062.2383 c
+-7866.9219 8062.2373 -7866.9019 8062.2158 -7866.9019 8062.1816 c
+-7866.9038 8062.1621 -7866.9258 8062.1416 -7866.957 8062.1416 c
+-7868.3882 8062.0869 -7869.9819 8062.6768 -7871.3164 8061.9473 c
+-7871.3379 8061.9365 -7871.3691 8061.9482 -7871.3911 8061.9707 c
+-7871.4004 8061.9912 -7871.3882 8062.0244 -7871.3677 8062.0439 c
+-7871.3677 8062.0439 l
+f
+-7869.9941 8064.1611 m
+-7867.7715 8064.6416 -7865.4893 8064.2129 -7863.25 8064.1592 c
+-7863.2173 8064.1582 -7863.1973 8064.1357 -7863.1973 8064.1045 c
+-7863.1997 8064.083 -7863.2314 8064.0635 -7863.2515 8064.0635 c
+-7865.4829 8064.0742 -7867.7515 8064.5771 -7869.9751 8064.0537 c
+-7869.9971 8064.0537 -7870.0283 8064.0654 -7870.0371 8064.0986 c
+-7870.0371 8064.1191 -7870.0254 8064.1504 -7869.9941 8064.1611 c
+-7869.9941 8064.1611 l
+f
+-7864.127 8060.7373 m
+-7862.4492 8061.5654 -7860.5991 8062.0986 -7858.7031 8061.958 c
+-7858.6714 8061.958 -7858.6509 8061.9355 -7858.6523 8061.9033 c
+-7858.6523 8061.8721 -7858.6738 8061.8496 -7858.707 8061.8525 c
+-7860.5811 8062.0127 -7862.4194 8061.457 -7864.0869 8060.6504 c
+-7864.1074 8060.6416 -7864.1411 8060.6416 -7864.1499 8060.6748 c
+-7864.1611 8060.6953 -7864.1611 8060.7275 -7864.127 8060.7373 c
+-7864.127 8060.7373 l
+f
+u
+0.5 0.85 1 0.45 k
+-8017.0996 8067.5049 m
+-8017.125 8068.084 -8016.666 8068.7832 -8015.2671 8069.5869 C
+-8014.9517 8069.5996 -8013.4941 8069.6201 -8011.1885 8069.6455 C
+-8011.1885 8067.4189 L
+-8013.2378 8067.4424 -8015.2173 8067.4824 -8017.0996 8067.5049 C
+f
+-8016.6084 8066.5654 m
+-8011.1885 8066.4414 L
+-8011.1885 8065.4111 L
+-8014.7441 8065.5557 L
+-8015.9141 8065.9268 -8016.6084 8066.5654 V
+f
+0.5 0.85 1 0.32 k
+-8011.1885 8066.4219 m
+-8016.5742 8066.54 L
+-8016.8691 8066.8105 -8017.0845 8067.1533 -8017.0996 8067.5244 C
+-8015.2173 8067.5029 -8013.2378 8067.4814 -8011.1885 8067.458 C
+-8011.1885 8066.4219 L
+f
+0.5 0.85 1 0.45 k
+-7906.25 8066.2139 m
+-7984.458 8067.1377 -8011.2075 8067.4385 V
+-8011.2075 8069.6455 L
+-7994.9141 8069.8281 -7936.0898 8070.3037 Y
+-7901.8491 8069.2607 L
+-7902.5571 8066.1641 L
+-7906.25 8066.2139 L
+f
+0.5 0.85 1 0.12 k
+-8011.2075 8065.4111 m
+-8011.2075 8066.4414 L
+-7902.5254 8064.5967 L
+-7902.4829 8062.46 L
+-7935.7549 8062.3096 L
+-8011.2075 8065.4111 L
+f
+u
+0.065 0.052 0.039 0 k
+-7879.1724 8060.7432 m
+-7879.1362 8062.0225 L
+-7879.395 8060.7129 L
+-7897.9971 8065.2529 L
+-7899.0371 8064.8701 L
+-7898.979 8065.2021 -7898.9395 8065.5537 -7898.9302 8065.9189 c
+-7898.9238 8066.124 -7898.9277 8066.3252 -7898.9395 8066.5225 C
+-7890.4858 8067.6953 -7881.063 8063.2686 -7879.1362 8062.0225 C
+-7878.8398 8072.3525 L
+-7878.1411 8072.458 L
+-7877.9038 8064.8037 L
+-7872.2813 8064.751 L
+-7872.1895 8062.6104 -7872.1714 8060.6182 -7872.3403 8059.6318 C
+-7879.1724 8060.7432 L
+f
+0.4 0.7 1 0 k
+-7902.5571 8066.1846 m
+-7902.5254 8064.5771 L
+-8011.2075 8066.4219 L
+-8011.2075 8067.458 L
+-7984.458 8067.1572 -7902.5571 8066.1846 Y
+f
+U
+U
+0.025 0.02 0.015 0 k
+-7866.834 8068.626 m
+-7866.834 8068.6592 -7866.8125 8068.6787 -7866.7798 8068.6787 c
+-7863.771 8068.71 -7861.521 8068.542 -7858.5151 8068.4561 C
+-7858.5083 8068.3623 L
+-7861.4258 8068.4668 -7863.8604 8068.6045 -7866.7837 8068.5713 C
+-7866.8164 8068.5732 -7866.8354 8068.5947 -7866.834 8068.626 C
+f
+-7858.499 8068.3623 m
+-7858.5078 8068.3408 L
+-7858.5083 8068.3623 L
+-7858.5059 8068.3623 -7858.5029 8068.3623 -7858.499 8068.3623 C
+f
+-7862.5483 8067.0205 m
+-7863.5454 8066.8887 -7864.439 8067.3623 -7865.311 8067.7939 C
+-7865.3438 8067.8047 -7865.353 8067.8369 -7865.3418 8067.8672 C
+-7865.3301 8067.8896 -7865.2979 8067.8984 -7865.2773 8067.8877 c
+-7864.4258 8067.4268 -7863.5308 8067.0166 -7862.5674 8067.1152 c
+-7861.2075 8067.2588 -7860.0034 8067.9717 -7858.625 8068.0488 C
+-7858.5459 8067.9561 L
+-7860.1396 8067.8623 -7860.9644 8067.2197 -7862.5483 8067.0205 c
+f
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 50)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.0996 8071.5967 m
+-7888.9771 8071.5967 L
+-7888.9771 8024.0117 L
+-8016.0996 8024.0117 L
+-8016.0996 8071.5967 L
+n
+u
+*u
+0 O
+0.9529 0.949 0.1961 0.0745 k
+-7989.8931 8056.0137 m
+-7989.9229 8055.8633 L
+-7992.0845 8049.9609 -7993.0435 8047.2344 -7993.375 8045.8857 c
+-7993.4653 8045.8857 L
+-7993.7949 8047.2041 -7994.875 8049.9316 -7997.0669 8055.8633 c
+-7997.0962 8056.0137 L
+-7989.8931 8056.0137 l
+f
+1 D
+-8000.2178 8064.5645 m
+-8001.7188 8068.1328 -8002.499 8070.3057 -8000.2178 8070.5137 c
+-8000.2178 8071.5645 L
+-8002.7988 8071.5342 -8005.6802 8071.5137 -8008.4414 8071.5137 c
+-8012.1646 8071.5137 -8014.627 8071.5342 -8016.0996 8071.5645 c
+-8016.0996 8070.5137 L
+-8014.2061 8070.3057 -8013.1538 8068.1641 -8005.6509 8051.0996 c
+-7993.7949 8024.0117 L
+-7991.9634 8024.0117 L
+-7980.2578 8051.0996 L
+-7972.9043 8068.1045 -7971.8242 8070.3057 -7969.9883 8070.5137 c
+-7969.9883 8071.5645 L
+-7971.6138 8071.5342 -7974.0161 8071.5137 -7977.6763 8071.5137 c
+-7980.6484 8071.5137 -7983.769 8071.5342 -7986.8022 8071.5645 c
+-7986.8022 8070.5137 L
+-7984.5811 8070.3057 -7985.4214 8068.1045 -7986.8613 8064.5645 C
+-8000.2178 8064.5645 l
+f
+*U
+*u
+0 D
+-7945.1758 8039.6777 m
+-7945.1758 8036.0684 -7947.4531 8033.6904 -7951.229 8033.6904 c
+-7952.3379 8033.6904 -7953.1763 8033.8125 -7953.627 8033.8408 c
+-7953.627 8046.1445 L
+-7952.9668 8046.2041 -7952.3081 8046.2041 -7951.8291 8046.2041 c
+-7950.2998 8046.2041 -7948.8022 8045.7236 -7947.7837 8045.002 c
+-7946.4941 8044.1289 -7945.1758 8042.3848 -7945.1758 8039.7383 C
+-7945.1758 8039.6777 l
+f
+1 D
+-7964.1802 8043.9893 m
+-7964.1802 8028.2412 -7964.1802 8026.0254 -7966.6421 8025.875 c
+-7966.6421 8024.915 L
+-7965.1421 8024.8555 -7962.417 8024.7959 -7959.666 8024.7656 c
+-7957.7534 8024.7051 -7954.4941 8024.6152 -7952.2476 8024.5742 c
+-7948.6821 8024.5742 -7945.6851 8025.0225 -7943.1045 8025.8584 c
+-7938.4531 8027.4443 -7934.0698 8031.4492 -7934.0698 8039.2568 c
+-7934.0698 8044.3398 -7936.501 8047.916 -7938.603 8049.6572 c
+-7939.6831 8050.6182 -7940.9131 8051.4287 -7941.874 8051.9092 c
+-7941.874 8052.0596 L
+-7939.623 8055.0879 -7937.7021 8057.6592 -7931.4902 8066.2393 c
+-7929.5996 8068.6611 -7928.0098 8070.335 -7926.8398 8070.5742 c
+-7926.8398 8071.5967 L
+-7928.7598 8071.5967 -7931.0996 8071.4814 -7933.229 8071.4814 c
+-7935.4507 8071.4814 -7936.9517 8071.5967 -7938.542 8071.5967 c
+-7939.7725 8071.5967 -7940.8237 8071.5371 -7941.6035 8070.8691 c
+-7945.1147 8065.4443 -7949.0117 8059.3525 -7952.2178 8054.3105 c
+-7952.6074 8054.3105 -7953.0571 8054.3105 -7953.627 8054.3105 c
+-7953.627 8056.8809 L
+-7953.627 8068.123 -7953.5371 8070.3652 -7951.2891 8070.5742 c
+-7951.2891 8071.5664 L
+-7952.7275 8071.5371 -7956.019 8071.5117 -7958.7988 8071.5117 c
+-7962.0283 8071.5117 -7964.9917 8071.5371 -7966.6118 8071.5664 c
+-7966.6118 8070.5742 L
+-7964.1514 8070.3652 -7964.1802 8068.123 -7964.1802 8051.1885 C
+-7964.1802 8043.9893 l
+f
+*U
+*u
+0 D
+-7913.5557 8051.1895 m
+-7913.5557 8068.0908 -7913.5557 8070.2441 -7916.3828 8070.5742 C
+-7916.3828 8071.5664 l
+-7914.4883 8071.5371 -7911.1538 8071.5117 -7907.8818 8071.5117 c
+-7904.729 8071.5117 -7901.6685 8071.5371 -7899.3877 8071.5664 C
+-7899.3877 8070.5742 l
+-7902.3574 8070.5742 -7902.3877 8068.1211 -7902.3877 8051.1895 C
+-7902.3877 8033.748 L
+-7894.9189 8033.748 l
+-7892.0991 8033.748 -7890.6294 8034.5566 -7889.999 8036.8584 C
+-7889.0068 8036.8584 l
+-7889.0068 8032.0664 -7888.9771 8028.0117 -7888.9771 8024.7676 c
+-7893.4482 8024.7979 -7898.8481 8024.8281 -7904.1597 8024.8281 C
+-7911.8442 8024.8281 l
+-7916.6533 8024.8281 -7922.0962 8024.7979 -7927.061 8024.7676 c
+-7927.061 8027.9814 -7927.0322 8032.0664 -7927.0322 8036.8584 C
+-7926.0068 8036.8584 l
+-7925.4653 8034.7061 -7923.8711 8033.748 -7921.0435 8033.748 C
+-7913.5557 8033.748 l
+-7913.5557 8051.1895 L
+f
+*U
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 6)
+0 A
+u
+1 Ap
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.8496 8048.5967 m
+-8016.8496 8072.5967 L
+-8006.8496 8072.5967 L
+-8006.8496 8048.5967 L
+-8016.8496 8048.5967 L
+n
+0 Ap
+0 O
+1 g
+-8006.8496 8050.5967 m
+-8007.1699 8050.5967 -8007.4854 8050.6152 -8007.7979 8050.6445 c
+-8009.6875 8050.8223 -8011.4194 8051.5313 -8012.8555 8052.6143 c
+-8014.3525 8053.7432 -8015.5195 8055.2783 -8016.1938 8057.0605 c
+-8016.6118 8058.1611 -8016.8496 8059.3496 -8016.8496 8060.5967 c
+-8016.8496 8062.459 -8016.3315 8064.1963 -8015.4453 8065.6885 c
+-8013.7021 8068.624 -8010.5098 8070.5967 -8006.8496 8070.5967 C
+-8006.8496 8050.5967 L
+f
+0 R
+0 G
+1 J 1 j 0.5 w
+-8006.8496 8070.2783 m
+-8009.8789 8069.3223 -8012.707 8067.6641 -8015.4453 8065.6885 C
+S
+-8006.8496 8064.6455 m
+-8009.9995 8062.2393 -8013.0571 8059.5088 -8016.1938 8057.0605 C
+S
+-8012.8555 8052.6143 m
+-8010.79 8053.7051 -8008.8013 8055.0635 -8006.8496 8056.5537 C
+S
+-8007.7979 8050.6445 m
+-8007.4805 8050.7275 -8007.1631 8050.8105 -8006.8496 8050.9111 C
+S
+-8012.8555 8052.6143 m
+-8011.4189 8051.5313 -8009.6875 8050.8223 -8007.7979 8050.6445 C
+S
+-8016.1938 8057.0605 m
+-8016.6118 8058.1611 -8016.8496 8059.3496 -8016.8496 8060.5967 c
+-8016.8496 8062.459 -8016.3311 8064.1963 -8015.4453 8065.6885 C
+S
+-8006.8496 8050.5967 m
+-8007.1699 8050.5967 -8007.4854 8050.6152 -8007.7979 8050.6445 C
+S
+-8012.8555 8052.6143 m
+-8014.3525 8053.7432 -8015.5195 8055.2783 -8016.1938 8057.0605 C
+S
+-8015.4453 8065.6885 m
+-8013.7021 8068.624 -8010.5098 8070.5967 -8006.8496 8070.5967 C
+S
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 62)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8017.0996 8072.5967 m
+-8017.0996 8034.3271 L
+-7978.8301 8034.3271 L
+-7978.8301 8072.5967 L
+-8017.0996 8072.5967 L
+n
+0 O
+1 0.14 0.09 0 k
+-7978.8301 8055.5 m
+-7978.8301 8046.9375 L
+-8017.0996 8046.9375 L
+-8017.0996 8055.5 L
+-7978.8301 8055.5 L
+f
+-7978.8301 8058.6934 m
+-7978.8301 8058.0195 L
+-8017.0996 8058.0195 L
+-8017.0996 8058.6934 L
+-7978.8301 8058.6934 L
+f
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 63)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8017.0996 8072.5967 m
+-8017.0996 8034.3271 L
+-7978.8301 8034.3271 L
+-7978.8301 8072.5967 L
+-8017.0996 8072.5967 L
+n
+0 O
+1 0.14 0.09 0 k
+-7978.8301 8051.4229 m
+-7978.8301 8059.9863 L
+-7991.4404 8059.9863 L
+-7991.4404 8072.5967 L
+-8000.0034 8072.5967 L
+-8000.0059 8051.4229 L
+-8000.0034 8051.4229 L
+-8000.0034 8051.4219 L
+-7978.8301 8051.4229 L
+f
+-7978.8301 8048.9033 m
+-8002.5229 8048.9033 L
+-8002.5229 8072.5967 L
+-8003.1963 8072.5967 L
+-8003.1973 8048.2295 L
+-7978.8301 8048.2295 L
+-7978.8301 8048.9033 L
+f
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 64)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8017.0996 8072.5957 m
+-8017.0996 8034.3252 L
+-7978.8301 8034.3252 L
+-7978.8301 8072.5957 L
+-8017.0996 8072.5957 L
+n
+0 O
+1 0.14 0.09 0 k
+-7978.8301 8046.9355 m
+-8004.4893 8046.9355 L
+-8004.4893 8072.5957 L
+-7995.9258 8072.5967 L
+-7995.9258 8055.5 L
+-7978.8301 8055.5 L
+-7978.8301 8046.9355 L
+f
+-7978.8301 8058.0176 m
+-7993.4077 8058.0176 L
+-7993.4077 8072.5967 L
+-7992.7334 8072.5967 L
+-7992.7334 8058.6924 L
+-7978.8301 8058.6924 L
+-7978.8301 8058.0176 L
+f
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 65)
+0 A
+u
+1 Ap
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-7989.1621 8045.0576 m
+-8016.7021 8045.0576 L
+-8016.7021 8072.5967 L
+-7989.1621 8072.5967 L
+-7989.1621 8045.0576 L
+n
+0 O
+0 0.55 1 0.12 k
+-7988.9414 8058.2969 m
+-8017.0996 8058.2969 L
+-8017.0996 8059.4219 L
+-7988.9414 8059.4219 L
+-7988.9414 8058.2969 L
+f
+u
+0 0.55 1 0.3 k
+-8016.0811 8046.1182 m
+-8016.5098 8048.1221 -8015.2861 8051.748 -8012.187 8054.8477 c
+-8009.0874 8057.9463 -8005.4453 8059.2568 -8003.459 8058.7422 C
+-8003.459 8058.7422 L
+-8002.9751 8056.7861 -8004.2515 8053.1084 -8007.3496 8050.0107 c
+-8010.4453 8046.915 -8014.1118 8045.7031 -8016.0811 8046.1182 C
+f
+0 0.39 0.7 0.12 k
+-8016.0811 8071.5879 m
+-8016.5098 8069.584 -8015.2861 8065.958 -8012.187 8062.8584 c
+-8009.0874 8059.7607 -8005.4453 8058.4502 -8003.459 8058.9639 C
+-8003.459 8058.9639 L
+-8002.9751 8060.9209 -8004.2515 8064.5977 -8007.3496 8067.6953 c
+-8010.4453 8070.792 -8014.1118 8072.0029 -8016.0811 8071.5879 C
+f
+U
+u
+0 0.55 1 0.3 k
+-8002.2778 8071.5879 m
+-8002.707 8069.584 -8001.4834 8065.958 -7998.3838 8062.8584 c
+-7995.2852 8059.7607 -7991.6431 8058.4502 -7989.6572 8058.9639 C
+-7989.6563 8058.9639 L
+-7989.1714 8060.9209 -7990.4492 8064.5977 -7993.5469 8067.6953 c
+-7996.6431 8070.792 -8000.3091 8072.0029 -8002.2778 8071.5879 C
+f
+0 0.39 0.7 0.12 k
+-8002.2778 8046.1182 m
+-8002.707 8048.1221 -8001.4834 8051.748 -7998.3838 8054.8477 c
+-7995.2852 8057.9463 -7991.6431 8059.2568 -7989.6572 8058.7422 C
+-7989.6563 8058.7422 L
+-7989.1714 8056.7861 -7990.4492 8053.1084 -7993.5469 8050.0107 c
+-7996.6431 8046.915 -8000.3091 8045.7031 -8002.2778 8046.1182 C
+f
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 67)
+0 A
+u
+0 Ap
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-7989.5605 8044.6816 m
+-8017.0996 8044.6816 L
+-8017.0996 8072.2207 L
+-7989.5605 8072.2207 L
+-7989.5605 8044.6816 L
+n
+0 O
+0 0.55 1 0.12 k
+-8003.8594 8062.959 m
+-8003.8594 8072.5967 L
+-8002.7339 8072.5967 L
+-8002.7339 8062.959 L
+-8003.8594 8062.959 L
+f
+0 0.55 1 0.3 k
+-8007.5229 8058.4727 m
+-8006.4092 8056.752 -8002.9805 8055.0537 -7998.5962 8055.0537 c
+-7994.2148 8055.0537 -7990.7134 8056.7031 -7989.6714 8058.4707 C
+-7989.6714 8058.4707 L
+-7990.7134 8060.1973 -7994.2148 8061.8945 -7998.5962 8061.8945 c
+-8002.9751 8061.8945 -8006.4238 8060.1582 -8007.5229 8058.4727 C
+f
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 69)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-7989.5605 8045.0576 m
+-8017.0996 8045.0576 L
+-8017.0996 8072.5967 L
+-7989.5605 8072.5967 L
+-7989.5605 8045.0576 L
+n
+0 O
+0 0.55 1 0.3 k
+-8007.5229 8058.8486 m
+-8006.4092 8057.1279 -8002.9805 8055.4297 -7998.5962 8055.4297 c
+-7994.2148 8055.4297 -7990.7134 8057.0791 -7989.6714 8058.8467 C
+-7989.6714 8058.8467 L
+-7990.7134 8060.5732 -7994.2148 8062.2705 -7998.5962 8062.2705 c
+-8002.9751 8062.2705 -8006.4238 8060.5342 -8007.5229 8058.8486 C
+f
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 8)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.0518 8069.9092 m
+-7908.895 8069.9092 L
+-7908.895 8055.7822 L
+-8016.0518 8055.7822 L
+-8016.0518 8069.9092 L
+n
+u
+0 O
+0 0 0 1 k
+-8014.3828 8069.2197 m
+-8014.9531 8071.5967 -8014.918 8067.6006 V
+-8015.1475 8064.3984 L
+-8015.7163 8062.0518 L
+-8015.5498 8059.7197 L
+-8014.0498 8059.0518 -7997.3828 8057.7197 V
+-7990.7163 8056.3857 -7981.7163 8056.3857 V
+-7916.4932 8057.0732 -7911.5908 8058.4814 v
+-7952.4878 8056.4717 -7955.0684 8057.1084 v
+-7915.9565 8058.7568 -7912.9541 8060.0283 v
+-7950.8896 8058.1436 -7954.2671 8059.7744 v
+-7919.3491 8061.5068 -7915.1211 8063.1279 v
+-7921.8213 8062.4795 -7923.6123 8062.6787 v
+-7920.4893 8063.167 l
+-7925.519 8063.0986 l
+-7928.4214 8062.7256 l
+-7920.5518 8063.8389 -7920.0029 8064.4053 v
+-7916.415 8063.7275 -7930.6182 8063.9814 v
+-7964.2173 8060.0518 -8014.3828 8069.2197 V
+f
+/BBAccumRotation (5.805971) XT
+0 R
+0 0 0 0.5 K
+0.025 w
+-8016.0498 8058.7197 m
+-7995.7671 8056.8916 -7976.0723 8055.8174 v
+-7933.251 8056.0986 -7928.6733 8056.4971 v
+-7916.2627 8056.6279 -7908.8955 8057.624 v
+S
+/BBAccumRotation (5.805971) XT
+0 0 0 1 K
+-7953.9365 8056.0049 m
+-7957.3955 8055.624 -7983.3604 8055.876 Y
+-7993.7271 8055.7568 -8016.0498 8058.7197 Y
+S
+/BBAccumRotation (5.805971) XT
+-7953.0869 8059.2607 m
+-7922.4604 8060.1787 -7915.7603 8060.8281 v
+S
+/BBAccumRotation (5.805971) XT
+0 0 0 0.5 K
+-7961.7197 8063.8008 m
+-7926.4702 8065.2139 -7923.5054 8065.7373 v
+S
+/BBAccumRotation (5.805971) XT
+U
+U
+%AI8_EndBrushPattern
+%AI8_BeginBrushPattern
+(New Pattern 83)
+0 A
+u
+0 J 0 j 1 w 4 M []0 d
+0 XR
+-8016.0996 8071.5313 m
+-7802.5005 8071.5313 L
+-7802.5005 8063.7305 L
+-8016.0996 8063.7305 L
+-8016.0996 8071.5313 L
+n
+0 O
+0 0 0 1 k
+-8016.0996 8067.6318 m
+-8006.0854 8070.124 -7999.2871 8071.4717 -7987.3003 8071.5313 c
+-7974.3179 8071.5967 -7909.2998 8071.5313 y
+-7844.2813 8071.5967 -7831.2998 8071.5313 v
+-7819.3125 8071.4717 -7812.5151 8070.124 -7802.5005 8067.6318 C
+-7812.5151 8065.1396 -7819.3125 8063.792 -7831.2998 8063.7305 c
+-7844.2813 8063.666 -7909.2998 8063.7305 y
+-7974.3179 8063.666 -7987.3003 8063.7305 v
+-7999.2871 8063.792 -8006.0854 8065.1396 -8016.0996 8067.6318 C
+f
+U
+%AI8_EndBrushPattern
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI8_BeginPluginObject
+(Adobe Brush Manager Order)
+(Adobe Brush Manager Order)
+( Adobe Calligraphic Brush Tool/ 6 pt Flat / Adobe Calligraphic) -
+( Brush Tool/ 10 pt Oval/ Adobe Calligraphic Brush Tool/ 12 pt ) -
+(Oval / Adobe Calligraphic Brush Tool/ 20 pt Oval/ Adobe Callig) -
+(raphic Brush Tool/ 25 pt Round / Adobe Calligraphic Brush Tool) -
+(/ 50 pt Flat/ Adobe Scatter Brush Tool/ Dog Tracks/ Adobe Scat) -
+(ter Brush Tool/ Fall Leaf/ Adobe Scatter Brush Tool/ Ladybug/ ) -
+(Adobe Scatter Brush Tool/ Push Pin/ Adobe Scatter Brush Tool/ ) -
+(Strawberry/ Adobe Scatter Brush Tool/ Twinkle Star / Adobe Art) -
+(OnPath Brush Tool/ Marker/ Adobe ArtOnPath Brush Tool/ Tapered) -
+( Stroke/ Adobe ArtOnPath Brush Tool/ Arrow/ Adobe ArtOnPath Br) -
+(ush Tool/ Paintbrush/ Adobe ArtOnPath Brush Tool/ Type/ Adobe ) -
+(PatternOnPath Brush Tool/ Double Lines/ Adobe PatternOnPath Br) -
+(ush Tool/ Laurel/ Adobe PatternOnPath Brush Tool/ Rope /) .
+%AI8_EndPluginObject
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI8_BeginPluginObject
+(Adobe Calligraphic Brush Tool)
+(10 pt Oval)
+(1 1 19 15 15 130 130 2 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Calligraphic Brush Tool)
+(12 pt Oval )
+(1 7 17 45 45 0 0 2 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Calligraphic Brush Tool)
+(20 pt Oval)
+(1 20 20 20 100 40 80 0 2 1 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Calligraphic Brush Tool)
+(25 pt Round )
+(1 10 40 100 100 0 0 2 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Calligraphic Brush Tool)
+(50 pt Flat)
+(1 40 60 0 0 44 44 0 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Calligraphic Brush Tool)
+(6 pt Flat )
+(1 4 8 10 10 90 90 2 0 0 0) .
+%AI8_EndPluginObject
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI8_BeginPluginObject
+(Adobe ArtOnPath Brush Tool)
+(Arrow)
+(1 / New Pattern 45/ / / / / 5 0.898039 0 0 / 2 0 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe ArtOnPath Brush Tool)
+(Marker)
+(1 / New Pattern 8/ / / / / 0 0 / 1 1 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe ArtOnPath Brush Tool)
+(Paintbrush)
+(1 / New Pattern 5/ / / / / 1 0.5 0.85 1 0.45 / 0 0 1 0 1 0 0 ) -
+(0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe ArtOnPath Brush Tool)
+(Tapered Stroke)
+(1 / New Pattern 83/ / / / / 1 0 0 0 1 / 1 1 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe ArtOnPath Brush Tool)
+(Type)
+(1 / New Pattern 50/ / / / / 1 0.952941 0.94902 0.196078 0.0745) -
+(098 / 1 0 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI8_BeginPluginObject
+(Adobe PatternOnPath Brush Tool)
+(Double Lines)
+(1 / New Pattern 62/ New Pattern 63/ New Pattern 64/ / / 1 1 0.) -
+(14 0.09 0 / 1 0 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe PatternOnPath Brush Tool)
+(Laurel)
+(1 / New Pattern 65/ New Pattern 42/ New Pattern 67/ / New Patt) -
+(ern 69/ 1 0 0.55 1 0.3 / 1 0 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe PatternOnPath Brush Tool)
+(Rope )
+(1 / New Pattern 1/ / / New Pattern 3/ New Pattern 6/ 5 0 0 0 /) -
+( 1 0 1 0 1 0 0 0) .
+%AI8_EndPluginObject
+%AI5_End_NonPrinting--
+%AI5_Begin_NonPrinting
+Np
+%AI8_BeginPluginObject
+(Adobe Scatter Brush Tool)
+(Dog Tracks)
+(1 /New Pattern 41/ 1 0 0 0 1 / 0 1 1 0 1 1 0 0 0 0 -90 -90 0 1) -
+( 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Scatter Brush Tool)
+(Fall Leaf)
+(1 /New Pattern 34/ 1 0.0745 0.9 0.9019 0.18 / 0 0.602793 1 1 0) -
+(.1 1 1 -1 1 1 -180 180 1 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Scatter Brush Tool)
+(Ladybug)
+(1 /New Pattern 10/ 5 0.898039 0 0 / 0 1 1 0 0.803911 1.2 1 -1.) -
+(55 1.55 1 -180 180 1 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Scatter Brush Tool)
+(Push Pin)
+(1 /New Pattern 36/ 1 0.025 0.1 0.475 0 / 0 1 1 0 0.401676 1 1 ) -
+(-1.06145 1.06 1 -180 180 1 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Scatter Brush Tool)
+(Strawberry)
+(1 /New Pattern 37/ 1 0 0 0 1 / 0 0.803911 1 1 0.803911 1 1 -0.) -
+(5 0.5 1 -75 75.419 1 0 0) .
+%AI8_EndPluginObject
+%AI8_BeginPluginObject
+(Adobe Scatter Brush Tool)
+(Twinkle Star )
+(1 /New Pattern 2/ 0 1 / 1 0.5 1 1 0.25 1 1 -0.5 0.5 1 0 0 0 0 ) -
+(0) .
+%AI8_EndPluginObject
+%AI5_End_NonPrinting--
+%AI5_BeginPalette
+0 0 Pb
+1 1 1 1 ([Registration]) 0 Xs
+([Registration])
+Pc
+0 0 0 0 k
+(C=0 M=0 Y=0 K=0)
+Pc
+0 0 0 1 k
+(C=0 M=0 Y=0 K=100)
+Pc
+0 0.1 1 0 k
+(C=0 M=10 Y=100 K=0)
+Pc
+0 0.5 0 0 k
+(C=0 M=50 Y=0 K=0)
+Pc
+0 0.5 1 0 k
+(C=0 M=50 Y=100 K=0)
+Pc
+1 0.55 1 0 k
+(C=100 M=55 Y=100 K=0)
+Pc
+1 0.9 0.1 0 k
+(C=100 M=90 Y=10 K=0)
+Pc
+0.15 1 1 0 k
+(C=15 M=100 Y=100 K=0)
+Pc
+0.45 0.9 0 0 k
+(C=45 M=90 Y=0 K=0)
+Pc
+0.5 0.4 0.3 0 k
+(C=50 M=40 Y=30 K=0)
+Pc
+0.5 0.85 1 0 k
+(C=50 M=85 Y=100 K=0)
+Pc
+0.75 0.05 1 0 k
+(C=75 M=5 Y=100 K=0)
+Pc
+0.75 0.9 0 0 k
+(C=75 M=90 Y=0 K=0)
+Pc
+0.8 0.05 0 0 k
+(C=80 M=5 Y=0 K=0)
+Pc
+Bb
+2 (Black, White) 0 0 0 1 1 0 0 1 0 0 Bg
+0 BB
+(Black, White)
+Pc
+Bb
+2 (Chrome) 0 0 0 1 1 0 0 1 0 0 Bg
+0 BB
+(Chrome)
+Pc
+Bb
+2 (Rainbow) 0 0 0 1 1 0 0 1 0 0 Bg
+0 BB
+(Rainbow)
+Pc
+Bb
+0 0 0 0 Bh
+2 (Yellow & Orange Radial) 0 0 0 1 1 0 0 1 0 0 Bg
+0 BB
+(Yellow & Orange Radial)
+Pc
+(Brick) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
+(Brick)
+Pc
+(Confetti) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
+(Confetti)
+Pc
+(Leaves - Fall ) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
+(Leaves - Fall )
+Pc
+(Stripes) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p
+(Stripes)
+Pc
+PB
+%AI5_EndPalette
+%%EndSetup
+%AI5_BeginLayer
+1 1 1 1 0 0 1 0 79 128 255 0 50 Lb
+(Layer 1) Ln
+0 A
+1 Ap
+0 R
+0 0 0 1 K
+0 J 0 j 0.5 w 4 M []0 d
+0 XR
+1.65039 -30.082 m
+1.65039 -107.5005 64.2109 -170.2607 141.3828 -170.2607 c
+218.5547 -170.2607 281.1152 -107.5005 281.1152 -30.082 c
+281.1152 47.3364 218.5547 110.0967 141.3828 110.0967 c
+64.2109 110.0967 1.65039 47.3364 1.65039 -30.082 c
+s
+281.1152 -30.082 m
+281.1152 -45.4795 218.5547 -57.9609 141.3828 -57.9609 c
+64.2109 -57.9609 1.65039 -45.4795 1.65039 -30.082 c
+S
+[3 3 ]0 d
+73.9961 -54.5142 m
+73.3154 -46.5801 72.9604 -38.416 72.9604 -30.082 c
+72.9604 -13.7324 74.3267 1.96338 76.8374 16.5527 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+73.5713 -49.5581 m
+75.2725 -48.313 l
+75.3184 -48.3706 l
+74.4067 -51.397 l
+74.27 -52.436 74.1333 -53.4751 73.9961 -54.5142 c
+73.6846 -53.5137 73.3726 -52.5132 73.061 -51.5127 c
+71.6475 -48.6855 l
+71.6729 -48.6221 l
+73.5713 -49.5581 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+203.2236 -90.145 m
+205.8076 -78.9985 207.6943 -67.043 208.7695 -54.5142 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+208.3438 -59.4702 m
+206.4561 -60.4072 l
+206.4199 -60.3428 l
+207.834 -57.5156 l
+208.1455 -56.5151 208.457 -55.5146 208.7695 -54.5142 c
+208.9063 -55.5532 209.043 -56.5923 209.1797 -57.6313 c
+210.0908 -60.6577 l
+210.0557 -60.7163 l
+208.3438 -59.4702 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+132.7236 -58.333 m
+132.6206 -49.2075 132.5664 -39.7593 132.5664 -30.082 c
+132.5664 -6.75684 132.8809 15.2373 133.437 34.5859 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+132.5942 -52.9297 m
+134.3833 -51.814 l
+134.4248 -51.875 l
+133.2915 -54.8252 l
+133.0776 -55.8511 132.8643 -56.8774 132.6504 -57.9033 c
+132.4141 -56.8823 132.1772 -55.8613 131.9404 -54.8403 c
+130.7407 -51.9165 l
+130.7705 -51.855 l
+132.5942 -52.9297 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+149.041 -123.3916 m
+150.0586 -105.3013 150.7847 -82.9971 151.1025 -58.333 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+151.0381 -63.3066 m
+149.2227 -64.3789 l
+149.1831 -64.3169 l
+150.3872 -61.3945 l
+150.6255 -60.374 150.8638 -59.3535 151.1025 -58.333 c
+151.3145 -59.3594 151.5264 -60.3857 151.7383 -61.4121 c
+152.8672 -64.3643 l
+152.8354 -64.4253 l
+151.0381 -63.3066 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+46.3086 -50.2456 m
+48.0527 -67.916 52.0557 -84.521 57.8765 -99.4175 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+46.8477 -55.7026 m
+45.1621 -56.9697 l
+45.1157 -56.9126 l
+45.9883 -53.875 l
+46.1118 -52.8345 46.2349 -51.7935 46.3589 -50.7529 c
+46.6836 -51.749 47.0078 -52.7456 47.3325 -53.7422 c
+48.7822 -56.5508 l
+48.7578 -56.6147 l
+46.8477 -55.7026 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+213.7168 62.1602 m
+228.4912 37.5093 237.4434 5.23926 237.4434 -30.082 c
+237.4434 -36.9287 237.1074 -43.6611 236.457 -50.2456 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+236.9951 -45.7964 m
+238.8955 -44.8833 l
+238.9307 -44.9482 l
+237.4805 -47.7568 l
+237.1563 -48.7534 236.8311 -49.75 236.5068 -50.7461 c
+236.3828 -49.7056 236.2598 -48.6646 236.1357 -47.624 c
+235.2637 -44.5859 l
+235.3008 -44.5283 l
+236.9951 -45.7964 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+27.624 -46.2749 m
+27.1348 -40.9619 26.8833 -35.5586 26.8833 -30.082 c
+26.8833 1.07373 35.0229 29.856 48.792 53.1289 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+27.3008 -41.1309 m
+28.9941 -39.875 l
+29.0405 -39.9321 l
+28.1479 -42.9644 l
+28.0181 -44.0044 27.8877 -45.0439 27.7568 -46.084 c
+27.439 -45.0854 27.1211 -44.0869 26.8027 -43.0884 c
+25.3716 -40.27 l
+25.3965 -40.2065 l
+27.3008 -41.1309 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+211.8789 -141.3818 m
+235.4023 -118.854 251.5781 -84.9604 255.1416 -46.2749 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+254.6855 -51.228 m
+252.791 -52.1533 l
+252.7559 -52.0889 l
+254.1875 -49.2705 l
+254.5059 -48.272 254.8232 -47.2734 255.1416 -46.2749 c
+255.2725 -47.3145 255.4023 -48.3545 255.5332 -49.3945 c
+256.4248 -52.4268 l
+256.3887 -52.4849 l
+254.6855 -51.228 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+103.0664 -56.5005 m
+105.3403 -96.9932 112.7441 -131.3076 122.894 -151.3486 c
+S
+0 Ap
+0 O
+0 0 0 1 k
+1 w []0 d
+103.3457 -61.4668 m
+101.6084 -62.6611 l
+101.564 -62.6025 l
+102.5645 -59.604 l
+102.7314 -58.5693 102.8989 -57.5352 103.0664 -56.5005 c
+103.3486 -57.5098 103.6309 -58.519 103.9131 -59.5283 c
+105.2427 -62.3955 l
+105.2158 -62.4585 l
+103.3457 -61.4668 l
+f
+1 Ap
+0 R
+0 0 0 1 K
+0.5 w [3 3 ]0 d
+160.9014 89.0835 m
+172.6255 64.3555 180.4316 20.2324 180.4316 -30.082 c
+180.4316 -39
+
+%%EndDocument
+ @endspecial 99 x(a)h(a)f(a)h(a)f(a)g(a)h(a)f(a)h(a)f(a)h(a)f(a)g(a)h
+(a)f(a)h(a)f(a)h(a)f(a)g(a)h(a)f(a)h(a)f(a)h(a)f(a)g(a)h(a)f(a)h(a)f(a)
+h(a)f(a)g(a)h(a)f(a)h(a)f(a)g(a)h(a)f(a)h(a)257 1852
+y(a)g(a)f(a)g(a)g(a)g(a)g(a)g(a)h(a)f(a)g(a)g(a)g(a)g(a)g(a)h(a)f(a)g
+(a)g(a)g(a)g(a)g(a)h(a)f(a)g(a)g(a)g(a)g(a)g(a)h(a)f(a)g(a)g(a)g(a)g(a)
+g(a)g(a)h(a)f(a)g(a)g(a)g(a.)963 2628 y(1)p eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Build/source/texk/dvipsk/testdata/psfonts.map b/Build/source/texk/dvipsk/testdata/psfonts.map
new file mode 100644
index 00000000000..12cbe35d25d
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/psfonts.map
@@ -0,0 +1,104 @@
+cmb10 CMB10 <cmb10.pfb
+cmbsy10 CMBSY10 <cmbsy10.pfb
+cmbx10 CMBX10 <cmbx10.pfb
+cmbx12 CMBX12 <cmbx12.pfb
+cmbx5 CMBX5 <cmbx5.pfb
+cmbx6 CMBX6 <cmbx6.pfb
+cmbx7 CMBX7 <cmbx7.pfb
+cmbx8 CMBX8 <cmbx8.pfb
+cmbx9 CMBX9 <cmbx9.pfb
+cmbxsl10 CMBXSL10 <cmbxsl10.pfb
+cmbxti10 CMBXTI10 <cmbxti10.pfb
+cmcsc10 CMCSC10 <cmcsc10.pfb
+cmdunh10 CMDUNH10 <cmdunh10.pfb
+cmex10 CMEX10 <cmex10.pfb
+cmff10 CMFF10 <cmff10.pfb
+cmfi10 CMFI10 <cmfi10.pfb
+cmfib8 CMFIB8 <cmfib8.pfb
+cminch CMINCH <cminch.pfb
+cmitt10 CMITT10 <cmitt10.pfb
+cmmi10 CMMI10 <cmmi10.pfb
+cmmi12 CMMI12 <cmmi12.pfb
+cmmi5 CMMI5 <cmmi5.pfb
+cmmi6 CMMI6 <cmmi6.pfb
+cmmi7 CMMI7 <cmmi7.pfb
+cmmi8 CMMI8 <cmmi8.pfb
+cmmi9 CMMI9 <cmmi9.pfb
+cmmib10 CMMIB10 <cmmib10.pfb
+cmr10 CMR10 <cmr10.pfb
+cmr12 CMR12 <cmr12.pfb
+cmr17 CMR17 <cmr17.pfb
+cmr5 CMR5 <cmr5.pfb
+cmr6 CMR6 <cmr6.pfb
+cmr7 CMR7 <cmr7.pfb
+cmr8 CMR8 <cmr8.pfb
+cmr9 CMR9 <cmr9.pfb
+cmsl10 CMSL10 <cmsl10.pfb
+cmsl12 CMSL12 <cmsl12.pfb
+cmsl8 CMSL8 <cmsl8.pfb
+cmsl9 CMSL9 <cmsl9.pfb
+cmsltt10 CMSLTT10 <cmsltt10.pfb
+cmss10 CMSS10 <cmss10.pfb
+cmss12 CMSS12 <cmss12.pfb
+cmss17 CMSS17 <cmss17.pfb
+cmss8 CMSS8 <cmss8.pfb
+cmss9 CMSS9 <cmss9.pfb
+cmssbx10 CMSSBX10 <cmssbx10.pfb
+cmssdc10 CMSSDC10 <cmssdc10.pfb
+cmssi10 CMSSI10 <cmssi10.pfb
+cmssi12 CMSSI12 <cmssi12.pfb
+cmssi17 CMSSI17 <cmssi17.pfb
+cmssi8 CMSSI8 <cmssi8.pfb
+cmssi9 CMSSI9 <cmssi9.pfb
+cmssq8 CMSSQ8 <cmssq8.pfb
+cmssqi8 CMSSQI8 <cmssqi8.pfb
+cmsy10 CMSY10 <cmsy10.pfb
+cmsy5 CMSY5 <cmsy5.pfb
+cmsy6 CMSY6 <cmsy6.pfb
+cmsy7 CMSY7 <cmsy7.pfb
+cmsy8 CMSY8 <cmsy8.pfb
+cmsy9 CMSY9 <cmsy9.pfb
+cmtcsc10 CMTCSC10 <cmtcsc10.pfb
+cmtex10 CMTEX10 <cmtex10.pfb
+cmtex8 CMTEX8 <cmtex8.pfb
+cmtex9 CMTEX9 <cmtex9.pfb
+cmti10 CMTI10 <cmti10.pfb
+cmti12 CMTI12 <cmti12.pfb
+cmti7 CMTI7 <cmti7.pfb
+cmti8 CMTI8 <cmti8.pfb
+cmti9 CMTI9 <cmti9.pfb
+cmtt10 CMTT10 <cmtt10.pfb
+cmtt12 CMTT12 <cmtt12.pfb
+cmtt8 CMTT8 <cmtt8.pfb
+cmtt9 CMTT9 <cmtt9.pfb
+cmu10 CMU10 <cmu10.pfb
+cmvtt10 CMVTT10 <cmvtt10.pfb
+lasy10 LASY10 <lasy10.pfb
+lasy5 LASY5 <lasy5.pfb
+lasy6 LASY6 <lasy6.pfb
+lasy7 LASY7 <lasy7.pfb
+lasy8 LASY8 <lasy8.pfb
+lasy9 LASY9 <lasy9.pfb
+lasyb10 LASYB10 <lasyb10.pfb
+lcircle10 LCIRCLE10 <lcircle1.pfb
+lcirclew10 LCIRCLEW10 <lcirclew.pfb
+lcircle1 LCIRCLE10 <lcircle1.pfb
+lcirclew LCIRCLEW10 <lcirclew.pfb
+lcmss8 LCMSS8 <lcmss8.pfb
+lcmssb8 LCMSSB8 <lcmssb8.pfb
+lcmssi8 LCMSSI8 <lcmssi8.pfb
+line10 LINE10 <line10.pfb
+linew10 LINEW10 <linew10.pfb
+logo10 LOGO10 <logo10.pfb
+logo8 LOGO8 <logo8.pfb
+logo9 LOGO9 <logo9.pfb
+logobf10 LOGOBF10 <logobf10.pfb
+logosl10 LOGOSL10 <logosl10.pfb
+ptmb8r Times-Bold "TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmbi8r Times-BoldItalic "TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmbo8r Times-Bold ".167 SlantFont TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmr8r Times-Roman "TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmri8r Times-Italic "TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmro8r Times-Roman ".167 SlantFont TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmrre8r Times-Roman "1.2 ExtendFont TeXBase1Encoding ReEncodeFont" <8r.enc
+ptmrrn8r Times-Roman ".82 ExtendFont TeXBase1Encoding ReEncodeFont" <8r.enc
diff --git a/Build/source/texk/dvipsk/testdata/ptmbi.vf b/Build/source/texk/dvipsk/testdata/ptmbi.vf
new file mode 100644
index 00000000000..cf5bde827d7
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/ptmbi.vf
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/ptmbi8r.tfm b/Build/source/texk/dvipsk/testdata/ptmbi8r.tfm
new file mode 100644
index 00000000000..8c9a366fb31
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/ptmbi8r.tfm
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/ptmr.vf b/Build/source/texk/dvipsk/testdata/ptmr.vf
new file mode 100644
index 00000000000..58c76028edb
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/ptmr.vf
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/ptmr8r.tfm b/Build/source/texk/dvipsk/testdata/ptmr8r.tfm
new file mode 100644
index 00000000000..3fa1c10a4c3
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/ptmr8r.tfm
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/ptmri.vf b/Build/source/texk/dvipsk/testdata/ptmri.vf
new file mode 100644
index 00000000000..1bfdd4a0de2
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/ptmri.vf
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/ptmri8r.tfm b/Build/source/texk/dvipsk/testdata/ptmri8r.tfm
new file mode 100644
index 00000000000..b4fc44501cb
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/ptmri8r.tfm
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/quotecmd.dvi b/Build/source/texk/dvipsk/testdata/quotecmd.dvi
new file mode 100644
index 00000000000..2e78f61e52d
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/quotecmd.dvi
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/quotecmd.tex b/Build/source/texk/dvipsk/testdata/quotecmd.tex
new file mode 100644
index 00000000000..f65fe3f8817
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/quotecmd.tex
@@ -0,0 +1,17 @@
+% $Id: write18-quote.tex 16695 2010-01-13 01:18:02Z karl $
+% Public domain. Originally written by Karl Berry,
+% with ideas from Alexander Cherepanov.
+
+\catcode`\# = 12
+\def\cmd{" 2>&1 | echo badnews >pwned.txt #.gz"}
+
+% create this weirdly-named file.
+\catcode0 = 12
+\immediate\openout1 \cmd^^@
+\immediate\closeout1
+
+% write out a special referring to it.
+% if it exists when dvips is run, it will be executed with popen.
+\special{psfile=\cmd}
+\nopagenumbers
+\end
diff --git a/Build/source/texk/dvipsk/testdata/special.pro b/Build/source/texk/dvipsk/testdata/special.pro
new file mode 100644
index 00000000000..651c029a818
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/special.pro
@@ -0,0 +1,46 @@
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/@beginspecial{SDict begin/SpecialSave save N gsave
+normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount
+countdictstack N}N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto
+0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale
+ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}
+ifelse scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale
+llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly
+lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N
+/erasepage{}N/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{
+count ocount sub{pop}repeat countdictstack dcount sub{end}repeat
+grestore SpecialSave restore end}N/@defspecial{SDict begin}N
+/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
+currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
+moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
+/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
+1 startangle endangle arc savematrix setmatrix}N end
diff --git a/Build/source/texk/dvipsk/testdata/tex.pro b/Build/source/texk/dvipsk/testdata/tex.pro
new file mode 100644
index 00000000000..c2b28f05d19
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/tex.pro
@@ -0,0 +1,45 @@
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
diff --git a/Build/source/texk/dvipsk/testdata/texc.pro b/Build/source/texk/dvipsk/testdata/texc.pro
new file mode 100644
index 00000000000..0af2704df43
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/texc.pro
@@ -0,0 +1,57 @@
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
diff --git a/Build/source/texk/dvipsk/testdata/texps.pro b/Build/source/texk/dvipsk/testdata/texps.pro
new file mode 100644
index 00000000000..5787591f21d
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/texps.pro
@@ -0,0 +1,14 @@
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
diff --git a/Build/source/texk/dvipsk/testdata/upjf-g.tfm b/Build/source/texk/dvipsk/testdata/upjf-g.tfm
new file mode 100644
index 00000000000..3f0bfdff987
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/upjf-g.tfm
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/upjf-r.tfm b/Build/source/texk/dvipsk/testdata/upjf-r.tfm
new file mode 100644
index 00000000000..8dbf787b3ec
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/upjf-r.tfm
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/upjf.dvi b/Build/source/texk/dvipsk/testdata/upjf.dvi
new file mode 100644
index 00000000000..1e5473dc81b
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/upjf.dvi
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/upjf.map b/Build/source/texk/dvipsk/testdata/upjf.map
new file mode 100644
index 00000000000..df1f10908a1
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/upjf.map
@@ -0,0 +1,2 @@
+upjf-r Ryumin-Light-UniJIS-UTF16-H
+upjf-g GothicBBB-Medium-UniJIS-UTF16-H
diff --git a/Build/source/texk/dvipsk/testdata/upjf.tex b/Build/source/texk/dvipsk/testdata/upjf.tex
new file mode 100644
index 00000000000..de471281b2f
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/upjf.tex
@@ -0,0 +1,19 @@
+% Copyright (C) 2020 Japanese TeX Development Community
+% You may freely use, modify and/or distribute this file.
+
+\documentclass{ujarticle}
+
+% for dvipdfmx
+%\AtBeginDvi{\special{pdf:mapline upjf-r UniJIS-UTF16-H HaranoAjiMincho-Regular.otf}}
+%\AtBeginDvi{\special{pdf:mapline upjf-g UniJIS-UTF16-H HaranoAjiGothic-Regular.otf}}
+%\AtBeginDvi{\special{pdf:mapline upjf-r UniJIS-UTF16-H !Ryumin-Light}}
+%\AtBeginDvi{\special{pdf:mapline upjf-g UniJIS-UTF16-H !GothicBBB-Medium}}
+%\AtBeginDvi{\special{pdf:mapline upjf-r UPJF-UTF16-H !Ryumin-Light}}
+%\AtBeginDvi{\special{pdf:mapline upjf-g UPJF-UTF16-H !GothicBBB-Medium}}
+
+\begin{document}
+\pagestyle{empty}
+\font\upjf=upjf at 10pt
+\upjf ã‚ã„ã†ãˆãŠï½±ï½²ï½³ï½´ï½µã€â˜ƒ~雪晴☀𠮟。
+\end{document}
+
diff --git a/Build/source/texk/dvipsk/testdata/upjf.tfm b/Build/source/texk/dvipsk/testdata/upjf.tfm
new file mode 100644
index 00000000000..d18f4d546c8
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/upjf.tfm
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/upjf_full.cnf b/Build/source/texk/dvipsk/testdata/upjf_full.cnf
new file mode 100644
index 00000000000..5ba8a501631
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/upjf_full.cnf
@@ -0,0 +1,13 @@
+% makejvf settings for test
+% You may freely use, modify and/or distribute this file.
+
+CHARSET %
++ 2600,% ☀
++ 2603,% ☃
++ 3000..303F,% CJK Symbols and Punctuation
++ 3040..309F,% Hiragana
++ 6674,% æ™´
++ 96EA,% 雪
++ FF00..FFEF,% Halfwidth and Fullwidth Forms
++ 20B9F% 𠮟
+
diff --git a/Build/source/texk/dvipsk/testdata/upjf_full.vf b/Build/source/texk/dvipsk/testdata/upjf_full.vf
new file mode 100644
index 00000000000..342ea0fdc38
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/upjf_full.vf
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/upjf_omit.cnf b/Build/source/texk/dvipsk/testdata/upjf_omit.cnf
new file mode 100644
index 00000000000..dbb1af7ffc2
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/upjf_omit.cnf
@@ -0,0 +1,13 @@
+% makejvf settings for test
+% You may freely use, modify and/or distribute this file.
+
+CHARSET %
++ 2600,% ☀
++ 2603,% ☃
++ 3000..303F,% CJK Symbols and Punctuation
++ 3040..309F,% Hiragana
++ 6674,% æ™´
+%+ 96EA,% 雪
++ FF00..FFEF,% Halfwidth and Fullwidth Forms
+%+ 20B9F% 𠮟
+
diff --git a/Build/source/texk/dvipsk/testdata/upjf_omit.vf b/Build/source/texk/dvipsk/testdata/upjf_omit.vf
new file mode 100644
index 00000000000..e9bbe6ea2fb
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/upjf_omit.vf
Binary files differ
diff --git a/Build/source/texk/dvipsk/testdata/vfnameoverflow.dvi b/Build/source/texk/dvipsk/testdata/vfnameoverflow.dvi
new file mode 100644
index 00000000000..4ec60a4738b
--- /dev/null
+++ b/Build/source/texk/dvipsk/testdata/vfnameoverflow.dvi
Binary files differ
diff --git a/Build/source/texk/dvipsk/tex.lpro b/Build/source/texk/dvipsk/tex.lpro
new file mode 100644
index 00000000000..b7cc3deebe7
--- /dev/null
+++ b/Build/source/texk/dvipsk/tex.lpro
@@ -0,0 +1,368 @@
+% tex.lpro - public domain.
+%
+% The following defines procedures assumed and used by program "dvips"
+% and must be downloaded or sent as a header file for all TeX jobs.
+% Originated by Neal Holtz, Carleton University, Ottawa, Canada
+% <holtz@cascade.carleton.cdn>
+% June, 1985
+%
+% Hacked by tgr, July 1987, stripped down to bare essentials,
+% plus a few new commands for speed.
+%
+% Hacked by don, December 1989, to give characters top down and to
+% remove other small nuisances; merged with tgr's compression scheme
+%
+% To convert this file into a downloaded file instead of a header
+% file, uncomment all of the lines beginning with %-%
+%
+% To observe available VM, uncomment the following.
+% (The first ten lines define a general 'printnumber' routine.)
+%
+% /VirginMtrx 6 array currentmatrix def
+% /dummystring 20 string def
+% /numberpos 36 def
+% /printnumber { gsave VirginMtrx setmatrix
+% /Helvetica findfont 10 scalefont setfont
+% 36 numberpos moveto
+% /numberpos numberpos 12 add def
+% dummystring cvs show
+% grestore
+% } bind def
+% /showVM { vmstatus exch sub exch pop printnumber } def
+% /eop-aux { showVM } def
+%
+%-%0000000 % Server loop exit password
+%-%serverdict begin exitserver
+%-% systemdict /statusdict known
+%-% {statusdict begin 9 0 3 setsccinteractive /waittimeout 300 def end}
+%-% if
+
+/TeXDict 300 dict def % define a working dictionary
+TeXDict begin % start using it.
+/N {def} def
+/B {bind def} N
+/S {exch} N
+/X { S N } B
+/A {dup} B
+/TR {translate} N
+
+% The output of dvips assumes pixel units, Resolution/inch, with
+% increasing y coordinates corresponding to moving DOWNWARD.
+% The PostScript default is big point units (bp), 72/inch, with
+% increasing y coordinates corresponding to moving UP; the
+% following routines handle conversion to dvips conventions.
+
+% Let the PostScript origin be (xps,yps) in dvips coordinates.
+
+/isls false N
+/vsize 11 72 mul N
+/hsize 8.5 72 mul N
+/landplus90 { false } def % make this true to flip landscape
+
+/@rigin % -xps -yps @rigin - establishes dvips conventions
+ { isls { [ 0 landplus90 { 1 -1 } { -1 1 } ifelse 0 0 0 ] concat } if
+ 72 Resolution div 72 VResolution div neg scale
+ isls { landplus90 { VResolution 72 div vsize mul 0 exch }
+ { Resolution -72 div hsize mul 0 } ifelse TR } if
+ Resolution VResolution vsize -72 div 1 add mul TR
+% As bad as setmatrix is, it is better than misalignment.
+ [ matrix currentmatrix
+ { A A round sub abs 0.00001 lt {round} if } forall
+ round exch round exch
+ ] setmatrix } N
+
+/@landscape { /isls true N } B
+
+/@manualfeed
+ { statusdict /manualfeed true put
+ } B
+
+ % n @copies - set number of copies
+/@copies
+ { /#copies X
+ } B
+
+% Bitmap fonts are called Fa, Fb, ..., Fz, F0, F1 . . . Ga . . .
+% The calling sequence for downloading font foo is
+% /foo df charde1 ... chardefn E
+% where each chardef is
+% <hexstring> wd ht xoff yoff dx charno D
+% or <hexstring> wd ht xoff yoff dx I
+% or <hexstring> charno D
+% or <hexstring> I
+
+/FMat [1 0 0 -1 0 0] N
+/FBB [0 0 0 0] N
+
+/nn 0 N /IEn 0 N /ctr 0 N
+/df-tail % id numcc maxcc df-tail -- initialize a new font dictionary
+ {
+% dmystr 2 fontname cvx (@@@@) cvs putinterval % put name in template
+ /nn 8 dict N % allocate new font dictionary
+ nn begin
+ /FontType 3 N
+ /FontMatrix fntrx N
+ /FontBBox FBB N
+ string /base X
+ array /BitMaps X
+ /BuildChar {CharBuilder} N
+ /Encoding IEn N
+ end
+ A { /foo setfont } % dummy macro to be filled in
+ 2 array copy cvx N % have to allocate a new one
+ load % now we change it
+% 0 dmystr 6 string copy % get a copy of the font name
+ 0 nn put
+% cvn cvx put % and stick it in the dummy macro
+ /ctr 0 N % go, count, and etc.
+ [ % start next char definition
+ } B
+/sf 0 N
+/df {
+ /sf 1 N
+ /fntrx FMat N
+ df-tail
+} B
+/dfs { div /sf X
+ /fntrx [ sf 0 0 sf neg 0 0 ] N
+ df-tail
+} B
+
+/E { pop nn A definefont setfont } B
+
+% the following is the only character builder we need. it looks up the
+% char data in the BitMaps array, and paints the character if possible.
+% char data -- a bitmap descriptor -- is an array of length 6, of
+% which the various slots are:
+
+/Cw {Cd A length 5 sub get} B % the number of pixels across
+/Ch {Cd A length 4 sub get} B % the number of pixels tall
+/Cx {128 Cd A length 3 sub get sub} B % num pixels right of origin
+/Cy {Cd A length 2 sub get 127 sub} B % number of pixels below origin
+/Cdx {Cd A length 1 sub get} B % number of pixels to next character
+/Ci {Cd A type /stringtype ne
+ { ctr get /ctr ctr 1 add N } if
+ } B % the hex string image, or array of same
+% begin code for uncompressed fonts only
+/CharBuilder % fontdict ch Charbuilder - -- image one character
+ {save 3 1 roll S A /base get 2 index get S /BitMaps get S get
+ /Cd X pop
+ /ctr 0 N
+ Cdx 0 Cx Cy Ch sub
+ Cx Cw add Cy
+ setcachedevice
+ Cw Ch true
+ [1 0 0 -1 -.1 Cx sub Cy .1 sub]
+ {Ci} imagemask
+ restore
+ } B
+% end code for uncompressed fonts only
+% % here's the alternate code for unpacking compressed fonts
+% /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N
+% /CharBuilder % fontdict ch Charbuilder - -- image one character
+% {save 3 1 roll S A /base get 2 index get S /BitMaps get S get
+% /Cd X pop
+% /ctr 0 N
+% Cdx 0 Cx Cy Ch sub
+% Cx Cw add Cy
+% setcachedevice
+% Cw Ch true
+% [1 0 0 -1 -.1 Cx sub Cy .1 sub]
+% /id Ci N % image data
+% /rw Cw 7 add 8 idiv string N % row, initially zero
+% /rc 0 N % repeat count
+% /gp 0 N % image data pointer
+% /cp 0 N % column pointer
+% { rc 0 ne { rc 1 sub /rc X rw } { G } ifelse } imagemask
+% restore
+% } B
+% /G { { id gp get /gp gp 1 add N
+% A 18 mod S 18 idiv pl S get exec } loop } B
+% /adv { cp add /cp X } B
+% /chg { rw cp id gp 4 index getinterval putinterval
+% A gp add /gp X adv } B
+% /nd { /cp 0 N rw exit } B
+% /lsh { rw cp 2 copy get A 0 eq { pop 1 } { A 255 eq { pop 254 }
+% { A A add 255 and S 1 and or } ifelse } ifelse put 1 adv } B
+% /rsh { rw cp 2 copy get A 0 eq { pop 128 } { A 255 eq { pop 127 }
+% { A 2 idiv S 128 and or } ifelse } ifelse put 1 adv } B
+% /clr { rw cp 2 index string putinterval adv } B
+% /set { rw cp fillstr 0 4 index getinterval putinterval adv } B
+% /fillstr 18 string 0 1 17 { 2 copy 255 put pop } for N
+% /pl [
+% { adv 1 chg }
+% { adv 1 chg nd }
+% { 1 add chg }
+% { 1 add chg nd }
+% { adv lsh }
+% { adv lsh nd }
+% { adv rsh }
+% { adv rsh nd }
+% { 1 add adv }
+% { /rc X nd }
+% { 1 add set }
+% { 1 add clr }
+% { adv 2 chg }
+% { adv 2 chg nd }
+% { pop nd } ] A { bind pop } forall N
+% % end of code for unpacking compressed fonts
+
+/D % char-data ch D - -- define character bitmap in current font
+ { /cc X
+ A type /stringtype ne {]} if
+ nn /base get cc ctr put
+ nn /BitMaps get S ctr S
+ sf 1 ne {
+ A A length 1 sub A 2 index S get sf div put
+ } if
+ put
+ /ctr ctr 1 add N
+ } B
+
+/I % a faster D for when the next char follows immediately
+ { cc 1 add D } B
+
+/bop % %t %d bop - -- begin a brand new page, %t=pageno %d=seqno
+ {
+ userdict /bop-hook known { bop-hook } if
+ /SI save N
+ @rigin
+%
+% Now we check the resolution. If it's correct, we use RV as V,
+% otherwise we use QV.
+%
+ 0 0 moveto
+ /V matrix currentmatrix
+ A 1 get A mul exch 0 get A mul add .99 lt
+ {/QV} {/RV} ifelse load def
+ pop pop
+ } N
+
+/eop % - eop - -- end a page
+ { % eop-aux % -- to observe VM usage
+ SI restore
+ userdict /eop-hook known { eop-hook } if
+ showpage
+ } N
+
+/@start % hsz vsz mag dpi vdpi name @start - -- start everything
+ {
+ userdict /start-hook known { start-hook } if
+ pop % the job name string is used only by start-hook
+ /VResolution X
+ /Resolution X
+ 1000 div /DVImag X
+ /IEn 256 array N
+ 2 string 0 1 255 { IEn S A 360 add 36 4 index cvrs cvn put } for pop
+ 65781.76 div /vsize X
+ 65781.76 div /hsize X
+ } N
+
+/dir 0 def
+/dyy {/dir 0 def
+} B
+/dyt {/dir 1 def
+} B
+/dty {/dir 2 def
+} B
+/dtt {/dir 3 def
+} B
+
+%/p {show} N % the main character setting routine
+/p {dir 2 eq
+ {-90 rotate show 90 rotate}
+ {dir 3 eq {-90 rotate show 90 rotate}
+ {show} ifelse} ifelse
+} N
+
+/RMat [ 1 0 0 -1 0 0 ] N % things we need for rules
+/BDot 260 string N
+/Rx 0 N /Ry 0 N
+%
+% What we need to do to get things to work here is tragic.
+%
+/V {} B /RV
+/v { % can't use ...fill; it makes rules too big
+ /Ry X /Rx X
+ V
+} B
+%
+% Which do we use? The first if we are talking to Display
+% PostScript, the latter otherwise.
+%
+statusdict begin /product where
+ { pop false [(Display) (NeXT) (LaserWriter 16/600)] {
+ A length product length le {
+ A length product exch 0 exch getinterval eq
+ { pop true exit } if
+ } { pop } ifelse
+ } forall }
+ { false } ifelse end
+{ {
+ gsave
+ TR -.1 .1 TR 1 1 scale Rx Ry
+ false RMat { BDot } imagemask
+ grestore
+} }
+{ {
+ gsave
+ TR -.1 .1 TR Rx Ry scale 1 1
+ false RMat { BDot } imagemask
+ grestore
+} } ifelse B
+%
+% We use this if the resolution doesn't match.
+%
+/QV {
+ gsave
+ newpath transform round exch round exch itransform moveto
+ Rx 0 rlineto 0 Ry neg rlineto
+ Rx neg 0 rlineto fill
+ grestore
+} B
+%
+/a { moveto } B % absolute positioning
+/delta 0 N % we need a variable to hold space moves
+%
+% The next ten macros allow us to make horizontal motions that
+% are within 4 of the previous horizontal motion with a single
+% character. These are typically used for spaces.
+%
+/tail { A /delta X 0 rmoveto } B
+/M { S p delta add tail } B
+/b { S p tail } B % show and tail!
+/c { -4 M } B
+/d { -3 M } B
+/e { -2 M } B
+/f { -1 M } B
+/g { 0 M } B
+/h { 1 M } B
+/i { 2 M } B
+/j { 3 M } B
+/k { 4 M } B
+%
+% These next allow us to make small motions (-4..4) cheaply.
+% Typically used for kerns.
+%
+/w { 0 rmoveto } B
+/l { p -4 w } B
+/m { p -3 w } B
+/n { p -2 w } B
+/o { p -1 w } B
+/q { p 1 w } B
+/r { p 2 w } B
+/s { p 3 w } B
+/t { p 4 w } B
+%
+% x is good for small vertical positioning.
+% And y is good for a print followed by a move.
+%
+/x { 0 S rmoveto } B
+/y { 3 2 roll p a } B
+%
+% The bos and eos commands bracket sections of downloaded characters.
+%
+/bos { /SS save N } B
+/eos { SS restore } B
+
+end % revert to previous dictionary
diff --git a/Build/source/texk/dvipsk/tex/blackdvi.tex b/Build/source/texk/dvipsk/tex/blackdvi.tex
new file mode 100644
index 00000000000..d4e4e60b2f8
--- /dev/null
+++ b/Build/source/texk/dvipsk/tex/blackdvi.tex
@@ -0,0 +1,109 @@
+% This is BLACKDVI.STY and BLACKDVI.TEX in text format, as of March 5,
+% 1992, written by Jim Hafner, HAFNER@ALMADEN, or hafner@almaden.ibm.com.
+% This file turns all color commands defined by COLORDVI.STY or COLORDVI.TEX
+% into no-ops and so can be used to get B/W printing without having to
+% ferret out all the color macros. Modified by Tomas Rokicki to be a
+% bit smaller. Same license as dvips.
+%
+% 20 Aug. 1992: Revised by J. Hafner, by adding \globalColor as a no-op.
+%
+% For example, with FoilTeX, just use
+% \documentstyle[blackdvi]{foils}
+% in place of
+% \documentstyle[colordvi]{foils}
+%
+% This file can be used anywhere COLORDVI.STY or COLORDVI.TEX is used. In
+% particular, It can be used in any flavor of LaTeX (e.g. LaTeX,
+% FoilTeX, AMS-LaTeX) by adding the keyword "blackdvi" to the options in
+% the \documentstyle command (e.g., "\documentstyle[blackdvi]{foils}") or
+% \input in any flavor of TeX (e.g. Plain TeX, eplain, AMS-TeX or any of
+% the above LaTeX flavors) with the command "\input blackdvi".
+%
+% Here is the background command
+\def\background#1{}%
+%
+% This is used to define all the \newColor macros defined by \newColor
+% as no-ops.
+\def\newColor #1 {\expandafter\def\csname text#1\endcsname{}%
+ \expandafter\def\csname #1\endcsname##1{##1}}%
+%
+% Here are the two macros used for user-definable colors
+\def\textColor#1{}
+\def\Color#1#2{#2}
+%
+% This is the macro that is used to protect certain regions of the
+% text from corruption by local color commands. See COLORDVI.STY for
+% more information. We make it a no-op in this style.
+\def\globalColor#1{#1}
+%
+% Here are the preset color names. This list should match the list
+% in <colordvi.[tex,sty]>.
+%
+\newColor GreenYellow
+\newColor Yellow
+\newColor Goldenrod
+\newColor Dandelion
+\newColor Apricot
+\newColor Peach
+\newColor Melon
+\newColor YellowOrange
+\newColor Orange
+\newColor BurntOrange
+\newColor Bittersweet
+\newColor RedOrange
+\newColor Mahogany
+\newColor Maroon
+\newColor BrickRed
+\newColor Red
+\newColor OrangeRed
+\newColor RubineRed
+\newColor WildStrawberry
+\newColor Salmon
+\newColor CarnationPink
+\newColor Magenta
+\newColor VioletRed
+\newColor Rhodamine
+\newColor Mulberry
+\newColor RedViolet
+\newColor Fuchsia
+\newColor Lavender
+\newColor Thistle
+\newColor Orchid
+\newColor DarkOrchid
+\newColor Purple
+\newColor Plum
+\newColor Violet
+\newColor RoyalPurple
+\newColor BlueViolet
+\newColor Periwinkle
+\newColor CadetBlue
+\newColor CornflowerBlue
+\newColor MidnightBlue
+\newColor NavyBlue
+\newColor RoyalBlue
+\newColor Blue
+\newColor Cerulean
+\newColor Cyan
+\newColor ProcessBlue
+\newColor SkyBlue
+\newColor Turquoise
+\newColor TealBlue
+\newColor Aquamarine
+\newColor BlueGreen
+\newColor Emerald
+\newColor JungleGreen
+\newColor SeaGreen
+\newColor Green
+\newColor ForestGreen
+\newColor PineGreen
+\newColor LimeGreen
+\newColor YellowGreen
+\newColor SpringGreen
+\newColor OliveGreen
+\newColor RawSienna
+\newColor Sepia
+\newColor Brown
+\newColor Tan
+\newColor Gray
+\newColor Black
+\newColor White
diff --git a/Build/source/texk/dvipsk/tex/colordvi.tex b/Build/source/texk/dvipsk/tex/colordvi.tex
new file mode 100644
index 00000000000..541a9ab8a55
--- /dev/null
+++ b/Build/source/texk/dvipsk/tex/colordvi.tex
@@ -0,0 +1,162 @@
+% This is COLORDVI.TEX and COLORDVI.STY in text format, as of
+% March 5, 1992, written by Jim Hafner, HAFNER@ALMADEN, or
+% hafner@almaden.ibm.com. Modified by Tomas Rokicki to be a
+% bit smaller and easier to add to. Same license as dvips.
+%
+% 20 Aug. 1992: Revised by J. Hafner, by adding \globalColor.
+%
+% This style file can be used to get color in TeX, LaTeX or more
+% importantly, FoilTeX as an optional style file. It is generic in
+% that the color parameters are determined by the driver's header files.
+%
+% It can be used with any driver which knows how to process the keywords
+% in the \special commands. Currently, only versions of dvips greater
+% than 5.478 (dvips is the DVI->PostScript driver by Tom Rokicki) and
+% TeXview on the NeXT interpret these specials.
+%
+% This file can be used in any flavor of LaTeX (e.g. LaTeX, FoilTeX,
+% AMS-LaTeX) by adding the keyword "colordvi" to the options in the
+% \documentstyle command (e.g., "\documentstyle[colordvi]{foils}") or \input
+% in any flavor of TeX (e.g. Plain TeX, eplain, AMS-TeX or any of the
+% above LaTeX flavors) with the command "\input colordvi".
+%
+% The actual parameters for each color are determined by the device
+% driver.
+% For "dvips", that is the header file color.pro prepended to the
+% output file by dvips. They can be overrriden by a user-supplied
+% header, called by either the -h option or the "h" flag in a printer
+% configuration file, or in the .dvipsrc (or its analogue on other
+% systems).
+%
+% Most of the color names and their matches were based on the
+% most recent (at time of writing) Crayola Crayon box of 64 colors.
+%
+% There are 68 predefined colors. At the end of this file is a
+% listing of the color names and their approximate PANTONE color
+% match. This is for reference purposes only.
+%
+% The first macro lets the user specify the background color for the
+% document. It sets the background color for the current page and all
+% succeeding pages, unless changed by another command of this type. To
+% change the background color back to the default, issue
+% \background{White}
+%
+\def\background#1{\special{background #1}}
+%
+% There are two types of text color commands. The first is in the form
+% \ColorName (note the uppercase for the color name).
+%
+% It is called a local color command since it takes one argument
+% enclosed in brackets. It writes the contents of its argument in the
+% selected color. This should be used for local or nested color
+% changes, since it restores the original color state when it completes.
+% The second type of color command is in the form
+% \textColorName
+% This uses the same naming convention as before. It is called a global
+% color command since it takes no arguments and simply sets the color at
+% this point. No previous color information is saved. IF YOU USE THIS
+% INTERNAL TO ANY LOCAL COLOR COMMAND, THE NESTING HISTORY IS LOST.
+%
+% This next definition is used in an invocation of a \textColorName
+% macro to save the global color value in local form via the \globalColor
+% macro. This new macro can then be used to protect certain regions of
+% the text, like item tags and headers and footers which can be
+% corrupted by local colors. In particular, item tags in lists can
+% incorrectly inherit the color from a local color command immediately
+% following it. The \subdef macro is invoked within the invocation of a
+% global color change.
+%
+\def\subdef#1{\gdef\globalColor##1{\special
+ {color push #1}##1\special{color pop}}}
+%
+% Here are the global color changers, with color codes defined;
+% these are used to define the small region colors.
+%
+% This first is for user defined color. The argument #1 is for a "CMYK"
+% quadruple of intensity values between 0 and 1. (CMYK stands for Cyan,
+% Magenta, Yellow and Black.) E.g., \textColor{.2 .3 .4 .1}
+%
+\def\textColor#1{\subdef{cmyk #1}\special{color cmyk #1}}
+%
+% and a userdefinable local color command.
+\def\Color#1#2{\special{color push cmyk #1}#2\special{color pop}}
+%
+%
+\def\newColor #1 {\expandafter\def\csname #1\endcsname##1{\special
+ {color push #1}##1\special{color pop}}%
+ \expandafter\def\csname text#1\endcsname{\subdef{#1}%
+ \special{color #1}}}%
+%
+% Here are the color names and their PANTONE match (approximately)
+%
+\newColor GreenYellow % GreenYellow Approximate PANTONE 388
+\newColor Yellow % Yellow Approximate PANTONE YELLOW
+\newColor Goldenrod % Goldenrod Approximate PANTONE 109
+\newColor Dandelion % Dandelion Approximate PANTONE 123
+\newColor Apricot % Apricot Approximate PANTONE 1565
+\newColor Peach % Peach Approximate PANTONE 164
+\newColor Melon % Melon Approximate PANTONE 177
+\newColor YellowOrange % YellowOrange Approximate PANTONE 130
+\newColor Orange % Orange Approximate PANTONE ORANGE-021
+\newColor BurntOrange % BurntOrange Approximate PANTONE 388
+\newColor Bittersweet % Bittersweet Approximate PANTONE 167
+\newColor RedOrange % RedOrange Approximate PANTONE 179
+\newColor Mahogany % Mahogany Approximate PANTONE 484
+\newColor Maroon % Maroon Approximate PANTONE 201
+\newColor BrickRed % BrickRed Approximate PANTONE 1805
+\newColor Red % Red VERY-Approx PANTONE RED
+\newColor OrangeRed % OrangeRed No PANTONE match
+\newColor RubineRed % RubineRed Approximate PANTONE RUBINE-RED
+\newColor WildStrawberry % WildStrawberry Approximate PANTONE 206
+\newColor Salmon % Salmon Approximate PANTONE 183
+\newColor CarnationPink % CarnationPink Approximate PANTONE 218
+\newColor Magenta % Magenta Approximate PANTONE PROCESS-MAGENTA
+\newColor VioletRed % VioletRed Approximate PANTONE 219
+\newColor Rhodamine % Rhodamine Approximate PANTONE RHODAMINE-RED
+\newColor Mulberry % Mulberry Approximate PANTONE 241
+\newColor RedViolet % RedViolet Approximate PANTONE 234
+\newColor Fuchsia % Fuchsia Approximate PANTONE 248
+\newColor Lavender % Lavender Approximate PANTONE 223
+\newColor Thistle % Thistle Approximate PANTONE 245
+\newColor Orchid % Orchid Approximate PANTONE 252
+\newColor DarkOrchid % DarkOrchid No PANTONE match
+\newColor Purple % Purple Approximate PANTONE PURPLE
+\newColor Plum % Plum VERY-Approx PANTONE 518
+\newColor Violet % Violet Approximate PANTONE VIOLET
+\newColor RoyalPurple % RoyalPurple Approximate PANTONE 267
+\newColor BlueViolet % BlueViolet Approximate PANTONE 2755
+\newColor Periwinkle % Periwinkle Approximate PANTONE 2715
+\newColor CadetBlue % CadetBlue Approximate PANTONE (534+535)/2
+\newColor CornflowerBlue % CornflowerBlue Approximate PANTONE 292
+\newColor MidnightBlue % MidnightBlue Approximate PANTONE 302
+\newColor NavyBlue % NavyBlue Approximate PANTONE 293
+\newColor RoyalBlue % RoyalBlue No PANTONE match
+\newColor Blue % Blue Approximate PANTONE BLUE-072
+\newColor Cerulean % Cerulean Approximate PANTONE 3005
+\newColor Cyan % Cyan Approximate PANTONE PROCESS-CYAN
+\newColor ProcessBlue % ProcessBlue Approximate PANTONE PROCESS-BLUE
+\newColor SkyBlue % SkyBlue Approximate PANTONE 2985
+\newColor Turquoise % Turquoise Approximate PANTONE (312+313)/2
+\newColor TealBlue % TealBlue Approximate PANTONE 3145
+\newColor Aquamarine % Aquamarine Approximate PANTONE 3135
+\newColor BlueGreen % BlueGreen Approximate PANTONE 320
+\newColor Emerald % Emerald No PANTONE match
+\newColor JungleGreen % JungleGreen Approximate PANTONE 328
+\newColor SeaGreen % SeaGreen Approximate PANTONE 3268
+\newColor Green % Green VERY-Approx PANTONE GREEN
+\newColor ForestGreen % ForestGreen Approximate PANTONE 349
+\newColor PineGreen % PineGreen Approximate PANTONE 323
+\newColor LimeGreen % LimeGreen No PANTONE match
+\newColor YellowGreen % YellowGreen Approximate PANTONE 375
+\newColor SpringGreen % SpringGreen Approximate PANTONE 381
+\newColor OliveGreen % OliveGreen Approximate PANTONE 582
+\newColor RawSienna % RawSienna Approximate PANTONE 154
+\newColor Sepia % Sepia Approximate PANTONE 161
+\newColor Brown % Brown Approximate PANTONE 1615
+\newColor Tan % Tan No PANTONE match
+\newColor Gray % Gray Approximate PANTONE COOL-GRAY-8
+\newColor Black % Black Approximate PANTONE PROCESS-BLACK
+\newColor White % White No PANTONE match
+
+% Now we make sure that we initialize the global color to Black
+\subdef{Black}
diff --git a/Build/source/texk/dvipsk/tex/rotate.tex b/Build/source/texk/dvipsk/tex/rotate.tex
new file mode 100644
index 00000000000..27891ee95ee
--- /dev/null
+++ b/Build/source/texk/dvipsk/tex/rotate.tex
@@ -0,0 +1,43 @@
+%
+% These macros allow you to rotate or flip a \TeX\ box. Very useful for
+% sideways tables or upsidedown answers.
+%
+% To use, create a box containing the information you want to rotate.
+% (An hbox or vbox will do.) Now call \rotr\boxnum to rotate the
+% material and create a new box with the appropriate (flipped) dimensions.
+% \rotr rotates right, \rotl rotates left, \rotu turns upside down, and
+% \rotf flips. These boxes may contain other rotated boxes.
+%
+\newdimen\rotdimen
+\def\vspec#1{\special{ps:#1}}% passes #1 verbatim to the output
+\def\rotstart#1{\vspec{gsave currentpoint currentpoint translate
+ #1 neg exch neg exch translate}}% #1 can be any origin-fixing transformation
+\def\rotfinish{\vspec{currentpoint grestore moveto}}% gets back in synch
+%
+% First, the rotation right. The reference point of the rotated box
+% is the lower right corner of the original box.
+%
+\def\rotr#1{\rotdimen=\ht#1\advance\rotdimen by\dp#1%
+ \hbox to\rotdimen{\hskip\ht#1\vbox to\wd#1{\rotstart{90 rotate}%
+ \box#1\vss}\hss}\rotfinish}
+%
+% Next, the rotation left. The reference point of the rotated box
+% is the upper left corner of the original box.
+%
+\def\rotl#1{\rotdimen=\ht#1\advance\rotdimen by\dp#1%
+ \hbox to\rotdimen{\vbox to\wd#1{\vskip\wd#1\rotstart{270 rotate}%
+ \box#1\vss}\hss}\rotfinish}%
+%
+% Upside down is simple. The reference point of the rotated box
+% is the upper right corner of the original box. (The box's height
+% should be the current font's xheight, \fontdimen5\font,
+% if you want that xheight to be at the baseline after rotation.)
+%
+\def\rotu#1{\rotdimen=\ht#1\advance\rotdimen by\dp#1%
+ \hbox to\wd#1{\hskip\wd#1\vbox to\rotdimen{\vskip\rotdimen
+ \rotstart{-1 dup scale}\box#1\vss}\hss}\rotfinish}%
+%
+% And flipped end for end is pretty ysae too. We retain the baseline.
+%
+\def\rotf#1{\hbox to\wd#1{\hskip\wd#1\rotstart{-1 1 scale}%
+ \box#1\hss}\rotfinish}%
diff --git a/Build/source/texk/dvipsk/tex/rotsample.tex b/Build/source/texk/dvipsk/tex/rotsample.tex
new file mode 100644
index 00000000000..4a14658e9ce
--- /dev/null
+++ b/Build/source/texk/dvipsk/tex/rotsample.tex
@@ -0,0 +1,32 @@
+\input rotate
+\newbox\rotbox
+\newbox\rottwo
+%
+\font\big=cmr17 scaled\magstep4
+This is a \setbox\rotbox=\hbox{simple}\rotl\rotbox\ test of
+\setbox\rotbox=\hbox{some}\rotu\rotbox\ rotation primitives that
+\setbox\rotbox=\hbox{\big work}\rotr\rotbox.
+Or maybe \setbox\rotbox=\hbox{\vrule height .2in width .2in}\rotl\rotbox\
+not.
+\bigskip
+\centerline{\vbox{\offinterlineskip
+\def\tablerule{\noalign{\hrule}}
+\def\breather{height 2pt&&&&&&&&&&\cr}
+\def\allfive#1{\breather
+&\global\setbox\rottwo=\hbox{#1}\copy\rottwo&&%
+\setbox\rotbox=\copy\rottwo\rotl\rotbox&&%
+\setbox\rotbox=\copy\rottwo\rotu\rotbox&&%
+\setbox\rotbox=\copy\rottwo\rotr\rotbox&&%
+\rotf\rottwo&\cr
+\breather\tablerule}
+\offinterlineskip
+\halign{\vrule#&\hfil\ #\ \hfil&\vrule#&\hfil\ #\ \hfil&\vrule#&%
+ \hfil\ #\ \hfil&\vrule#&\hfil\ #\ \hfil&\vrule#&\hfil\ #\ \hfil&\vrule#\cr
+\tablerule
+\breather
+&\strut Upside&&Leftside&&Downside&&Rightside&&Flipside&\cr
+\breather\tablerule
+\allfive{gnus}
+\allfive{$-b\pm\sqrt{b^2-4ac}\over2a$}
+\allfive{{\big A}}}}}%
+\bye
diff --git a/Build/source/texk/dvipsk/texc.script b/Build/source/texk/dvipsk/texc.script
new file mode 100755
index 00000000000..598da14f472
--- /dev/null
+++ b/Build/source/texk/dvipsk/texc.script
@@ -0,0 +1,9 @@
+#! /bin/sh
+# A shell script to convert tex.lpro to texc.lpro. Public domain.
+#
+# To use it, say
+# texc.script tex.lpro texc.lpro
+#
+sed -e '/begin code/,/end code/d' \
+ -e '/alternate code/,/end of code/s/^% //' \
+ $1 >$2
diff --git a/Build/source/texk/dvipsk/texps.lpro b/Build/source/texk/dvipsk/texps.lpro
new file mode 100644
index 00000000000..a70671c750c
--- /dev/null
+++ b/Build/source/texk/dvipsk/texps.lpro
@@ -0,0 +1,129 @@
+% Thanks for some changes to:
+%+ This is TEXPS.LPRO as modified by Rob Hutchings 1992Apr02. Public domain.
+%+ My comments are marked as %+
+% PostScript prolog for using resident fonts.
+%+ Provision is made to change the encoding scheme in special instructions.
+%+ This is the only way to access the 20 characters which are present in
+%+ a standard PostScript font, but not included in the standard encoding.
+% All we do is change the widths so that PostScript positioning
+% matches the assumptions of dvips.
+
+% The calling sequence defining font foo to be resident font Bar is
+%+ /foo wd(n-1) ... wd1 wd0 {specials} n atsize /Bar rf
+% where each character width wdi is in pixels,
+%+ and atsize is the desired font size, after magnification, in pixels.
+% The locations of unused characters are specified by codes of the form
+% `m [', denoted m consecutive unused characters, interspersed among the
+% widths of the n characters that are actually used.
+% The total n + (sum of m's) must equal 256.
+
+%
+TeXDict begin
+%
+/rf
+% We copy everything but the FID entry of the resident font
+% (just as in section 5.6 of the Red Book second edition).
+% We also don't copy UniqueID, even though we want to, because
+% this messes up systems that cache the fonts, for some
+% PostScript fonts.
+{ findfont dup length 1 add dict begin
+ { 1 index /FID ne 2 index /UniqueID ne and
+ {def} {pop pop} ifelse } forall
+% Now the top entry on the stack is the desired size, which
+% we use to construct the matrix to transform the font.
+% The way we do this is constrained by our desire to leave
+% a hook for extending and/or slanting; the hook also allows
+% the font to be reencoded extremely cheaply.
+% Extend and slant are coded in positions 0 and 2 of the matrix,
+% whose default values are atsize and 0
+ [ 1 index 0
+% at this point we pick up and obey the special instructions
+ 6 -1 roll exec
+% which changes `{s} n at [ at 0' to `n at [ AT S' (see SlantFont below)
+% and then we will insert the rest of the matrix. It is imperative that
+% VResolution Resolution div mul
+% be used instead of
+% VResolution mul Resolution div
+% because the latter gives us floating point roundoff error that
+% causes the interpreter to think the font isn't square, and this
+% leads to substantially deteriorated character glyphs.
+ 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0 ]
+% The top of stack is now `n [ AT 0 S at*aspect 0 0]';
+% we use this matrix to scale the font later. We store it in Metrics,
+% which we'll give a different definition to anyway later.
+ FontType 0 ne {
+ /Metrics exch def
+% Now we start the dictionary of length n that will eventually be Metrics:
+ dict begin
+% When the font is used the width in the Metrics dictionary will be
+% multiplied by FontMatrix[0] to give the actual character width.
+% We therefore divide each width by FontMatrix[0] before storing.
+% (We assume that FontMatrix has the form [ x 0 0 x 0 0 ].)
+% Note that using FontMatrix[0] is safer than assuming milli-em units,
+% and that loading the widths on to the stack rather than using an array
+% allows the following simple coding.
+% We also allow marks on the stack ([) to mean that we don't use
+% that character and thus don't need any Metrics entry for it.
+% This saves lots of VM.
+% A sequence of m marks is represented by `m ['.
+ Encoding { exch dup type /integertype ne
+ {pop pop 1 sub dup 0 le {pop} {[} ifelse}
+ {FontMatrix 0 get div Metrics 0 get div def} ifelse } forall
+% Now we put the widths dictionary into the font, after grabbing
+% the current definition of Metrics back.
+ Metrics /Metrics currentdict end def
+ } {
+ { 1 index type /nametype eq {exit } if exch pop } loop
+ } ifelse
+% and duplicate /foo so that it can be used both in definefont
+% and as the name of the macro, which is created first as a
+% non-executable array so that we can put the new font dictionary
+% itself inside the macro;
+ [ 2 index currentdict end definefont 3 -1 roll makefont
+% this involves a circumlocution to insert the setfont command.
+ /setfont cvx ]
+% Finally the macro is made executable and given the name /foo.
+ cvx def } def
+%
+% Now here's some oblique hackery... an example of making
+% variants of a resident font look like it is resident.
+%+ Since dvips has to repeat the special instructions for each
+%+ incarnation of such a hacked font, there appears to be little virtue in
+%+ the halfway-house of naming the hacked font. I have therefore omitted
+%+ the PostScript names of the modified fonts;
+%+ the defining lines in psfonts could be
+%+ rptmro Times-Roman ".167 SlantFont"
+%+ My versions of SlantFont and ExtendFont are obeyed in the core of the
+%+ main macro, at a point where the stack contains
+%+ atsize [ x y
+%+ where x and y will become entries 0 and 2 of the transformation matrix.
+% Optionally replace the `slant' by `angle ObliqueSlant';
+% note that the ObliqueSlant of Times-Italic is -15.5 (negative).
+%
+/ObliqueSlant { % angle ObliqueSlant slant
+ dup sin S cos div neg
+ } B
+
+% A slant is multiplied by atsize and added to entry 2 (initially 0)
+/SlantFont {4 index mul add} def
+
+% An extend is simply a multiplier for entry 0 (initially atsize)
+/ExtendFont {3 -1 roll mul exch} def
+
+% Since at the point at which the hook is obeyed, the current dictionary
+% is that of the new font and writeable, it is trivial to include the
+% option of reencoding the font.
+/ReEncodeFont {
+ CharStrings rcheck {
+ /Encoding false def dup
+ [ exch {
+ dup CharStrings exch known not {
+ pop /.notdef
+ /Encoding true def
+ } if
+ } forall
+ Encoding {] exch pop} {cleartomark} ifelse
+ } if
+ /Encoding exch def
+} def
+end
diff --git a/Build/source/texk/dvipsk/tfmload.c b/Build/source/texk/dvipsk/tfmload.c
new file mode 100644
index 00000000000..cd507d0c2bd
--- /dev/null
+++ b/Build/source/texk/dvipsk/tfmload.c
@@ -0,0 +1,305 @@
+/*
+ * Loads a tfm file. It marks the characters as undefined.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#ifdef KPATHSEA
+#include <kpathsea/c-pathmx.h>
+#include <kpathsea/concatn.h>
+#endif
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+FILE *tfmfile;
+
+/*
+ * Our static variables:
+ */
+static char name[500];
+
+void
+badtfm(const char *s)
+{
+ char *msg = concatn ("! Bad TFM file ", name, ": ", s, NULL);
+ error(msg);
+}
+
+/*
+ * Tries to open a tfm file. Uses cmr10.tfm if unsuccessful,
+ * and complains loudly about it.
+ */
+void
+tfmopen(register fontdesctype *fd)
+{
+ register char *n;
+#ifdef KPATHSEA
+ kpse_file_format_type d;
+#else
+ register char *d;
+#endif
+ n = fd->name;
+ if (strlen(n) + 6 >= sizeof (name)) {
+ /* 6 for tfm() + null */
+ error("! TFM file name too long in tfmopen") ;
+ }
+ if (!noomega) {
+#ifdef KPATHSEA
+ d = ofmpath;
+#else
+ d = fd->area;
+ if (*d==0)
+ d = ofmpath;
+#endif
+#ifdef MVSXA /* IBM: MVS/XA */
+ sprintf(name, "ofm(%s)", n);
+#else
+ sprintf(name, "%s.ofm", n);
+#endif
+ if ((tfmfile=search(d, name, READBIN))!=NULL)
+ return;
+ }
+#ifdef KPATHSEA
+ d = tfmpath;
+#else
+ d = fd->area;
+ if (*d==0)
+ d = tfmpath;
+#endif
+#ifdef MVSXA /* IBM: MVS/XA */
+ sprintf(name, "tfm(%s)", n);
+#else
+ sprintf(name, "%s.tfm", n);
+#endif
+ if ((tfmfile=search(d, name, READBIN))!=NULL)
+ return;
+ sprintf(errbuf, "Can't open font metric file %.500s%.500s",
+ fd->area, name);
+ error(errbuf);
+ error("I will use cmr10.tfm instead, so expect bad output.");
+#ifdef MVSXA /* IBM: MVS/XA */
+ if ((tfmfile=search(d, "tfm(cmr10)", READBIN))!=NULL)
+#else
+ if ((tfmfile=search(d, "cmr10.tfm", READBIN))!=NULL)
+#endif
+ return;
+ error("! I can't find cmr10.tfm; please reinstall me with proper paths");
+}
+
+static shalfword
+tfmbyte(void)
+{
+ return(getc(tfmfile));
+}
+
+halfword
+tfm16(void)
+{
+ register halfword a;
+ a = tfmbyte ();
+ return ( a * 256 + tfmbyte () );
+}
+
+uinteger
+tfm24_kanji(void)
+{
+ register uinteger a;
+ a = tfmbyte ();
+ a = a * 256 + tfmbyte ();
+ return ( a + tfmbyte () * 65536 );
+}
+
+integer
+tfm32(void)
+{
+ register integer a;
+ a = tfm16 ();
+ if (a > 32767) a -= 65536;
+ return ( a * 65536 + tfm16 () );
+}
+
+int
+tfmload(register fontdesctype *curfnt)
+{
+ register integer i, j;
+ register integer li, cd=0;
+ integer scaledsize;
+ integer id, nt = 0;
+ integer nw, hd;
+ integer bc, ec;
+ integer nco=0, ncw=0, npc=0, no_repeats = 0;
+ uinteger *index = NULL;
+ halfword *chartype = NULL;
+ integer *scaled;
+ integer *chardat;
+ int font_level;
+ integer pretend_no_chars;
+ int charcount = 0;
+
+ tfmopen(curfnt);
+/*
+ * Next, we read the font data from the tfm file, and store it in
+ * our own arrays.
+ */
+ curfnt->dir = 0;
+ curfnt->iswide = 0;
+ curfnt->codewidth = 1;
+ id = tfm16();
+ if (id!=0) {
+ font_level = -1;
+ if (id == 9 || id == 11) {
+ if (noptex) badtfm("length");
+ if (id == 9) curfnt->dir = id;
+ nt = tfm16(); li = tfm16();
+ curfnt->iswide = 1;
+ curfnt->maxchars = MAX_CODE;
+ curfnt->chardesc = (chardesctype *)realloc(curfnt->chardesc,
+ sizeof(chardesctype)*(MAX_CODE));
+ for (i=0; i<MAX_CODE; i++) {
+ curfnt->chardesc[i].TFMwidth = 0;
+ curfnt->chardesc[i].packptr = NULL;
+ curfnt->chardesc[i].pixelwidth = 0;
+ curfnt->chardesc[i].flags = 0;
+ }
+ }
+ hd = tfm16();
+ bc = tfm16(); ec = tfm16();
+ nw = tfm16();
+ li = tfm32(); li = tfm32(); li = tfm32(); li = tfm16();
+ if ((hd<2 || bc>ec+1 || ec>255 || nw>256) && id != 9 && id != 11)
+ badtfm("header");
+ } else { /* In an .ofm file */
+ if (noomega) badtfm("length");
+ font_level = tfm16();
+ li = tfm32(); hd = tfm32();
+ bc = tfm32(); ec = tfm32();
+ nw = tfm32();
+ for (i=0; i<8; i++) li=tfm32();
+ if (font_level>1 || hd<2 || bc<0 || ec<0 || nw<0
+ || bc>ec+1 || ec>65535 || nw>65536)
+ badtfm("header");
+ if (font_level==1) {
+ nco = tfm32();
+ ncw = tfm32();
+ npc = tfm32();
+ for (i=0; i<12; i++) li=tfm32();
+ }
+ }
+ li = tfm32();
+ check_checksum (li, curfnt->checksum, curfnt->name);
+ li = (integer)(alpha * (real)tfm32());
+ if (li > curfnt->designsize + fsizetol ||
+ li < curfnt->designsize - fsizetol) {
+ char *msg = concat ("Design size mismatch in font ", curfnt->name);
+ error(msg);
+ }
+ pretend_no_chars=ec+1;
+ if (id == 9 || id == 11) {
+ chardat = (integer *)xmalloc(256*sizeof(integer));
+ for (i=2; i<hd; i++)
+ li = tfm32();
+ index = (uinteger *)malloc(nt * sizeof(uinteger));
+ chartype = (halfword *)malloc(nt * sizeof(halfword));
+ li = tfm16();
+ li = tfm16();
+ for (i=1; i<nt; i++) {
+ /* support new JFM spec by texjporg */
+ index[i] = tfm24_kanji();
+ chartype[i] = tfmbyte();
+ }
+ for (i=0; i<256; i++)
+ chardat[i] = 256;
+
+ for (i=bc; i<=ec; i++) {
+ chardat[i] = tfmbyte();
+ li = tfm16();
+ li |= tfmbyte();
+ if (li || chardat[i])
+ charcount++;
+ }
+ } else {
+ if (pretend_no_chars<=256) pretend_no_chars=256;
+ else {
+ curfnt->chardesc = (chardesctype *)
+ xrealloc(curfnt->chardesc, sizeof(chardesctype)*pretend_no_chars);
+ curfnt->maxchars = pretend_no_chars;
+ }
+ for (i=2; i<((font_level==1)?nco-29:hd); i++)
+ li = tfm32();
+ chardat = (integer *) xmalloc(pretend_no_chars*sizeof(integer));
+ for (i=0; i<pretend_no_chars; i++)
+ chardat[i] = -1;
+ for (i=bc; i<=ec; i++) {
+ if (no_repeats>0) {
+ no_repeats--;
+ } else if (font_level>=0) {
+ cd = tfm16();
+ li = tfm32();
+ li = tfm16();
+ if (font_level==1) {
+ no_repeats = tfm16();
+ for (j=0; j<(npc|1); j++) tfm16();
+ ncw -= 3 + npc/2;
+ }
+ } else {
+ cd = tfmbyte();
+ li = tfm16();
+ li = tfmbyte();
+ }
+ if (cd>=nw) badtfm("char info");
+ if (cd) {
+ chardat[i] = cd;
+ charcount++;
+ }
+ }
+ if (font_level==1&&ncw!=0) {
+ char *msg = concat ("Table size mismatch in ", curfnt->name);
+ error(msg);
+ }
+ }
+ scaledsize = curfnt->scaledsize;
+ scaled = (integer *) xmalloc(nw*sizeof(integer));
+ for (i=0; i<nw; i++)
+ scaled[i] = scalewidth(tfm32(), scaledsize);
+ fclose(tfmfile);
+
+ if (id == 9 || id == 11) {
+ for (i=0; i<MAX_CODE; i++) {
+ li = scaled[chardat[0]];
+ curfnt->chardesc[i].TFMwidth = li;
+ if (li >= 0)
+ curfnt->chardesc[i].pixelwidth = ((integer)(conv*li+0.5));
+ else
+ curfnt->chardesc[i].pixelwidth = -((integer)(conv*-li+0.5));
+ curfnt->chardesc[i].flags = (curfnt->resfont ? EXISTS : 0);
+ curfnt->chardesc[i].flags2 = EXISTS;
+ }
+ for (i=1; i<nt; i++) {
+ li = scaled[chardat[chartype[i]]];
+ curfnt->chardesc[index[i]].TFMwidth = li;
+ if (li >= 0)
+ curfnt->chardesc[index[i]].pixelwidth = ((integer)(conv*li+0.5));
+ else
+ curfnt->chardesc[index[i]].pixelwidth = -((integer)(conv*-li+0.5));
+ }
+ free(index);
+ free(chartype);
+ } else {
+ for (i=0; i<pretend_no_chars; i++)
+ if (chardat[i]!= -1) {
+ li = scaled[chardat[i]];
+ curfnt->chardesc[i].TFMwidth = li;
+ if (li >= 0)
+ curfnt->chardesc[i].pixelwidth = ((integer)(conv*li+0.5));
+ else
+ curfnt->chardesc[i].pixelwidth = -((integer)(conv*-li+0.5));
+ curfnt->chardesc[i].flags = (curfnt->resfont ? EXISTS : 0);
+ curfnt->chardesc[i].flags2 = EXISTS;
+ }
+ if (ec>=256) curfnt->codewidth = 2; /* XXX: 2byte-code can have ec<256 */
+ }
+ free(chardat);
+ free(scaled);
+ curfnt->loaded = 1;
+ return charcount;
+}
diff --git a/Build/source/texk/dvipsk/unpack.c b/Build/source/texk/dvipsk/unpack.c
new file mode 100644
index 00000000000..493d6d7cb99
--- /dev/null
+++ b/Build/source/texk/dvipsk/unpack.c
@@ -0,0 +1,181 @@
+/*
+ * Unpacks the raster data from the packed buffer. This code was
+ * translated from pktopx.web using an automatic translator, then
+ * converted for this purpose. This little routine can be very useful
+ * in other drivers as well.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+
+/*
+ * Some statics for use here.
+ */
+static halfword bitweight;
+static halfword dynf;
+static halfword gpower[17] = { 0 , 1 , 3 , 7 , 15 , 31 , 63 , 127 ,
+ 255 , 511 , 1023 , 2047 , 4095 , 8191 , 16383 , 32767 , 65535 };
+static long repeatcount;
+static quarterword *p;
+
+/*
+ * We need procedures to get a nybble, bit, and packed word from the
+ * packed data structure.
+ */
+
+static shalfword
+getnyb(void)
+{
+ if ( bitweight == 0 )
+ { bitweight = 16;
+ return(*p++ & 15);
+ } else {
+ bitweight = 0;
+ return(*p >> 4);
+ }
+}
+
+static Boolean
+getbit(void)
+{
+ bitweight >>= 1;
+ if ( bitweight == 0 )
+ { p++;
+ bitweight = 128;
+ }
+ return(*p & bitweight);
+}
+
+static long
+pkpackednum(void) {
+ register halfword i;
+ register long j;
+ i = getnyb ();
+ if ( i == 0 ) {
+ do { j = getnyb ();
+ i++;
+ } while ( j == 0 );
+ while ( i != 0 ) {
+ j = j * 16 + ((long) getnyb ());
+ i--;
+ }
+ return ( j - 15 + ( 13 - dynf ) * 16 + dynf );
+ }
+ else if ( i <= dynf ) return ( i );
+ else if ( i < 14 ) return ( ( i - dynf - 1 )*16 + getnyb() + dynf + 1 );
+ else {
+ if (repeatcount != 0)
+ error("! recursive repeat count in pk file");
+ repeatcount = 1;
+ if ( i == 14 ) repeatcount = pkpackednum ();
+ return ( pkpackednum() );
+ }
+}
+
+static void
+flip(register char *s, register long howmany)
+{
+ register char t;
+
+ while (howmany > 0) {
+ t = *s;
+ *s = s[1];
+ s[1] = t;
+ howmany--;
+ s += 2;
+ }
+}
+/*
+ * And now we have our main routine.
+ */
+static halfword bftest = 1;
+long
+unpack(quarterword *pack, halfword *raster,
+ halfword cwidth, halfword cheight, halfword cmd)
+{
+ register integer i, j;
+ shalfword wordwidth;
+ register halfword word, wordweight;
+ shalfword rowsleft;
+ Boolean turnon;
+ shalfword hbit, ww;
+ long count;
+ halfword *oraster;
+
+ oraster = raster;
+ p = pack;
+ dynf = cmd / 16;
+ turnon = cmd & 8;
+ wordwidth = (cwidth + 15)/16;
+ if ( dynf == 14 )
+ { bitweight = 256;
+ for ( i = 1; i <= cheight; i ++ )
+ { word = 0;
+ wordweight = 32768;
+ for ( j = 1; j <= cwidth; j ++ )
+ { if ( getbit () ) word += wordweight;
+ wordweight >>= 1;
+ if ( wordweight == 0 )
+ { *raster++ = word;
+ word = 0;
+ wordweight = 32768;
+ }
+ }
+ if ( wordweight != 32768 )
+ *raster++ = word;
+ }
+ } else {
+ rowsleft = cheight;
+ hbit = cwidth;
+ repeatcount = 0;
+ ww = 16;
+ word = 0;
+ bitweight = 16;
+ while ( rowsleft > 0 )
+ { count = pkpackednum();
+ while ( count != 0 )
+ { if ( ( count <= ww ) && ( count < hbit ) )
+ { if ( turnon ) word += gpower [ ww ] - gpower
+ [ ww - count ];
+ hbit -= count;
+ ww -= count;
+ count = 0;
+ }
+ else if ( ( count >= hbit ) && ( hbit <= ww ) )
+ { if ( turnon )
+ word += gpower[ww] - gpower[ww-hbit];
+ *raster++ = word;
+ for ( i = 1; i <= repeatcount; i ++ ) {
+ for ( j = 1; j <= wordwidth; j ++ ) {
+ *raster = *(raster - wordwidth);
+ raster++;
+ }
+ }
+ rowsleft -= repeatcount + 1;
+ repeatcount = 0;
+ word = 0;
+ ww = 16;
+ count -= hbit;
+ hbit = cwidth;
+ }
+ else
+ { if ( turnon ) word += gpower [ ww ];
+ *raster++ = word;
+ word = 0;
+ count -= ww;
+ hbit -= ww;
+ ww = 16;
+ }
+ }
+ turnon = ! turnon;
+ }
+ if ( ( rowsleft != 0 ) || ( (unsigned)hbit != cwidth ) )
+ error ( "! error while unpacking; more bits than required" );
+ }
+ if (*(char *)&bftest) /* is the hardware LittleEndian? */
+ flip((char *)oraster, ((cwidth + 15) >> 4) * (long)cheight);
+ return(p-pack);
+}
diff --git a/Build/source/texk/dvipsk/uptex-vf.test b/Build/source/texk/dvipsk/uptex-vf.test
new file mode 100755
index 00000000000..a8e3f83d918
--- /dev/null
+++ b/Build/source/texk/dvipsk/uptex-vf.test
@@ -0,0 +1,18 @@
+#! /bin/sh -vx
+# $Id$
+# Public domain.
+# You may freely use, modify and/or distribute this file.
+
+TEXFONTS="$srcdir/testdata;."
+SOURCE_DATE_EPOCH=1588474800
+export TEXFONTS SOURCE_DATE_EPOCH
+
+cp $srcdir/testdata/upjf_full.vf ./upjf.vf && \
+./dvips -d 4 $srcdir/testdata/upjf.dvi -o upjf.ps -u $srcdir/testdata/upjf.map && \
+mv upjf.ps upjf_full.ps || exit 1
+
+cp $srcdir/testdata/upjf_omit.vf ./upjf.vf && \
+./dvips -d 4 $srcdir/testdata/upjf.dvi -o upjf.ps -u $srcdir/testdata/upjf.map && \
+mv upjf.ps upjf_omit.ps || exit 2
+
+diff upjf_full.ps upjf_omit.ps || exit 3
diff --git a/Build/source/texk/dvipsk/virtualfont.c b/Build/source/texk/dvipsk/virtualfont.c
new file mode 100644
index 00000000000..287be596609
--- /dev/null
+++ b/Build/source/texk/dvipsk/virtualfont.c
@@ -0,0 +1,322 @@
+/*
+ * Here's the code to load a VF file into memory.
+ * Any resemblance between this file and loadfont.c is purely uncoincidental.
+ */
+#include "dvips.h" /* The copyright notice in that file is included too! */
+#ifdef KPATHSEA
+#include <kpathsea/c-pathmx.h>
+#include <kpathsea/concatn.h>
+#endif
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+/*
+ * Now we have some routines to get stuff from the VF file.
+ * Subroutine vfbyte returns the next byte.
+ */
+static FILE *vffile;
+static char name[500];
+static void
+badvf(const char *s)
+{
+ char *msg = concatn("! Bad VF file ", name, ": ", s, NULL);
+ error(msg);
+}
+
+static shalfword
+vfbyte(void)
+{
+ register shalfword i;
+
+ if ((i=getc(vffile))==EOF)
+ badvf("unexpected eof");
+ return(i);
+}
+
+static integer
+vfquad(void)
+{
+ register integer i;
+
+ i = vfbyte();
+ if (i > 127)
+ i -= 256;
+ i = i * 256 + vfbyte();
+ i = i * 256 + vfbyte();
+ i = i * 256 + vfbyte();
+ return(i);
+}
+
+static integer
+vftrio(void)
+{
+ register integer i;
+
+ i = vfbyte();
+ i = i * 256 + vfbyte();
+ i = i * 256 + vfbyte();
+ return(i);
+}
+
+static int
+vfopen(register fontdesctype *fd)
+{
+ register char *n;
+#ifndef KPATHSEA
+ register char *d;
+#endif
+
+ n = fd->name;
+#ifndef KPATHSEA
+ d = fd->area;
+ if (*d==0)
+ d = vfpath;
+#endif
+ if (strlen(n) + 5 >= sizeof (name)) {
+ /* 5 for vf() + null */
+ error("! VF file name too long in vfopen");
+ }
+#ifdef MVSXA /* IBM: MVS/XA */
+ sprintf(name, "vf(%s)", n);
+#else
+ sprintf(name, "%s.vf", n);
+#endif
+#ifdef KPATHSEA
+ if (0 != (vffile=search(vfpath, name, READBIN)))
+#else
+ if (0 != (vffile=search(d, name, READBIN)))
+#endif
+ return(VF_TEX);
+ if (!noomega)
+#ifdef KPATHSEA
+ if (0 != (vffile=search(ovfpath, n, READBIN)))
+#else
+ if (0 != (vffile=search(d, n, READBIN)))
+#endif
+ return(VF_OMEGA);
+ return(0);
+}
+
+/*
+ * The following routine is like fontdef, but for local fontdefs in VF files.
+ */
+static fontmaptype *
+vfontdef(integer s, int siz)
+{
+ register integer i, j, fn;
+ register fontdesctype *fp;
+ register fontmaptype *cfnt;
+ char *nam, *area;
+ integer cksum, scsize, dssize;
+
+ fn = vfbyte();
+ while (siz-- > 1)
+ fn = (fn << 8) + vfbyte();
+ cfnt = (fontmaptype *)mymalloc((integer)sizeof(fontmaptype));
+ cfnt->fontnum = fn;
+ cksum = vfquad();
+ scsize = scalewidth(s, vfquad());
+ dssize = (integer)(alpha * (real)vfquad());
+ i = vfbyte(); j = vfbyte();
+ if (nextstring + i + j > maxstring)
+ error("! out of string space");
+ area = nextstring;
+ for (; i>0; i--)
+ *nextstring++ = vfbyte();
+ *nextstring++ = 0;
+ nam = nextstring;
+ for (; j>0; j--)
+ *nextstring++ = vfbyte();
+ *nextstring++ = 0;
+ fp = matchfont(nam, area, scsize, (char *)0);
+ if (fp) {
+ nextstring = nam;
+ fp->checksum = cksum;
+ } else {
+ fp = newfontdesc(cksum, scsize, dssize, nam, area);
+ fp->next = fonthead;
+ fonthead = fp;
+ }
+ cfnt->desc = fp;
+ return (cfnt);
+}
+
+/*
+ * Now our virtualfont routine.
+ */
+Boolean
+virtualfont(register fontdesctype *curfnt)
+{
+ register integer i, j;
+ register shalfword cmd;
+ register integer k;
+ register integer length;
+ register integer cc;
+ register chardesctype *cd;
+ integer scaledsize = curfnt->scaledsize;
+ integer no_of_chars=256;
+ integer maxcc=255;
+ register quarterword *tempr;
+ fontmaptype *fm, *newf;
+ int id, kindfont;
+ kindfont = vfopen(curfnt); /* VF_TEX for TeX and pTeX, VF_OMEGA for Omega */
+ curfnt->kind = kindfont;
+ if (!kindfont)
+ return (0);
+#ifdef DEBUG
+ if (dd(D_FONTS))
+ fprintf_str(stderr,"Loading virtual font %s at %.1fpt\n",
+ name, (real)scaledsize/(alpha*0x100000));
+#endif /* DEBUG */
+
+/*
+ * We clear out some pointers:
+ */
+ if (kindfont==VF_OMEGA) {
+ no_of_chars = VF_MEM_UNIT;
+ curfnt->maxchars=VF_MEM_UNIT;
+ free(curfnt->chardesc);
+ curfnt->chardesc = (chardesctype *)
+ mymalloc(VF_MEM_UNIT * (integer)sizeof(chardesctype));
+ }
+ for (i=0; i<no_of_chars; i++) {
+ curfnt->chardesc[i].TFMwidth = 0;
+ curfnt->chardesc[i].packptr = NULL;
+ curfnt->chardesc[i].pixelwidth = 0;
+ curfnt->chardesc[i].flags = 0;
+ curfnt->chardesc[i].flags2 = 0;
+ }
+ if (vfbyte()!=247)
+ badvf("expected pre");
+ if (vfbyte()!=202)
+ badvf("wrong id byte");
+ for(i=vfbyte(); i>0; i--)
+ vfbyte();
+ k = vfquad();
+ check_checksum (k, curfnt->checksum, curfnt->name);
+ k = (integer)(alpha * (real)vfquad());
+ if (k > curfnt->designsize + 2 || k < curfnt->designsize - 2) {
+ id = 0;
+ if (!noptex) {
+ tfmopen(curfnt); /* We check if parent is jfm or not. */
+ id = tfm16();
+ fclose(tfmfile);
+ }
+ if (id != 9 && id != 11) {
+ char *msg = concat("Design size mismatch in font ", name);
+ error(msg);
+ free(msg);
+ }
+ }
+/*
+ * Now we look for font definitions.
+ */
+ fm = NULL;
+ id = 0;
+ while ((cmd=vfbyte())>=243) {
+ if (cmd==248 && (id == 9 || id == 11)) /* parent is jfm and no character definitions */
+ goto close_vf;
+ if (cmd>246)
+ badvf("unexpected command in preamble");
+ newf = vfontdef(scaledsize, cmd-242);
+ if (fm)
+ fm->next = newf;
+ else {
+ curfnt->localfonts = newf;
+ if (!noptex && id==0) {
+ tfmopen(curfnt->localfonts->desc); /* We check if parent is jfm or not. */
+ id = tfm16();
+ fclose(tfmfile);
+ if (id == 9 || id == 11)
+ curfnt->kind = VF_PTEX;
+ }
+ }
+ fm = newf;
+ fm->next = NULL; /* FIFO */
+ }
+/*
+ * Now we get down to the serious business of reading character definitions.
+ */
+ do {
+ if (cmd==242) {
+ length = vfquad() + 2;
+ if (length<2) badvf("negative length packet");
+ if (length>65535) badvf("packet too long");
+ cc = vfquad();
+ if (cc>=no_of_chars && cc<MAX_CODE) {
+ j = VF_MEM_UNIT * ((integer)(cc/VF_MEM_UNIT) + 1);
+ curfnt->chardesc = (chardesctype *)xrealloc(curfnt->chardesc,
+ sizeof(chardesctype)*j);
+ for (i=no_of_chars; i<j; i++) {
+ curfnt->chardesc[i].TFMwidth = 0;
+ curfnt->chardesc[i].packptr = NULL;
+ curfnt->chardesc[i].pixelwidth = 0;
+ curfnt->chardesc[i].flags = 0;
+ curfnt->chardesc[i].flags2 = 0;
+ }
+ no_of_chars = j;
+ curfnt->maxchars=no_of_chars;
+ }
+ else if (cc<0 || cc>=no_of_chars) badvf("character code out of range");
+ cd = curfnt->chardesc + cc;
+ cd->TFMwidth = scalewidth(vfquad(), scaledsize);
+ } else {
+ length = cmd + 2;
+ cc = vfbyte();
+ cd = curfnt->chardesc + cc;
+ cd->TFMwidth = scalewidth(vftrio(), scaledsize);
+ }
+ maxcc = (maxcc<cc) ? cc : maxcc;
+ if (cd->TFMwidth >= 0)
+ cd->pixelwidth = ((integer)(conv*cd->TFMwidth+0.5));
+ else
+ cd->pixelwidth = -((integer)(conv*-cd->TFMwidth+0.5));
+ cd->flags = EXISTS;
+ cd->flags2 = EXISTS;
+ if (bytesleft < length) {
+#ifdef DEBUG
+ if (dd(D_MEM))
+ fprintf(stderr,
+#ifdef SHORTINT
+ "Allocating new raster memory (%ld req, %ld left)\n",
+#else
+ "Allocating new raster memory (%d req, %ld left)\n",
+#endif
+ length, bytesleft);
+#endif /* DEBUG */
+ if (length > MINCHUNK) {
+ tempr = (quarterword *)mymalloc((integer)length);
+ bytesleft = 0;
+ } else {
+ raster = (quarterword *)mymalloc((integer)RASTERCHUNK);
+ tempr = raster;
+ bytesleft = RASTERCHUNK - length;
+ raster += length;
+ }
+ } else {
+ tempr = raster;
+ bytesleft -= length;
+ raster += length;
+ }
+ cd->packptr = tempr;
+ length -= 2;
+ *tempr++ = length / 256;
+ *tempr++ = length % 256;
+ for (; length>0; length--)
+ *tempr++ = vfbyte();
+ cmd = vfbyte();
+ } while (cmd < 243);
+ if (cmd != 248)
+ badvf("missing postamble");
+ close_vf:
+ fclose(vffile);
+ curfnt->loaded = 2;
+ if (maxcc+1<no_of_chars) {
+ curfnt->chardesc = (chardesctype *)
+ xrealloc(curfnt->chardesc,
+ (maxcc+1) * (integer)sizeof(chardesctype));
+ curfnt->maxchars=maxcc+1;
+ }
+ return (1);
+}
diff --git a/Build/source/texk/dvipsk/vmcms/Makefile.IBM b/Build/source/texk/dvipsk/vmcms/Makefile.IBM
new file mode 100644
index 00000000000..76906af9cee
--- /dev/null
+++ b/Build/source/texk/dvipsk/vmcms/Makefile.IBM
@@ -0,0 +1,199 @@
+#
+# Makefile for dvips. Edit this first part of the file.
+#
+# First, the things that absolutely must be edited for your system.
+# Please, don't forget to edit MakeTeXPK in the same way!
+
+# the default path to search for TFM files
+# (this usually is identical to TeX's defaultfontpath, which omits `.')
+# (private fonts are given an explicit directory, which overrides the path)
+# TFMPATH = /LocalLibrary/Fonts/TeXFonts/tfm:/usr/lib/tex/fonts/tfm
+TFMPATH = /usr/local/lib/tex/fonts/tfm:/local/lib/tex/fonts/tfm
+
+# the default path to search for PK files (usually omits `.')
+# Don't forget to add the directory that
+# MakeTeXPK puts the files! (In this case, /LocalLibrary/Fonts...)
+# PKPATH = /LocalLibrary/Fonts/TeXFonts/pk:/usr/lib/tex/fonts/pk
+PKPATH = /local/lib/tex/fonts/%m/%f.%d%p:/usr/local/lib/tex/fonts/%m/%f.%d%p:
+
+# the default path to search for VF files (usually omits `.')
+# VFPATH = /LocalLibrary/Fonts/TeXFonts/vf:/usr/lib/tex/fonts/vf
+VFPATH = /local/lib/tex/fonts/vf:/usr/local/lib/tex/fonts/vf
+
+# additional directories in which to search for subdirectories to find
+# both tfm and pk files
+FONTSUBDIRPATH =
+
+# where the config files go
+# CONFIGDIR = /usr/lib/tex/ps
+CONFIGDIR = /local/lib/tex/dvips
+
+# the default path to search for config files
+# CONFIGPATH = .:$(CONFIGDIR)
+CONFIGPATH = .:$(CONFIGDIR):/usr/local/lib/tex/dvips
+
+# the name of your config file
+# CONFIGFILE = config.ps
+CONFIGFILE = config.ps
+
+# where the header PS files go
+# HEADERDIR = /usr/lib/tex/ps
+HEADERDIR = /local/lib/tex/dvips
+
+# the default path to search for header files
+# HEADERPATH = .:$(HEADERDIR)
+HEADERPATH = .:$(HEADERDIR):/usr/local/lib/tex/dvips
+
+# where epsf.tex and rotate.tex go (usually the TeX macros directory)
+# TEXMACRODIR = /usr/lib/tex/inputs
+TEXMACRODIR = /local/lib/tex/inputs
+
+# the default path to search for epsf and psfiles
+# (usually the same as TeX's defaultinputpath)
+# FIGPATH = .:..:/usr/lib/tex/inputs
+FIGPATH = .:..:/local/lib/tex/inputs:/usr/local/lib/tex/inputs
+
+# change -DDEFRES=300 or whatever is required
+# if the default resolution is not 300 dpi,
+# add -DDEBUG to turn on debugging capability
+# add -DTPIC for tpic support
+# add -DFONTLIB to search font libraries
+# add -DSEARCH_SUBDIRECTORIES to search the FONTSUBDIRPATH.
+# add -DHAVE_GETCWD if you have getcwd (relevant only for subdir searching)
+# add -DIBM6000 for compiling on IBM 6000 systems
+# (for VM/CMS, see the MKDVIPS.EXEC file in the vmcms subdirectory).
+DEFS= -DTPIC -DDEBUG -DDEFRES=300 -DIBM6000
+
+# either use
+# OPT = -g -Wall
+# or
+#OPT = -O -s -Wall
+OPT = -O
+
+# libraries to include (-lm -lc on most systems)
+#FLIBS= -lNeXT_s -lsys_s
+FLIBS= -lm
+
+# If you are compiling dvips for suid or other privileges, you will
+# definitely want to define the following symbol; else don't.
+# SECURE = -DSECURE
+
+# If you want EMTEX specials, define the following.
+#EMTEX = -DEMTEX
+
+# for SYSV (and friends which use <string.h> instead of <strings.h>)
+# define the c-compiler flag
+# add -D_POSIX_SOURCE if you are POSIX (also define SYSV) (only relevant
+# for subdir searching)
+# SYS = -DSYSV
+
+# Define this to be whatever you use for installation. If you don't have
+# install, use a script that invokes copy and chmod's the files
+# appropriately.
+# INSTALL = install
+INSTALL = install
+
+# where the installed binary goes
+# BINDIR = /usr/bin
+BINDIR =
+
+PATHS = -DTFMPATH=\"$(TFMPATH)\" \
+ -DPKPATH=\"$(PKPATH)\" \
+ -DVFPATH=\"$(VFPATH)\" \
+ -DHEADERPATH=\"$(HEADERPATH)\" \
+ -DCONFIGPATH=\"$(CONFIGPATH)\" \
+ -DCONFIGFILE=\"$(CONFIGFILE)\" \
+ -DFONTSUBDIRPATH=\"$(FONTSUBDIRPATH)\" \
+ -DFIGPATH=\"$(FIGPATH)\"
+
+CFLAGS = $(DEFS) $(PATHS) $(OPT) $(SYS) $(SECURE) $(EMTEX) $(DEFPFMT)
+
+SRC = dospecial.c dviinput.c fontdef.c loadfont.c dvips.c tfmload.c \
+ download.c prescan.c scanpage.c skippage.c output.c scalewidth.c \
+ dosection.c dopage.c resident.c search.c unpack.c drawPS.c \
+ header.c makefont.c repack.c virtualfont.c dpicheck.c finclude.c \
+ pprescan.c papersiz.c flib.c color.c bbox.c emspecial.c
+
+OBJ = dospecial.o dviinput.o fontdef.o loadfont.o dvips.o tfmload.o \
+ download.o prescan.o scanpage.o skippage.o output.o scalewidth.o \
+ dosection.o dopage.o resident.o search.o unpack.o drawPS.o \
+ header.o makefont.o repack.o virtualfont.o dpicheck.o finclude.o \
+ pprescan.o papersiz.o flib.o color.o bbox.o emspecial.o
+
+all : afm2tfm dvips tex.pro texps.pro texc.pro special.pro finclude.pro \
+ color.pro
+
+dvips : $(OBJ)
+ $(CC) $(CFLAGS) $(OBJ) $(LIBS) $(FLIBS) -o dvips
+
+afm2tfm: afm2tfm.c
+ $(CC) $(CFLAGS) -o afm2tfm afm2tfm.c $(LIBS) $(FLIBS)
+
+$(OBJ) : dvips.h debug.h Makefile
+flib.o resident.o dvips.o loadfont.o tfmload.o : paths.h
+
+squeeze : squeeze.o
+ $(CC) $(CFLAGS) squeeze.o -o squeeze $(LIBS) $(FLIBS)
+
+tex.pro : tex.lpro squeeze
+ ./squeeze <tex.lpro > tex.pro
+
+texc.pro: texc.lpro squeeze
+ ./squeeze <texc.lpro >texc.pro
+
+texc.lpro: texc.script tex.lpro
+ ./texc.script tex.lpro texc.lpro
+
+texps.pro : texps.lpro squeeze
+ ./squeeze <texps.lpro >texps.pro
+
+special.pro : special.lpro squeeze
+ ./squeeze <special.lpro >special.pro
+
+finclude.pro : finclude.lpro squeeze
+ ./squeeze <finclude.lpro >finclude.pro
+
+color.pro : color.lpro squeeze
+ ./squeeze <color.lpro >color.pro
+
+install : afm2tfm dvips MakeTeXPK \
+ tex.pro texc.pro texps.pro special.pro finclude.pro color.pro \
+ config.ps psfonts.map epsf.tex epsf.sty rotate.tex rotate.sty \
+ colordvi.tex colordvi.sty blackdvi.tex blackdvi.sty
+ - mkdir $(BINDIR)
+ - mkdir $(HEADERDIR)
+ - mkdir $(CONFIGDIR)
+ - mkdir $(MANDIR)
+ - mkdir $(TEXMACRODIR)
+ $(INSTALL) -c -m 755 afm2tfm $(BINDIR)/afm2tfm
+ $(INSTALL) -c -m 755 dvips $(BINDIR)/dvips
+ $(INSTALL) -c -m 755 MakeTeXPK $(BINDIR)/MakeTeXPK
+ $(INSTALL) -c -m 644 tex.pro $(HEADERDIR)
+ $(INSTALL) -c -m 644 texc.pro $(HEADERDIR)
+ $(INSTALL) -c -m 644 texps.pro $(HEADERDIR)
+ $(INSTALL) -c -m 644 special.pro $(HEADERDIR)
+ $(INSTALL) -c -m 644 finclude.pro $(HEADERDIR)
+ $(INSTALL) -c -m 644 color.pro $(HEADERDIR)
+ $(INSTALL) -c -m 644 config.ps $(CONFIGDIR)/$(CONFIGFILE)
+ $(INSTALL) -c -m 644 psfonts.map $(CONFIGDIR)
+ $(INSTALL) -c -m 644 epsf.tex $(TEXMACRODIR)
+ $(INSTALL) -c -m 644 epsf.sty $(TEXMACRODIR)
+ $(INSTALL) -c -m 644 rotate.tex $(TEXMACRODIR)
+ $(INSTALL) -c -m 644 rotate.sty $(TEXMACRODIR)
+ $(INSTALL) -c -m 644 colordvi.sty $(TEXMACRODIR)
+ $(INSTALL) -c -m 644 colordvi.tex $(TEXMACRODIR)
+ $(INSTALL) -c -m 644 blackdvi.sty $(TEXMACRODIR)
+ $(INSTALL) -c -m 644 blackdvi.tex $(TEXMACRODIR)
+ $(INSTALL) -c -m 644 dvips.tex $(TEXMACRODIR)
+ $(INSTALL) -c -m 644 dvipsmac.tex $(TEXMACRODIR)
+
+veryclean :
+ rm -f *.o dvips squeeze afm2tfm texc.lpro *.pro *~ *.log *.dvi
+
+clean :
+ rm -f *.o squeeze afm2tfm *~ *.log *.dvi
+
+lint :
+ lint $(DEFS) $(PATHS) $(SRC)
+ lint $(DEFS) squeeze.c
+ lint $(DEFS) afm2tfm.c
diff --git a/Build/source/texk/dvipsk/vmcms/README.VMCMS b/Build/source/texk/dvipsk/vmcms/README.VMCMS
new file mode 100644
index 00000000000..3312ddcc7a4
--- /dev/null
+++ b/Build/source/texk/dvipsk/vmcms/README.VMCMS
@@ -0,0 +1,168 @@
+README.VMCMS: Remarks and history of the VM/CMS port of DVIPS.
+
+Appropos DVIPS version 5.495, 5.55.
+
+Written by Jim Hafner (hafner@almaden.ibm.com).
+Last revised 10 Nov. 1992.
+
+Version 5.55 checked and slightly modified on 2 May 1994.
+
+NOTE: This port was not done by Tom Rokicki and he has no responsibility
+for it. You can direct questions to the name and address above.
+
+The current set of changes and enhancements to the VM/CMS port over
+the previous release should be fairly complete. Lots of things have
+changed and been enhanced.
+
+Here are some of the features of the port and VM/CMS package:
+
+1) We have completely revised the MKDVIPS EXEC so that it behaves
+ a bit more like the Unix 'make' facility. In particular, it
+ now allows for command line options to do any or all of the
+ package building for the DVIPS program, the AFM2TFM program,
+ the HEADERS files and to clean up the TEXT and LOAD MAP files
+ after completion. This has only been tested with C/370, not,
+ in particular with Waterloo C.
+
+ Furthermore, it also does a rudimentary time stamp check of
+ existing TEXT files against that for the corresponding C file
+ and ALL H files so that the compiler will not be called unless
+ it seems necessary.
+
+ Note that it checks ALL H files in all ACCESSED disks. This can
+ be fixed by simply editing the MKDVIPS EXEC. See the file itself
+ for more detailed information.
+
+2) We have completed the port of AFM2TFM. If should now produce
+ identical files on VM/CMS as on Unix (it certainly does as far as
+ we could test it). There is a small front-end EXEC included that
+ sets up the necessary run-time environment. The current version is
+ extensively revised from the original port due to Alessio Guglielmi
+ and Marco Prevedelli of Pisa. The syntax for the EXEC is the same
+ as described in the DVIPS manual and the manpage is available as
+ AFM2TFM.DOC.
+
+3) The DVIPS front-end EXEC has been extensively remodeled. It now
+ supports automatic font generation at the EXEC level (and the
+ MODULE level with the appropriate command line options).
+ More on this feature later.
+
+ The EXEC assumes that the first command line argument is the
+ dvifilename. The online documentation indicates this as well,
+ though DVIPS.DOC does not. This is NOT required by the MODULE,
+ just the EXEC, and only to make parsing the arguments easier.
+
+ The current version of this exec handles the LOADLIB and TXTLIB
+ save/reset/restore processes much better, so users with very
+ large libraries accessed will not have them lost along the way.
+
+ This version does not access any font disks since that is surely
+ site dependent. So, it assumes that the required fonts are
+ available. It also assumes that MF is somewhere to be found.
+
+ Local installers might want to modify this exec in the following
+ way. Parse the command line options for a -P PRINTER specification.
+ If found, then either use PRINTER to determine which font disk
+ to access OR read the corresponding CONFIG.PRINTER file and use
+ the 'M' option to get the Metafont mode for that PRINTER. Then
+ use that mfmode to access the right font disk.
+
+4) AUTOMATIC FONT GENERATION:
+ This can be handled in two ways, at the installers or users
+ discretion.
+
+ First, we have included a MakeTeXP EXEC which we think is pretty
+ generic and should need little modifications. (See below for
+ a few additional comments.)
+
+ This MakeTeXP EXEC can be called in two different ways. The default
+ (based on DVIPS EXEC) is to have DVIPS run completely and create
+ a MISSFONT LOG file for any missing fonts. If there are any found,
+ then the DVIPS EXEC prompts the user, asking to attempt to generate
+ the fonts. If requested, then MakeTeXP EXEC is called by processing
+ each line of MISSFONT LOG. If this process completes, then the
+ user is again prompted. This time, the user can specify an exit
+ from the EXEC or to RE-invoke DVIPS (the module not the exec)
+ on the file. In this way, all the font generation can be handled
+ entirely OUTSIDE of the module, using no special system calls
+ (which have been known to cause memory clashes).
+
+ To make sure that DVIPS doesn't try to make the system call,
+ a '-M' flag is prepended to the options list. Consequently,
+ if the installer is sure that system calls will be safe, then
+ this option can be removed. Conversely, if a user wants to
+ risk it, putting '-M0' in the command line options will override
+ this default.
+
+ We mention explicitly that, contrary to the earlier VM/CMS port,
+ we have NOT disabled the system call within DVIPS itself.
+
+5) MakeTeXP EXEC: This exec is similar to the Unix version in that
+ if no Metafont mode is specified on the command line, then it
+ tries to 'guess' a mode from the base dpi. This part of the
+ exec is very site dependent and will need to be modified for your
+ location.
+
+ You might want to modify this exec to read some configuration
+ file like CONFIG.MODES or DVIPS.MODES and use this to set the
+ mfmode from the base dpi.
+
+ Furthermore, we have written this to not invoke MF EXEC but to
+ call MF MODULE directly. We hope that this will be more generic
+ since we structure the parameters as MF MODULE wants them and not
+ as some fancy execs might.
+
+ We have set up a special default for passing arguments to the
+ module. Namely,
+ &plain modes; \mode=mfmode; ...
+ where 'modes' is the name of your local .MF file that contains
+ the mode definitions. Because of this, each output file of MF
+ will have a filename of MODES. Later in the exec, these output
+ files are renamed with the font input filename. If you have a
+ mode def file of a different name, you will need to change the
+ defining variable (localModeFile) accordingly. If you don't have
+ such a file, then you will probably have to modify this EXEC
+ somewhat to compensate.
+
+ All (we hope) site dependent parts of the code are tagged boldly
+ with 'SITE DEPENDENCIES'. Look at these locations for places that
+ might require modifications.
+
+5) As before, the .dvipsrc file referred to in the manuals has the new
+ name DVIPS.PROFILE on VM/CMS.
+
+6) Online documentation is available by invoking DVIPS with no
+ arguments or filename. You can also browse the file dvips.doc for
+ some additional comments (this was converted from the Unix manpage
+ via, on Unix, "nroff -man dvips.1 | col -b > vmcms/dvips.doc"
+ and so some comments may not be appropriate for VM/CMS, e.g.,
+ the order of the filename in the command line arguments.
+
+8) Since there are no pipes on VM/CMS, the option -f is meaningless.
+ Also, the output is always written to a file, with the same filename
+ as the dvi file and filetype "PS". You can always override this with
+ the -o option.
+
+9) Since there are no PATHs in VM/CMS, the H, P, S and T configuration
+ file options are meaningless. The DVIPS.EXEC file should make sure
+ that all the necessary disks are linked (we have all .tfm, .pro,
+ config. and other files on our main TeX disk, with the EXECs and
+ MODULES -- only our fonts (the pk files) are on separate disks.)
+
+
+To compile the programs, run the program MKDVIPS.EXEC program. Be
+sure you edit this file first to make sure that your C/370 programs
+disks and libraries are all correctly link. See the comments at the
+beginning of that file for more information. When complete, all the
+necessary modules and files should be built, on your primary
+write-accessed disk. You may need to move them to their destination
+manually.
+
+
+THANKS:
+Some of this port was provided courtesy of Alessio Guglielmi
+(guglielm@di.unipi.it) and Marco Prevedelli
+(prevedelli@ipisnsva.bitnet) with help from via Michel Goossens
+(goossens@cernvm.bitnet) and Ronald Kappert (R.Kappert@uci.kun.nl).
+Acknowledgements to Shashi Sathaye for fix to 5.55 and other
+helpful hints for the original port of 5.495.
diff --git a/Build/source/texk/dvipsk/vmcms/afm2tfm.doc b/Build/source/texk/dvipsk/vmcms/afm2tfm.doc
new file mode 100644
index 00000000000..e1df6a38311
--- /dev/null
+++ b/Build/source/texk/dvipsk/vmcms/afm2tfm.doc
@@ -0,0 +1,323 @@
+
+
+
+ AFM2TFM(1) (9 August 1990) AFM2TFM(1)
+
+
+
+ NAME
+ afm2tfm - convert Adobe font metrics to TeX font metrics
+
+ SYNOPSIS
+ afm2tfm foo1[.afm] [ -e ratio ] [ -s slant ] [ -t foo2[.tfm]
+ ] [ -v bar[.vpl] | -V bar[.vpl] ] [ foo3[.tfm] ]
+
+ DESCRIPTION
+ PostScript fonts are (or should be) accompanied by font metric
+ files such as Times-Roman.afm, which describes the
+ characteristics of the font called Times-Roman. To use such
+ fonts with TeX, we need TFM files that contain similar
+ information. The command
+
+ afm2tfm Times-Roman.afm Times-Roman.tfm
+
+ (which can be reduced to simply
+
+ afm2tfm Times-Roman
+
+ by taking default shortcuts) will create the necessary file
+ Times-Roman.tfm, which can then be moved to the directory where
+ TeX normally looks for font metric information. The PostScript
+ conversion program dvips will also treat Times-Roman as a
+ resident PostScript font if you include the line
+
+ Times-Roman
+
+ in the file psfonts.map.
+
+ The file names used in this manual page are not consistent with
+ the new font naming scheme implemented by Karl Berry; please
+ refer to the main dvips.tex documentation for the correct names
+ to use.
+
+ PostScript fonts have a different encoding scheme from that of
+ plain TeX. Although both schemes are based on ASCII, special
+ characters such as ligatures and accents are handled quite
+ differently. Therefore we obtain best results by using a
+ "virtual font" interface, which makes TeX act as if the
+ PostScript font had a standard TeX encoding. Such a virtual
+ font can be obtained, for example, by the command
+
+ afm2tfm Times-Roman -v times
+
+ or, more fully, by:
+
+ afm2tfm Times-Roman.afm -v times.vpl Times-Roman.tfm
+
+ This produces two outputs, namely the "virtual property list"
+ file times.vpl and the TeX font metric file Times-Roman.tfm.
+ The latter file describes an "actual font" on
+
+
+
+ Page 1 (printed 2/26/92)
+
+
+
+
+
+
+ AFM2TFM(1) (9 August 1990) AFM2TFM(1)
+
+
+
+ which the virtual font is based.
+
+ If you wish to specify a different TFM file name than the
+ default, you can use the -t option; this will override any
+ default TFM file name that would be calculated from the input
+ file name.
+
+ To use the font in TeX, you should first run
+
+ vptovf times.vpl times.vf times.tfm
+
+ then install the file times.vf in the directory for virtual
+ fonts and install times.tfm in the directory for TeX font
+ metrics. (You can also make more complex virtual fonts by
+ editing times.vpl first.) Once this has been done, you're all
+ set. You can use code like this in TeX henceforth:
+
+ \font\myfont=times at 10pt
+ \myfont
+ Hello, I am being typeset in Times-Roman.
+
+
+ Note that there are two fonts, one actual (`Times-Roman', which
+ is analogous to a raw piece of hardware) and one virtual
+ (`times', which has typesetting knowhow added). You could also
+ say `\font\TR=Times-Roman at 10pt' and typeset directly with
+ that, but then you would have no ligatures or kerning, and you
+ would have to use Adobe character positions for special letters
+ like \ae. The virtual font called times not only has ligatures
+ and kerning, and most of the standard accent conventions of
+ TeX, it also has a few additional features not present in the
+ Computer Modern fonts. For example, it includes all the Adobe
+ characters (such as the Polish ogonek and the French
+ guillemots). It also allows you to type 58 accented letters
+ from `Aacute' to `zcaron' as if they were ligatures --- namely
+ as `acute' followed by `A', etc., where you can get `acute'
+ (\char 19) by defining a suitable control sequence. (The 58
+ constructed characters are found in the AFM file, and
+ constructed as specified by Adobe; you may wish to adjust the
+ spacing and/or add additional accent combinations by editing
+ the VPL file.) The only things you lose from ordinary TeX text
+ fonts are the dotless j (which can be hacked into the VPL file
+ with literal PostScript specials if you have the patience) and
+ uppercase Greek letters (which just don't exist unless you buy
+ them separately).
+
+ These fonts can be scaled to any size. Go wild! Note however,
+ that using PostScript fonts does use up the printer's virtual
+ memory and it does take time. You may find downloading the
+ Computer Modern fonts to be faster than using the built-in
+ PostScript fonts!
+
+
+
+ Page 2 (printed 2/26/92)
+
+
+
+
+
+
+ AFM2TFM(1) (9 August 1990) AFM2TFM(1)
+
+
+
+ OPTIONS
+ Special effects are also obtainable, with commands such as
+
+ afm2tfm Times-Roman -s .167 -v timessl Times-Slanted
+
+ which create timessl.vpl and Times-Slanted.tfm. To use this,
+ proceed as above but put the line
+
+ Times-Slanted "/Times-Roman .167 SlantFont"
+
+ into psfonts.map. Then Times-Slanted will act as if it were a
+ resident font, although it is actually constructed from
+ Times-Roman by PostScript hackery. (It's an oblique version of
+ Times-Roman, obtained by slanting everything 1/6 to the right.)
+ Similarly, you can get an extended font by
+
+ afm2tfm Times-Extended -e 1.2 -v timesx Times-Extended
+
+ and by recording the pseudo-resident font
+
+ Times-Extended "/Times-Roman 1.2 ExtendFont"
+
+ The command line switches are:
+
+ -e ratio
+ All characters are stretched horizontally by the stated
+ ratio; if it is less than 1.0, you get a condensed font.
+
+ -s slant
+ All characters are slanted to the right by the stated
+ slant; if it is negative, the letters slope to the left
+ (or they might be upright if you start with an italic
+ font).
+
+ -v file[.vpl]
+ Generate a virtual property list (VPL) file as well as a
+ TFM file.
+
+ -V file[.vpl]
+ Same as -v, but the virtual font generated is a caps
+ and-small-caps font obtained by scaling uppercase letters
+ by .8 to typeset lowercase. This font handles accented
+ letters and retains proper kerning.
+
+
+ NON-RESIDENT POSTSCRIPT FONTS
+ If you want to use a non-printer-resident PostScript font for
+ which you have a .pfb file (an Adobe Type 1 font program), you
+ can make it act like a resident font by putting a `<' sign and
+ the name of the .pfb file just after the font name in the
+ psfonts.map file entry. For example,
+
+
+
+ Page 3 (printed 2/26/92)
+
+
+
+
+
+
+ AFM2TFM(1) (9 August 1990) AFM2TFM(1)
+
+
+
+ StoneInformal <StoneInformal.pfb
+
+ will cause dvips to include StoneInformal.pfb in your document
+ as if it were a header file, whenever the pseudo-resident font
+ StoneInformal is used in a document. Similarly, you can
+ generate transformed fonts and include lines like
+
+ StoneInformal-Condensed <StoneInformal.pfb "/StoneInformal .8 ExtendF
+
+ in psfonts.map, in which case StoneInformal.pfb will be loaded
+ whenever StoneInformal-Condensed is used. (Each header file is
+ loaded at most once per document. The .pfb files should be
+ installed in the config directory with the other header files.)
+
+
+ FONT ALIASES
+ Some systems don't handle files with long names well---MSDOS
+ and TWENEX are two notable examples. For this reason, dvips
+ will accept an alias for such fonts. Such an alias shoul be
+ the first word on the psfonts.map line. For instance, if we
+ wanted the name ptmr to be used for Times-Roman since our
+ computer can't handle long names, we would use the following
+ line in our psfonts.map file:
+
+ ptmr Times-Roman
+
+ The TFM file must have the name ptmr.tfm.
+
+ The parsing of the psfonts.map file should be explained to
+ eliminate all confusion. Each line is separated into words,
+ where words are separated by spaces or tabs. If a word begins
+ with a double quote, however, it extends until the next double
+ quote or the end of the line. If a word starts with a less
+ than character, it is treated as a font head file (or
+ downloaded PostScript font). If a word starts with a double
+ quote, it is special instructions on how to generate that font.
+ Otherwise it is a name. The first such name is always the name
+ TeX uses for the font and is also the name of the TFM file. If
+ there is another name word, that name is used as the PostScript
+ name; if there is only one name word, it is used for both the
+ TeX name and the PostScript name.
+
+ Note that the aliases also register the full PostScript name,
+ so the single line
+
+ ptmr Times-Roman
+
+ would allow dvips to `find' the ptmr font as well as the
+ Times-Roman font.
+
+
+
+ Page 4 (printed 2/26/92)
+
+
+
+
+
+
+ AFM2TFM(1) (9 August 1990) AFM2TFM(1)
+
+
+
+ Incidentally, many font files (e.g., in the Adobe Type Library)
+ include more characters internally than you can access directly
+ without making a few changes. These characters typically have
+ code -1 in the afm file and no corresponding "constructed
+ character" (CC) specification. For example, in Adobe Garamond
+ there are Eth and eth, Thorn and thorn, plus things like
+ copyright and onehalf, plus 58 accented letters Aacute thru
+ zcaron (with accents over caps much better looking than you can
+ get from constructed accents). To use these characters, give
+ them character codes between 0 and 255 in the afm file, and
+ build the corresponding EncodingVector (instead of
+ StandardEncoding) in the pfb file. Then afm2tfm will generate
+ a vpl file that includes accented characters as ligatures, as
+ explained above; for example, `Aacute' will be accessible as
+ `acute' followed by `A' (as well as by its character code in
+ the virtual font).
+
+ FILES
+ psfonts.map in the config directory used by dvips (update
+ this). ../afm/Makefile in the dvips sources (look at this for
+ examples).
+
+ SEE ALSO
+ dvips(1), tex(1), vptovf(1)
+
+ BUGS
+ An option to add letterspacing to the virtual font was rejected
+ by Knuth because it would make the fi and f ligatures break the
+ normal rhythmic pattern.
+
+ AUTHORS
+ Tomas Rokicki <rokicki@neon.stanford.edu> and Don Knuth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Page 5 (printed 2/26/92)
+
+
+
diff --git a/Build/source/texk/dvipsk/vmcms/dvips.doc b/Build/source/texk/dvipsk/vmcms/dvips.doc
new file mode 100644
index 00000000000..5e7ea40a20e
--- /dev/null
+++ b/Build/source/texk/dvipsk/vmcms/dvips.doc
@@ -0,0 +1,65 @@
+
+
+
+ DVIPS(1) TeXware (13 February 1992) DVIPS(1)
+
+
+
+ NAME
+ dvips - convert a TeX DVI file to PostScript
+
+ SYNOPSIS
+ dvips [ options ] file[.dvi]
+
+ DESCRIPTION
+ The program dvips converts a DVI file file[.dvi] produced by TeX
+ (or by some other processor like GFtoDVI) and converts it to
+ PostScript, normally sending the result directly to the
+ laserprinter. The DVI file may be specified without the .dvi
+ extension. Fonts used may either be resident in the printer or
+ defined as bitmaps in PK files, or a `virtual' combination of
+ both. If the MakeTeXPK program is installed, dvips will
+ automatically invoke METAFONT to generate fonts that don't
+ already exist.
+
+ For more information, see the manual dvips.tex is in the
+ TEXINPUTS directory. The manual can be printed with the
+ following commands: tex dvips dvips dvips -o dvips.ps lpr
+ dvips.ps
+
+ OPTIONS
+ A summary of command line options can be obtained by running
+ dvips without a filename. For more details refer to dvips.tex.
+
+ SEE ALSO
+ mf(1), afm2tfm(1), tex(1), latex(1), lpr(1)
+
+ NOTES
+ PostScript is a registered trademark of Adobe Systems
+ Incorporated.
+
+ AUTHOR
+ Tomas Rokicki <rokicki@cs.stanford.edu>; extended to virtual
+ fonts by Don Knuth.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Page 1 (printed 2/24/92)
+
+
+
diff --git a/Build/source/texk/dvipsk/vmcms/dvipscms.h b/Build/source/texk/dvipsk/vmcms/dvipscms.h
new file mode 100644
index 00000000000..d17d959027e
--- /dev/null
+++ b/Build/source/texk/dvipsk/vmcms/dvipscms.h
@@ -0,0 +1,153 @@
+/*
+ * These are changes needed for the VM/CMS version of dvips as of
+ * May 21, 1991. Revised 12/1/92.
+ * This was written by J. Hafner, E. Blanz and M. Flickner of IBM Research,
+ * Almaden Research Center. Contact hafner@almaden.ibm.com.
+ * The changes to the rest of the code can be found by searching for
+ * "VMCMS".
+ *
+ * This code can be included in dvips, subject to the same restrictions as
+ * in the copyright notice.
+ */
+extern char *malloc();
+/*
+ * Added ascii to ebcdic conversion table for VMCMS.
+ * Only for the printable characters. This is used by DVIPS.
+*/
+char ascii2ebcdic[256] = {
+ 0, 1, 2, 3, 53, 45, 46, 47,
+ 22, 5, 37, 11, 12, 64, 14, 15,
+ 16, 17, 18, 19, 60, 61, 50, 38,
+ 24, 25, 63, 39,111,111,111,111,
+ 64, 90,127,123, 91,108, 80,125,
+ 77, 93, 92, 78,107, 96, 75, 97,
+ 240,241,242,243,244,245,246,247,
+ 248,249,122, 94, 76,126,110,111,
+ 124,193,194,195,196,197,198,199,
+ 200,201,209,210,211,212,213,214,
+ 215,216,217,226,227,228,229,230,
+ 231,232,233,173,224,189, 95,109,
+ 121,129,130,131,132,133,134,135,
+ 136,137,145,146,147,148,149,150,
+ 151,152,153,162,163,164,165,166,
+ 167,168,169,192, 79,208,161, 7,
+ 128,129,130,131,132,133,134,135,
+ 136,137,138,139,140,141,142,143,
+ 144,145,146,147,148,149,150,151,
+ 152,153,154,155,156,157,158,159,
+ 160,161,162,163,164,165,166,167,
+ 168,169,170,171,172,173,174,175,
+ 176,177,178,179,180,181,182,183,
+ 184,185,186,187,188,189,190,191,
+ 192,193,194,195,196,197,198,199,
+ 200,201,202,203,204,205,206,207,
+ 208,209,210,211,212,213,214,215,
+ 216,217,218,219,220,221,222,223,
+ 224,225,226,227,228,229,230,231,
+ 232,233,234,235,236,237,238,239,
+ 240,241,242,243,244,245,246,247,
+ 248,249,250,251,252,253,254,255
+};
+/*
+ * Added ebcdic to ascii conversion table for VMCMS.
+ * Only for the printable characters. This inverts the
+ * table above and is used by AFM2TFM.
+*/
+char ebcdic2ascii[256] = {
+ 0, 1, 2, 3, 4, 9, 6,127,
+ 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 8, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 10, 23, 27,
+ 40, 41, 42, 43, 44, 5, 6, 7,
+ 48, 49, 22, 51, 52, 4, 54, 55,
+ 56, 57, 58, 59, 20, 21, 62, 26,
+ 32, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 46, 60, 40, 43,124,
+ 38, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 33, 36, 42, 41, 59, 94,
+ 45, 47, 98, 99,100,101,102,103,
+ 104,105,124, 44, 37, 95, 62, 63,
+ 112,113,114,115,116,117,118,119,
+ 120, 96, 58, 35, 64, 39, 61, 34,
+ 128, 97, 98, 99,100,101,102,103,
+ 104,105,138,123,140,141,142,143,
+ 144,106,107,108,109,110,111,112,
+ 113,114,154,125,156,157,158,159,
+ 160,161,115,116,117,118,119,120,
+ 121,122,170,171,172, 91,174,175,
+ 176,177,178,179,180,181,182,183,
+ 184,185,186,187,188, 93,190,191,
+ 192, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73,202,203,204,205,206,207,
+ 208, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82,218,219,220,221,222,223,
+ 92,225, 83, 84, 85, 86, 87, 88,
+ 89, 90,234,235,236,237,238,239,
+ 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57,250,251,252,253,254,255
+ };
+/*
+ * This redefines fopen for VMCMS, truncating long filenames for
+ * portability of TeX source.
+ */
+#ifdef fopen
+#undef fopen
+#endif
+FILE *cmsfopen(filename, mode)
+char *filename, *mode ;
+{
+ char cmsfile[21] ;
+ char *save_file;
+ char *ptr;
+ void exit() ;
+
+ if (!(save_file =
+ (char *)malloc(strlen(filename) + 1, sizeof(char)))) {
+ fprintf (stderr, "sorry---out of memory\n");
+ exit(10);
+ }
+
+ strcpy(save_file, filename);
+
+ cmsfile[0] = '\0' ;
+
+ ptr = strtok(save_file, ". ") ;
+ strncat(cmsfile, ptr, 8) ;
+
+ strcat(cmsfile, ".");
+
+ if (!(ptr = strtok(NULL, ". "))) {
+/* Remove this, not much help anyway since most filenames are built
+ internally. */
+/*
+ fprintf(stderr, "\n<%s> is not a legitimate VM/CMS file name\n",
+ filename);
+ fprintf(stderr, "...we'll try to continue...\n");
+*/
+ return(NULL);
+ }
+
+ strncat(cmsfile, ptr, 8);
+
+ if (ptr = strtok(NULL, ". ")) {
+ strcat(cmsfile, ".");
+ strncat(cmsfile, ptr, 2);
+ }
+
+ free(save_file);
+
+ return(fopen(cmsfile, mode));
+
+}
+
+
+/*
+ * access.c for VMCMS
+ */
+int access (path, amode)
+char *path;
+int amode;
+{
+ return(1);
+}
diff --git a/Build/source/texk/dvipsk/vms/MAKETEXPK.COM b/Build/source/texk/dvipsk/vms/MAKETEXPK.COM
new file mode 100644
index 00000000000..594d49092d7
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/MAKETEXPK.COM
@@ -0,0 +1,127 @@
+!!/bin/sh
+!
+! This script file makes a new TeX PK font, because one wasn't
+! found. Parameters are:
+!
+! name dpi bdpi magnification [mode]
+!
+! `name' is the name of the font, such as `cmr10'. `dpi' is
+! the resolution the font is needed at. `bdpi' is the base
+! resolution, useful for figuring out the mode to make the font
+! in. `magnification' is a string to pass to MF as the
+! magnification. `mode', if supplied, is the mode to use.
+!
+! Note that this file must execute Metafont, and then gftopk,
+! and place the result in the correct location for the PostScript
+! driver to find it subsequently. If this doesn't work, it will
+! be evident because MF will be invoked over and over again.
+!
+! Of course, it needs to be set up for your site.
+!
+!
+$ set mess/nofa/nose/note/noid
+$ newtex
+$ set mess/se/fa/id/te
+$ NAME = f$sear("mf_inputs:"+p1+".mf")
+$ onlyname=f$parse(name,,,"name")
+$ name= f$parse(name,,,"device")+f$parse(name,,,"directory")+f$parse(name,,, -
+ "name")
+$ DPI = f$integer(P2)
+$ BDPI = f$integer(P3)
+$ MAG = f$edit(P4,"LOWERCASE")
+$ MODE = P5
+$ if MODE .EQS. "" then
+$ if BDPI .EQ. 300
+$ then
+$ MODE := "imagen"
+$ goto GotMode
+$ endif
+$ if BDPI .EQ. 400
+$ then
+$ MODE := "nexthi"
+$ goto GotMode
+$ endif
+$ if BDPI .EQ. 100
+$ then
+$ MODE := "nextscreen"
+$ goto GotMode
+$ endif
+$ if BDPI .EQ. 635
+$ then
+$ MODE := "linolo"
+$ goto GotMode
+$ endif
+$ if BDPI .EQ. 1270
+$ then
+$ MODE := "linohi"
+$ goto GotMode
+$ endif
+$ if BDPI .EQ. 2540
+$ then
+$ MODE := "linosuper"
+$ goto GotMode
+$ endif
+$ write sys$output "I don't know the mode for ",BDPI
+$ write sys$output "Have your system admin update MakeTeXPK"
+$ exit 1
+$ GotMode:
+$
+$ GFNAME = f$fao("!AS.!ASgf",onlyNAME,f$string(DPI))
+$ PKNAME = f$fao("!AS.!ASPK",onlyNAME,f$string(DPI))
+$
+$ pkfilename = f$fao("tex_pk:!AS",PKNAME)
+$ pkfile = f$search (pkfilename)
+$ if pkfile .EQS. ""
+$ then
+$! Clean up on normal or abnormal exit
+$ on control_y then goto ControlY
+$ on error then goto ControlY
+$ on severe_error then goto ControlY
+$
+$ OLDDIR = f$environment("DEFAULT")
+$ set def sys$login
+$ command = f$fao -
+ ("mf ""\mode:=!AS; mag:=!AS; scrollmode ; input !AS""", -
+ MODE,MAG,NAME)
+$ write sys$output "Creating font file for ",onlyname
+$ write sys$output "Please wait about 2 minutes"
+$ write sys$output ""
+$ set noon
+$ command
+$ set on
+$
+$ gffile=f$sear(onlyname+"."+f$str(dpi)+"gf")
+$ if gffile .EQS. ""
+$ then
+$ write sys$output "Metafont failed for some reason on ",gfname
+$ goto ControlY
+$ endif
+$
+$ gftopk 'gfname'
+$ delete/noconf/nolog 'gfname';
+$ delete/noconf/nolog 'onlyname'.lis;
+$
+$ if f$getsyi("nodename").eqs."VAXSNS"
+$ then
+$ on error then goto goodexit
+$ on severe_error then goto goodexit
+$ send/file/vms 'pkname' newtex
+$! write sys$output "------- ",pkname," has been sent to NEWTEX"
+$ send/file/vms 'onlyname'.tfm newtex
+$! write sys$output "------- ",onlyname,".TFM has been sent to NEWTEX"
+$ endif
+$
+$ goto GoodExit
+$ else
+$ write sys$output "tex_pk:",PKNAME," already exists!"
+$ exit
+$ endif
+$
+$
+$ GoodExit:
+$ set default 'olddir
+$ exit
+$
+$ ControlY:
+$ set default 'olddir
+$ exit 1
diff --git a/Build/source/texk/dvipsk/vms/Makefile b/Build/source/texk/dvipsk/vms/Makefile
new file mode 100644
index 00000000000..3bdd15523c7
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/Makefile
@@ -0,0 +1,281 @@
+#
+# Makefile for dvips. Edit this first part of the file.
+#
+# This version is for Vax/VMS running the Todd Aven MAKE program.
+#
+# First, the things that absolutely must be edited for your system.
+# Please, don't forget to edit MakeTeXPK in the same way!
+
+# where TeX is `rooted'. Sometimes /usr/local/lib/tex.
+# TEXDIR = /usr/lib/tex
+TEXDIR = /usr/lib/tex
+
+# another place pk, tfm, and vf files might be found.
+# LOCALDIR = /LocalLibrary/Fonts/TeXFonts
+LOCALDIR = /LocalLibrary/Fonts/TeXFonts
+
+# the default path to search for TFM files
+# (this usually is identical to TeX's defaultfontpath, which omits `.')
+# (private fonts are given an explicit directory, which overrides the path)
+# overridden by the environment variable TEXFONTS
+# TFMPATH = $(LOCALDIR)/tfm:$(TEXDIR)/fonts/tfm
+TFMPATH = ""TEX_FONTS:"" # TEX_FONTS is a searchlist.
+
+# the default path to search for PK files (usually omits `.')
+# Don't forget to add the directory that
+# MakeTeXPK puts the files! (In this case, /LocalLibrary/Fonts...)
+# overridden by the environment variable TEXPKS or TEXPACKED or PKFONTS
+# PKPATH = $(LOCALDIR)/pk:$(TEXDIR)/fonts/pk
+PKPATH = ""VC$3:[PHS595F.FONTS.%d]%f.PK,TEX_DISK:[TEX.FONTS.%d]%f.PK,""
+
+# the default path to search for VF files (usually omits `.')
+# overridden by the environment variable VFFONTS
+# VFPATH = $(LOCALDIR)/vf:$(TEXDIR)/fonts/vf
+VFPATH = ""TEX_VF:"" # TEX_VF may be a searchlist.
+
+# additional directories in which to search for subdirectories to find
+# both tfm and pk files
+FONTSUBDIRPATH = """"
+
+# where the config files go
+# CONFIGDIR = $(TEXDIR)/ps
+CONFIGDIR = TEX$POSTSCRIPT: # The Physics Dept. DVIPS directory
+
+# the default path to search for config files
+# overridden by the environment variable TEXCONFIG
+# CONFIGPATH = .:$(CONFIGDIR)
+CONFIGPATH = "" ,SYS$LOGIN:,$(CONFIGDIR),""
+
+# the name of your config file
+# CONFIGFILE = config.ps
+CONFIGFILE = config.ps
+
+# where the header PS files go
+# HEADERDIR = $(TEXDIR)/ps
+HEADERDIR = TEX$POSTSCRIPT: # The Physics Dept. DVIPS directory
+
+# the default path to search for header files
+# HEADERPATH = .:$(HEADERDIR)
+HEADERPATH = "" ,SYS$LOGIN:,$(HEADERDIR),""
+
+# where epsf.tex and rotate.tex go (usually the TeX macros directory)
+# TEXMACRODIR = $(TEXDIR)/inputs
+TEXMACRODIR = TEX_INPUTS:
+
+# the default path to search for epsf and psfiles
+# (usually the same as TeX's defaultinputpath)
+# FIGPATH = .:..:$(TEXDIR)/inputs
+FIGPATH = "" ,TEX_INPUTS:,"" # Include blank so it looks on default dir.
+
+# the place man pages are located.
+# MANDIR = /usr/man/man1
+MANDIR = TEX_INPUTS:
+
+# change -DDEFRES=300 or whatever is required
+# if the default resolution is not 300 dpi,
+# add -DDEBUG to turn on debugging capability
+# add -DTPIC for tpic support
+# add -DFONTLIB to search font libraries
+# add -DSEARCH_SUBDIRECTORIES to search the FONTSUBDIRPATH.
+# add -DHAVE_GETCWD if you have getcwd (relevant only for subdir searching)
+# add -DIBM6000 for compiling on IBM 6000 systems
+# add -DCREATIONDATE if your system has a working time() and you want dated files
+# (for VM/CMS, see the MKDVIPS.EXEC file in the vmcms subdirectory).
+#
+# If you define FONTLIB, make sure to also give definitions to
+# FLIPATH and FLINAME.
+#
+# DEFS= -DTPIC -DDEBUG -DDEFRES=400
+DEFS= TPIC,DEBUG,DEFRES=300,HAVE_GETCWD,ANSI,CREATIONDATE
+
+# either use
+# OPT = -g -Wall -funsigned-char
+# or
+# OPT = -O -s -Wall -funsigned-char
+OPT =
+
+# libraries to include (-lm -lc on most systems)
+#FLIBS= -lNeXT_s -lsys_s
+FLIBS=,sys$disk:[.vms]vaxcrtl/opt
+# LIBS= # VAXC
+LIBS= ,gnu_cc:[000000]GCCLIB/LIB # GNUC
+
+# If you are compiling dvips for suid or other privileges, you will
+# definitely want to define the following symbol; else don't.
+# SECURE = -DSECURE
+SECURE =
+
+# If you want EMTEX specials, define the following.
+EMTEX =,EMTEX
+
+# for SYSV (and friends which use <string.h> instead of <strings.h>)
+# define the c-compiler flag
+# add -D_POSIX_SOURCE if you are POSIX (also define SYSV) (only relevant
+# for subdir searching)
+# SYS = -DSYSV
+SYS =
+
+# Define this to be whatever you use for installation. If you don't have
+# install, use a script that invokes copy and chmod's the files
+# appropriately.
+# INSTALL = install
+INSTALL = copy
+
+# where the installed binary goes
+# BINDIR = /usr/bin
+BINDIR = TEX$POSTSCRIPT: # The Physics Dept. DVIPS directory
+
+# Define the default paper format (Actually no longer used)
+DEFPFMT =
+
+# PATHS =\ # VAXC
+# ,TFMPATH="$(TFMPATH)",\
+# PKPATH="$(PKPATH)",\
+# VFPATH="$(VFPATH)",\
+# HEADERPATH="$(HEADERPATH)",\
+# CONFIGPATH="$(CONFIGPATH)",\
+# CONFIGFILE="""$(CONFIGFILE)""",\
+# FONTSUBDIRPATH="$(FONTSUBDIRPATH)",\
+# FIGPATH="$(FIGPATH)"
+PATHS = # GNUC
+
+INC = /include="SYS$DISK:[],SYS$SHARE:"
+# CC = CC # VAXC
+CC = GCC/NoCase_Hack # GNUC
+CFLAGS = /NoList $(INC)-
+ /Define=($(DEFS) $(OPT) $(SYS) $(SECURE) $(EMTEX) $(DEFPFMT))
+CFLAGS2 = /NoList $(INC)-
+ /Define=($(DEFS) $(OPT) $(SYS) $(SECURE) $(EMTEX) $(DEFPFMT) $(PATHS))
+LFLAGS = /NoMap
+
+SRC = dospecial.c dviinput.c fontdef.c loadfont.c dvips.c tfmload.c \
+ download.c prescan.c scanpage.c skippage.c output.c scalewidth.c \
+ dosection.c dopage.c resident.c search.c unpack.c drawPS.c \
+ header.c makefont.c repack.c virtualfont.c dpicheck.c finclude.c \
+ pprescan.c papersiz.c flib.c color.c bbox.c emspecial.c
+
+OBJ = dospecial.obj, dviinput.obj, fontdef.obj, loadfont.obj, dvips.obj,\
+ tfmload.obj, download.obj, prescan.obj, scanpage.obj, skippage.obj,\
+ output.obj, scalewidth.obj, dosection.obj, dopage.obj, resident.obj,\
+ search.obj, unpack.obj, drawPS.obj, header.obj, makefont.obj,\
+ repack.obj, virtualfont.obj, dpicheck.obj, finclude.obj, \
+ pprescan.obj, papersiz.obj, flib.obj, color.obj, bbox.obj, \
+ emspecial.obj, vaxvms.obj
+
+all : afm2tfm.exe dvips.exe tex.pro texps.pro texc.pro special.pro \
+ finclude.pro color.pro crop.pro dvips.hlb
+
+dvips.exe : $(OBJ)
+ Link /Exe=DviPS.exe $(LFLAGS) $(OBJ) $(LIBS) $(FLIBS)
+
+# dvips.obj : dvips.c vmscli.c # VAXC
+dvips.obj : dvips.c vmscli.c vms_gcc_paths.h # GNUC
+ $(CC) $(CFLAGS2) dvips.c
+
+afm2tfm.exe : afm2tfm.obj
+ Link $(LFLAGS) afm2tfm.obj $(LIBS) $(FLIBS)
+
+afm2tfm.obj : afm2tfm.c
+ $(CC) $(CFLAGS) afm2tfm.c
+
+$(OBJ) : dvips.h debug.h vms.h
+
+flib.obj resident.obj dvips.obj loadfont.obj tfmload.obj : paths.h
+
+vaxvms.obj : [.vms]vaxvms.c
+! $(CC) $(CFLAGS) [.vms]vaxvms.c /object=[]vaxvms.obj
+
+vmscli.c : [.vms]vmscli.c
+ Copy /Log [.vms]vmscli.c []
+
+vms.h : [.vms]vms.h
+ Copy /Log [.vms]vms.h []
+
+vms_gcc_paths.h : [.vms]vms_gcc_paths.h # GNUC
+ Copy /Log [.vms]vms_gcc_paths.h [] # GNUC
+
+*.obj : *.c
+ $(CC) $(CFLAGS) $<
+
+squeeze.exe : squeeze.obj
+ Link $(LFLAGS) squeeze.obj $(LIBS) $(FLIBS)
+
+squeeze.obj : squeeze.c
+ $(CC) $(CFLAGS) squeeze.c
+
+tex.pro : tex.lpro squeeze.exe
+ MCR sys$disk:[]squeeze tex.lpro tex.pro
+
+texc.pro: texc.lpro squeeze.exe
+ MCR sys$disk:[]squeeze texc.lpro texc.pro
+
+texc.lpro: tex.lpro
+ @[.vms]texc_scr.com # tex.lpro texc.lpro
+
+texps.pro : texps.lpro squeeze.exe
+ MCR sys$disk:[]squeeze texps.lpro texps.pro
+
+special.pro : special.lpro squeeze.exe
+ MCR sys$disk:[]squeeze special.lpro special.pro
+
+finclude.pro : finclude.lpro squeeze.exe
+ MCR sys$disk:[]squeeze finclude.lpro finclude.pro
+
+color.pro : color.lpro squeeze.exe
+ MCR sys$disk:[]squeeze color.lpro color.pro
+
+crop.pro : crop.lpro squeeze.exe
+ MCR sys$disk:[]squeeze crop.lpro crop.pro
+
+dvips.hlb : dvips.hlp
+ Library/Create=Blocks:40/Help dvips.hlb dvips.hlp
+
+dvips.hlp : [.vms]dvips.rnh
+ Runoff [.vms]dvips.rnh
+
+install : afm2tfm.exe dvips.exe dvips.hlb [.vms]MakeTeXPK.com \
+ tex.pro texc.pro texps.pro special.pro finclude.pro color.pro \
+ crop.pro config.ps psfonts.map epsf.tex epsf.sty rotate.tex \
+ rotate.sty colordvi.tex colordvi.sty blackdvi.tex blackdvi.sty
+# - mkdir $(BINDIR)
+# - mkdir $(HEADERDIR)
+# - mkdir $(CONFIGDIR)
+# - mkdir $(MANDIR)
+# - mkdir $(TEXMACRODIR)
+ $(INSTALL) afm2tfm.exe $(BINDIR)afm2tfm.exe
+ $(INSTALL) dvips.exe $(BINDIR)dvips.exe
+ $(INSTALL) dvips.hlb $(BINDIR)dvips.hlb
+# $(INSTALL) [.VMS]MakeTeXPK.COM $(BINDIR)MakeTeXPK.COM
+ $(INSTALL) tex.pro $(HEADERDIR)
+ $(INSTALL) texc.pro $(HEADERDIR)
+ $(INSTALL) texps.pro $(HEADERDIR)
+ $(INSTALL) special.pro $(HEADERDIR)
+ $(INSTALL) finclude.pro $(HEADERDIR)
+ $(INSTALL) color.pro $(HEADERDIR)
+ $(INSTALL) crop.pro $(HEADERDIR)
+ $(INSTALL) config.ps $(CONFIGDIR)$(CONFIGFILE)
+ $(INSTALL) psfonts.map $(CONFIGDIR)
+ $(INSTALL) epsf.tex $(TEXMACRODIR)
+ $(INSTALL) epsf.sty $(TEXMACRODIR)
+ $(INSTALL) rotate.tex $(TEXMACRODIR)
+ $(INSTALL) rotate.sty $(TEXMACRODIR)
+ $(INSTALL) colordvi.sty $(TEXMACRODIR)
+ $(INSTALL) colordvi.tex $(TEXMACRODIR)
+ $(INSTALL) blackdvi.sty $(TEXMACRODIR)
+ $(INSTALL) blackdvi.tex $(TEXMACRODIR)
+ $(INSTALL) dvips.tex $(TEXMACRODIR)
+ $(INSTALL) dvipsmac.tex $(TEXMACRODIR)
+ $(INSTALL) dvips.1 $(MANDIR)
+ $(INSTALL) afm2tfm.1 $(MANDIR)
+
+veryclean :
+ Delete *.obj;*, dvips.exe;*, squeeze.exe;*, afm2tfm.exe;*,\
+ texc.lpro;*, *.pro;*, *.log;*, *.dvi;*
+
+clean :
+ Delete *.obj;*, squeeze.exe;*, afm2tfm.exe;*, *.log;*, *.dvi;*
+
+# lint :
+# lint $(DEFS) $(PATHS) $(SRC)
+# lint $(DEFS) squeeze.c
+# lint $(DEFS) afm2tfm.c
diff --git a/Build/source/texk/dvipsk/vms/README b/Build/source/texk/dvipsk/vms/README
new file mode 100644
index 00000000000..ec89bbc988a
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/README
@@ -0,0 +1,128 @@
+I backed out some of the changes, but it should compile and run on VMS.
+I removed the changes that guarantee that the scratch files get unique
+names; I did this because the resulting filenames would not work on
+some systems, and because if this is a problem I feel the correct
+solution would be to make sure each user is actually running in the
+correct unique directory, rather than changing the names of all of the
+temporary files that dvips might create. -tgr
+
+Original message:
+
+From: "Edward J. Groth" <groth@PUPGG.PRINCETON.EDU>
+To: doyle@mmm.lanl.gov, rokicki@CS.Stanford.EDU
+CC: groth@PUPGG.PRINCETON.EDU
+Message-ID: <009A5364.5D7EC83B.21977@PUPGG.PRINCETON.EDU>
+Subject: vms port and mods of hyper dvips 5.58
+Content-Type: text
+Content-Length: 155227
+Status: RO
+
+To: Mark Doyle and Tomas Rokicki
+
+I've picked up dvips version 5.58 from LANL, with Mark's hps
+modifications. I've ported (reported?) this to VMS. Below is a
+summary of my changes, followed by a copy of each changed
+routine (all changes are annotated with EJG).
+
+(It looks like whoever was keeping the vms port going hasn't
+worked on it for a while.)
+
+Thanks for the good work!
+
+ - Ed
+
+
+
+
+
+EJG 08-Jul-1996
+
+This directory contains dvips 5.58 hacked by Mark Doyle to put in
+mods for hyperps and hacked by me to make sure it ports to VMS.
+
+This was obtained by following links from http://xxx.lanl.gov/hypertex
+in early July, 1996.
+
+Dvips has been made for vms v6.2 (alpha and vax) using DEC C
+v5.0.
+
+Main changes I made:
+
+******
+dvips.c
+
+include subdirectory [.vms] where vmscli.c is included.
+
+get process id and use in constructing file names
+dvips_h_pidxxxxx.tmp and dvips_b_pidxxxxx.tmp to replace head.tmp
+and body.tmp, so we don't get a name collision if two users are
+using the same scratch space. Change all references to these
+names to reference the variables holding the new names.
+
+******
+hps.c
+
+replace head.tmp and body.tmp as above.
+
+replace ERROR with ERROR_HPS to avoid collision with error()
+function. Question: why us a boolean variable to represent a
+constant?
+
+after the former head.tmp and body.tmp files are copied to the
+output, they are deleted. (neatness)
+
+
+******
+output.c
+
+replace head.tmp and body.tmp as above. Required a little bit of
+extra logic when testing to see if the output file is the former
+head.tmp (so we don't put in a \n). Don't want to do the test if
+the HPS_FLAG hasn't been set.
+
+******
+dvips.h
+
+include subdirectory [.vms] where vms.h is included.
+
+******
+[.vms]vmscli.c
+
+add qualifiers for new options since this file was last updated.
+
+fix up some bugs in qualifiers.
+
+******
+[.vms]dvips.cld
+
+add qualifiers for new options since this file was last updated.
+
+fix up some bugs in qualifiers.
+
+******
+[.vms]dvips.hlp
+
+add help for new qualifiers added above.
+
+make help agree with what the qualifiers actually do. For
+example, the /filter qualifier, sends the output to stdout, but
+still requires an input file (it will not read from stdin).
+
+******
+[.vms]newmake.com
+
+Made from [.vms]make.com. Don't prompt for options - all
+hardwired as defaults, except fontlib is turned off. HPS is
+defined in all cc's, and /standard=vaxc is added to all cc's.
+
+hps.c is included in the compile and link steps
+
+options file is removed from the link steps.
+
+/----------------------------------------------------------------------\
+| Edward J. Groth | Phone: 609-258-4361 Fax: 609-258-6853 |
+| Physics Dept., Jadwin Hall | URL: http://pupgg.princeton.edu/~groth/ |
+| Princeton University | SPAN/HEPNET: PUPGG::GROTH=44117::GROTH |
+| Princeton, NJ 08544 | Internet: groth@pupgg.princeton.edu |
+\----------------------------------------------------------------------/
+
diff --git a/Build/source/texk/dvipsk/vms/README.VMS b/Build/source/texk/dvipsk/vms/README.VMS
new file mode 100644
index 00000000000..93698e30c02
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/README.VMS
@@ -0,0 +1,48 @@
+This is the beginnings of a port to VMS. The documentation is not yet
+complete, but the program works. To compile, set the following in
+MAKE.COM:
+
+Set TFMPATH to where the TFM files are located. Default is TEX$FONTS:
+ ($ TFMPATH = "TEX$FONTS:")
+
+Set PKPATH to where the PK fonts are located. Default is TEX_PK:
+ ($ PKPATH = "TEX_PK:")
+
+Set VFPATH to where the VF fonts are located. Default is TEX_VF:
+ ($ VFPATH = "TEX_VF:")
+
+Set FIGPATH to where the epsf and psfiles are located. Default is TEX_INPUTS:
+ ($ FIGPATH = "TEX_INPUTS:")
+
+Set HEADERPATH to where the header files are located. Default is
+TEX$POSTSCRIPT:,SYS$LOGIN:,"
+ ($ HEADERPATH = "TEX$POSTSCRIPT:,SYS$LOGIN:,")
+
+Set CONFIGPATH to where the config files are located. Default is
+TEX$POSTSCRIPT:
+ ($ CONFIGPATH = "TEX$POSTSCRIPT:")
+
+Set TPIC to ",TPIC" if you want TPIC support enabled. Default is enabled.
+ ($ TPIC = ",TPIC")
+
+Set DEBUG to ",DEBUG" if you want DEBUG support enabled. Default is enabled.
+ ($ DEBUG = ",DEBUG")
+
+Expect 1 warning in dospecial.c
+
+To install:
+
+dvips := $DIRECTORY:dvips
+maketexpk := @DIRECTORY:maketexpk
+
+Make sure that all the logicals defined above (eg, tex_pk, tex_vf) are
+actually defined.
+
+Again, this is a first cut, with improvements to come later. It has
+not been thoroughly tested. More documentation will be coming later,
+and possibly a VMS command line interface. If you have any problems or
+improvements, please let me know.
+
+Xev Gittler
+GTE Laboratories, Inc.
+xev@bunny.gte.com
diff --git a/Build/source/texk/dvipsk/vms/dvips.cld b/Build/source/texk/dvipsk/vms/dvips.cld
new file mode 100644
index 00000000000..a246e692448
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/dvips.cld
@@ -0,0 +1,55 @@
+! EJG 02-Jul-1996
+! Add secure qualifier
+! Add oddpages qualifier
+! Add evenpages qualifier
+! Default mode is letter rather than A4
+! Add downloadPS (as PK) fonts qualifier
+! Add hyperPS qualifier
+! EJG 07-Jul-1996
+! change output qualifier to remove placement=positional
+define verb dvips
+ image tex$postscript:dvips
+ parameter p1, label=dvifile, prompt="DVI File",
+ value(required,type=$infile)
+ qualifier copies, default, value(default=1)
+ qualifier debug default, value(required)
+ qualifier maxdrift default, value(required)
+ qualifier filter negatable
+ qualifier last, default, value(required)
+ qualifier manual, negatable
+ qualifier number, default, value(required)
+ qualifier output, nonnegatable,
+ value(type=$file,required) !EJG 07-Jul-1996
+ qualifier start, default, value(required)
+ qualifier quiet, negatable
+ qualifier reverse, negatable
+ qualifier sav_res, negatable
+ qualifier mode, value(list,default="letter") ! EJG 02-Jul-1996
+ qualifier magnification,default, value(required)
+ qualifier collate, default, value(default=1)
+ qualifier dpi, default, value(default=300)
+ qualifier ctrld, negatable
+ qualifier inc_com, negatable
+ qualifier comment, negatable
+ qualifier vm_save, negatable
+ qualifier h_dpi, default, value(required)
+ qualifier v_dpi, default, value(required)
+ qualifier compress, negatable
+ qualifier printer, default, value(required)
+ qualifier header, negatable, value(list,required)
+ qualifier absolute
+ qualifier epsf, negatable
+ qualifier prescan, negatable
+ qualifier pagecopies, default, value(default=1)
+ qualifier separate, negatable
+ qualifier cropmarks, negatable
+ qualifier sec_size, default, value(required)
+ qualifier help
+ qualifier makefont, default, negatable
+ qualifier psize, value(required)
+ qualifier poffset, value(required)
+ qualifier secure, negatable ! EJG 02-Jul-1996
+ qualifier oddpages, negatable ! EJG 02-Jul-1996
+ qualifier evenpages, negatable ! EJG 02-Jul-1996
+ qualifier downloadps, negatable ! EJG 02-Jul-1996
+ qualifier hyperps, negatable ! EJG 02-Jul-1996
diff --git a/Build/source/texk/dvipsk/vms/dvips.hlp b/Build/source/texk/dvipsk/vms/dvips.hlp
new file mode 100644
index 00000000000..760abc3bac4
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/dvips.hlp
@@ -0,0 +1,435 @@
+1 DVIPS
+
+! Modified 07-Jul-1996 - EJG
+! Fix description of filter (can write to stdout, but not read from stdin!
+! Change mode description, landscape used with others just gives
+! landscape. So took that out. Removed warning about quotes (not
+! necessary). Added tabloid.
+! Changed qualifier ctrl_d to ctrld to agree with cld file
+! Changed default for inc_com to be noinc_com to agree with dvips
+! Fix header qualifier
+!
+! Added comment about the manual to front and also under the
+! special heading.
+
+The dvips program converts a TEX dvi file into a PostScript file for
+printing or distribution. Seldom has such a seemingly easy programming
+task required so much effort. The dvips program has a number of features
+that set it apart from other PostScript drivers for TEX. The dvips
+driver generates excellent, standard PostScript, that can be included in
+other documents as figures or printed through a variety of spoolers. The
+generated PostScript requires very little printer memory, so very complex
+documents with a lot of fonts can easily be printed even on PostScript
+printers without much memory, such as the original Apple LaserWriter. The
+PostScript output is also compact, requiring less disk space to store and
+making it feasible as a transfer format. Missing fonts can be automatically
+generated if METAFONT exists on the system, or fonts can be converted from
+gf to pk format on demand. If a font cannot be generated, a scaled
+version of the same font at a different size can be used instead, although
+dvips will complain loudly about the poor aesthetics of the resulting
+output.
+
+A manual for dvips may be printed with the command:
+
+ printps tex_root:[local]dvips.ps
+
+In this manual, the command line options are for the unix variant
+of dvips. Our version has the qualifiers as detailed in this help
+file. Also, some of the latest options are not in the manual (in
+particular, the /hyperps option).
+
+ usage:
+ DVIPS filename[.dvi]
+
+2 /COPIES
+ /COPIES=num
+
+ Generate num copies of every page. Default is 1.
+ (For collated copies, see the /COLLATE option.)
+
+2 /DEBUG
+ /DEBUG=num
+
+ Set the debug flags. This is intended only for
+ emergencies or for unusual fact-finding expeditions; it
+ will work only if dvips has been compiled with the
+ DEBUG option. Use
+
+ num=1 for special
+
+ num=2 for paths
+
+ num=4 for fonts
+
+ num=8 for pages
+
+ num=16 for headers
+
+ num=32 for font compression
+
+ num=64 for files
+
+ num=128 for memory allocation
+
+ Use a value of -1 for maximum output.
+
+2 /MAXDRIFT
+ /MAXDRIFT=num
+
+ Make sure that each character is placed at most this many pixels
+ from its `true' resolution-independent position on the page. The
+ default value of this parameter is resolution dependent (it is the
+ number of entries in the list [100, 200, 300, 400, 500, 600, 800,
+ 1000, 1200, 1600, 2000, 2400, 2800, 3200, : : :] that are less
+ than or equal to the resolution in dots per inch). Allowing
+ individual characters to `drift' from their correctly rounded
+ positions by a few pixels, while regaining the true position at
+ the beginning of each new word, improves the spacing of letters in
+ words.
+
+2 /FILTER
+
+ Run as a filter writing the output to the standard output.
+ (The input must still be specified as the argument.)
+
+2 /LAST
+ /LAST=num
+
+ The last page printed will be the first one numbered num. Default
+ is the last page in the document.
+
+
+2 /MANUAL
+
+ Specify manual feed for printer.
+
+2 /NUMBER
+ /NUMBER=num
+ At most num pages will be printed. Default is 100000.
+
+2 /OUTPUT
+ /OUTPUT=filename.ext
+
+ The output will be sent to file name. If no file name is given,
+ the default name is file.ps where the dvi file was called
+ file.dvi .
+
+2 /START
+ /START=num
+
+ The first page printed will be the first one numbered
+ num. Default is the first page in the document.
+
+2 /QUIET
+
+ Run in quiet mode. Don't chatter about pages converted,
+ etc.; report nothing but errors to standard error.
+
+2 /REVERSE
+
+ Stack pages in reverse order. Normally, page 1 will be printed
+ first.
+
+2 /SAV_RES
+
+ Causes the entire global output to be enclosed in a save/restore
+ pair. This causes the file to not be truly conformant, and is
+ thus not recommended, but is useful if you are driving the printer
+ directly and don't care too much about the portability of the
+ output.
+
+2 /MODE
+ /MODE=modename
+
+ This sets the paper mode to modename. Currently, the only modes
+ allowable are
+
+ "letter", which selects an 8.5 by 11 inch page,
+ "a3", which selects an a3 sized page,
+ "a4" , which selects an a4 sized page,
+ "legal", which selects an 8.5 by 14 inch page,
+ "ledger", which selects an 11 by 17 inch page, and
+ "tabloid", which selects a 17 by 11 inch page, and
+ "landscape", which rotates a letter size document by 90 degrees.
+
+
+ The default mode is "letter". The upper left corner of each page in
+ the dvi file is placed one inch from the left and one inch from the top.
+
+2 /MAGNIFICATION
+ /MAGNIFICATION=num
+
+ Set the magnification ratio to num/1000. Overrides the
+ magnification specified in the dvi file. Must be between 10 and
+ 100000.
+
+2 /COLLATE
+ /COLLATE=num
+
+ Create num copies, but collated (by replicating the data in the
+ PostScript file). Slower than the /COPIES option, but easier on
+ the hands, and faster than resubmitting the same PostScript file
+ multiple times.
+
+2 /DPI
+ /DPI=num
+
+ Set the resolution in dpi (dots per inch) to num. This
+ affects the choice of bitmap fonts that are loaded and also the
+ positioning of letters in resident PostScript fonts. Must be
+ between 10 and 10000. This affects both the horizontal and
+ vertical resolution. If a high resolution (something greater than
+ 400 dpi, say) is selected, the /COMPRESS flag should probably also
+ be used.
+
+2 /CTRLD
+
+ Causes Control-D (ASCII code 4) to be appended as the
+ very last character of the PostScript file. This is useful
+ when dvips is driving the printer directly instead of working
+ through a spooler, as is common on extremely small systems.
+ Otherwise, it is not recommended.
+
+2 /INC_COM
+ /INC_COM
+ /NOINC_COM (default)
+
+ /NOINC_COM option causes comments in included PostScript graphics,
+ font files, and headers to be removed. This is sometimes
+ necessary to get around bugs in spoolers or PostScript
+ post-processing programs. Specifically, the %%Page comments,
+ when left in, often cause difficulties. Use of this flag can
+ cause some included graphics to fail, since the PostScript header
+ macros from some software packages read portions of the
+ input stream line by line, searching for a particular comment.
+
+2 /COMMENT
+ /COMMENT (default)
+ /NOCOMMENT
+
+ /NOCOMMENT turns off structured comments; this might be necessary
+ on some systems that try to interpret PostScript comments in weird
+ ways, or on some PostScript printers. Old versions of Transcript
+ in particular cannot handle modern Encapsulated PostScript.
+
+2 /PRINTER
+ /PRINTER=printername
+
+ Sets up the output for the appropriate printer. This is
+ implemented by reading in config.printername , which can set
+ various parameters such as the font paths and any other defaults
+ for that printer only. It is recommended that all standard
+ defaults go in the one master config.ps file and only things that
+ vary printer to printer go in the config.printername files. Note
+ that config.ps is read before config.printername. In
+ addition, another file called "/.dvipsrc is searched for
+ immediately after config.ps; this file is intended for user
+ defaults. If no /PRINTER command is given, the environment
+ variable PRINTER is checked. If that variable exists, and a
+ corresponding configuration file exists, that configuration file
+ is read in.
+
+2 /HEADER
+ /HEADER=(file1,file2,...)
+ /NOHEADER
+
+ Prepend file1, file2, ... as additional header files.
+ This header file gets added to the PostScript userdict.
+ With /NOHEADER, suppress all header output.
+
+
+2 /VM_SAVE
+ /VM_SAVE (default)
+ /NOVM_SAVE
+
+ /NOVM_SAVE disables a PostScript virtual memory saving
+ optimization that stores the character metric information in the
+ same string that is used to store the bitmap information. This
+ is only necessary when driving the Xerox 4045 PostScript
+ interpreter, and it is caused by a bug in that interpreter that
+ results in `garbage' on the bottom of each character. Not
+ recommended unless you must drive this printer.
+
+2 /H_DPI
+ /H_DPI=num
+
+ Set the horizontal resolution in dots per inch to num.
+
+
+2 /V_DPI
+ /V_DPI=num
+
+ Set the vertical resolution in dots per inch to num.
+
+2 /COMPRESS
+
+ Causes bitmapped fonts to be compressed before they are
+ downloaded, thereby reducing the size of the PostScript
+ font-downloading information. Especially useful at high
+ resolutions or when very large fonts are used. Will slow down
+ printing somewhat, especially on early 68000-based PostScript
+ printers.
+
+2 /ABSOLUTE
+
+ Makes references to page numbers absolute (rather than TeX
+ page numbers).
+
+2 /EPSF
+ /EPSF
+ /NOEPSF (default)
+
+ /EPSF makes dvips attempt to generate an EPSF file with a
+ tight bounding box. This only works on one-page files, and it
+ only looks at marks made by characters and rules, not by any
+ included graphics. In addition, it gets the glyph metrics
+ from the tfm file, so characters that lie outside their
+ enclosing tfm box may confuse it. In addition, the bounding
+ box might be a bit too loose if the character glyph has
+ significant left or right side bearings. Nonetheless, this
+ option works well for creating small EPSF files for equations
+ or tables or the like. (Note, of course, that dvips output is
+ resolution dependent and thus does not make very good EPSF
+ files, especially if the images are to be scaled; use these
+ EPSF files with a great deal of care.)
+
+
+2 /PRESCAN
+ /PRESCAN
+ /NOPRESCAN (default)
+
+ Conserve memory by making three passes over the .dvi file
+ instead of two and only loading those characters actually
+ used. Generally only useful on machines with a very limited
+ amount of memory, like some PCs.
+
+2 /PAGECOPIES
+ /PAGECOPIES=num (default=1)
+
+ Number of times to print each page. Executes the postscript
+ for each page this number of times (unlike /COPIES which
+ executes the postscript once and prints multiple times.)
+
+2 /SEPARATE
+ /SEPARATE
+ /NOSEPARATE (default)
+
+ Make each section be a separate file. Under certain
+ circumstances, dvips will split the document up into
+ `sections' to be processed independently; this is most often
+ done for memory reasons. Using this option tells dvips to
+ place each section into a separate file; the new file names
+ are created replacing the suffix of the supplied output file
+ name by a three-digit sequence number. This option is most
+ often used in conjunction with the /SEC_SIZE option which
+ sets the maximum section length in pages. For instance, some
+ phototypesetters cannot print more than ten or so consecutive
+ pages before running out of steam; these options can be used
+ to automatically split a book into ten-page sections, each to
+ its own file.
+
+2 /CROPMARKS
+ /CROPMARKS
+ /NOCROPMARKS (default)
+
+ Print crop marks. This option increases the paper size
+ (which should be specified, either with a paper size special
+ or with the /PSIZE option) by a half inch in each dimension.
+ It translates each page by a quarter inch and draws
+ cross-style crop marks. It is mostly useful with typesetters
+ that can set the page size automatically.
+
+
+2 /SEC_SIZE
+ /SEC_SIZE=number
+
+ Set the maximum number of pages in each `section'. This
+ option is most commonly used with the /SEPARATE option; see
+ that documentation above for more information.
+
+
+2 /HELP
+ /HELP
+
+ Given with a dummy file name, causes dvips to output a one
+ page listing of options in unix form. Not very useful!
+
+
+
+2 /MAKEFONT
+ /MAKEFONT (default)
+ /NOMAKEFONT
+
+ The /NOMAKEFONT option turns off the automatic font
+ generation facility. If any fonts are missing, commands to
+ generate the fonts are appended to the file missfont.log in
+ the current directory; this file can then be executed and
+ deleted to create the missing fonts.
+
+2 /PSIZE
+ /PSIZE="dim,dim"
+
+ Set the paper size to the given pair of dimensions. This
+ option takes its arguments in the same syntax as the
+ papersize special, for example 8.5in,11in. It overrides any
+ paper size special in the dvi file. The dimensions must
+ resolve to a papersize specified in the configuration files.
+
+
+2 /POFFSET
+ /POFFSET="dim,dim"
+
+ Move the origin by a certain amount. The offset is a
+ comma-separated pair of dimensions, such as .1in,-.3cm (in
+ the same syntax used in the papersize special). The origin
+ of the page is shifted from the default position (of one inch
+ down, one inch to the right from the upper left corner of the
+ paper) by this amount.
+
+
+2 /SECURE
+ /SECURE
+ /NOSECURE (default)
+
+ With the /SECURE option, dvips will not attempt to open pipes
+ or run commands (such as commands to make fonts).
+
+2 /ODDPAGES
+ /ODDPAGES
+ /NOODDPAGES (default)
+
+ Print only odd pages (TeX pages, not sequence pages).
+
+2 /EVENPAGES
+ /EVENPAGES
+ /NOEVENPAGES (default)
+
+ Print only even pages (TeX pages, not sequence pages).
+
+2 /DOWNLOADPS
+ /DOWNLOADPS
+ /NODOWNLOADPS (default)
+
+ Downloadable postscript fonts are set in PK (compressed
+ bitmap) format.
+
+2 /HYPERPS
+ /HYPERPS
+ /NOHYPERPS (default)
+
+ Outputs \specials containing hyperlinks to the output file as
+ pdf marks embedded in postscript comments. These can then be
+ turned into hyperlinks with Adobe Distiller and viewed with
+ Adobe Acrobat.
+
+2 Specials
+
+ The specials are described in the manual which may be printed
+ with the command
+
+ printps tex_root:[local]dvips.ps
+
+ In this manual, the command line options are for the unix
+ variant of dvips. Our version has the qualifiers as detailed
+ in this help file. Also, some of the latest options are not
+ in the manual (in particular, the /hyperps option).
diff --git a/Build/source/texk/dvipsk/vms/dvips.rnh b/Build/source/texk/dvipsk/vms/dvips.rnh
new file mode 100644
index 00000000000..d1da4f998f5
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/dvips.rnh
@@ -0,0 +1,532 @@
+.RM 68
+.NO NUMBER
+.NO PAGING
+.STHL 5,1,1
+.lm 0
+1 DVIPS
+.lm 2
+The dvips program converts a TEX dvi file into a PostScript file for
+printing or distribution. Seldom has such a seemingly easy programming task
+required so much effort. The dvips program has a number of features that set
+it apart from other PostScript drivers for TEX. The dvips driver generates
+excellent, standard PostScript, that can be included in other documents as
+figures or printed through a variety of spoolers. The generated PostScript
+requires very little printer memory, so very complex documents with a lot of
+fonts can easily be printed even on PostScript printers without much memory,
+such as the original Apple LaserWriter. The PostScript output is also
+compact, requiring less disk space to store and making it feasible as a
+transfer format.
+.skip 1
+Missing fonts can be automatically generated if METAFONT exists on the
+system, or fonts can be converted from gf to pk format on demand. If a
+font cannot be generated, a scaled version of the same font at a different
+size can be used instead, although dvips will complain loudly about the
+poor aesthetics of the resulting output.
+.skip 1
+.literal
+ usage:
+ DVIPS filename[.dvi]
+.end literal
+.skip 1
+.lm 0
+2 Parameters
+.s
+.lm 2
+Filename
+.s
+Specifies the name of the .DVI file that is to be processed.
+.lm 0
+2 Command__Qualifiers
+.skip 1
+/COPIES
+.lm 6
+.skip 1
+/COPIES=num
+.lm 2
+.skip 1
+ Generate num copies of every page. Default is 1.
+ (For collated copies, see the /COLLATE option.)
+.skip 1
+.lm 0
+/DEBUG
+.skip 1
+.lm 6
+ /DEBUG=num
+.lm 2
+.skip 1
+ Set the debug flags. This is intended only for
+ emergencies or for unusual fact-finding expeditions; it
+ will work only if dvips has been compiled with the
+ DEBUG option. Use
+.skip 1
+.literal
+ num=1 for special
+
+ num=2 for paths
+
+ num=4 for fonts
+
+ num=8 for pages
+
+ num=16 for headers
+
+ num=32 for font compression
+
+ num=64 for files
+
+ num=128 for memory allocation
+.end literal
+.skip 1
+ Use a value of -1 for maximum output.
+.skip 1
+.lm 0
+/MAXDRIFT
+.skip 1
+.lm 6
+ /MAXDRIFT=num
+.lm 2
+.skip 1
+ Make sure that each character is placed at most this many pixels
+ from its `true' resolution-independent position on the page. The
+ default value of this parameter is resolution dependent (it is the
+ number of entries in the list [100, 200, 300, 400, 500, 600, 800,
+ 1000, 1200, 1600, 2000, 2400, 2800, 3200, : : :] that are less
+ than or equal to the resolution in dots per inch). Allowing
+ individual characters to `drift' from their correctly rounded
+ positions by a few pixels, while regaining the true position at
+ the beginning of each new word, improves the spacing of letters in
+ words.
+.skip 1
+.lm 0
+/FILTER
+.skip 1
+.lm 2
+Run as a filter. Read the dvi file from standard input and write
+the PostScript to standard output. The standard input must be seekable, so
+it cannot be a pipe. If you must use a pipe, write a shell script that copies
+the pipe output to a temporary file and then points dvips at this file. i-h
+name: Prepend file name as an additional header file. (However, if the name
+is simply `- ', suppress all header files from the output.) This header file
+gets added to the PostScript userdict.
+.skip 1
+.lm 0
+/LAST
+.skip 1
+.lm 6
+ /LAST=num
+.lm 2
+.skip 1
+ The last page printed will be the first one numbered num. Default
+ is the last page in the document.
+.skip 1
+If the /ABSOLUTE qualifier has been used then it (and any argument to the
+/START qualifier) is treated as a sequence number, rather than a value to
+compare with \count0 values. Thus, using /LAST=9/ABSOLUTE will end with
+the ninth page of the document, no matter what the pages are actually
+numbered.
+.skip 1
+.lm 0
+/MANUAL
+.skip 1
+.lm 2
+ Specify manual feed for printer.
+.skip 1
+.lm 0
+/NUMBER
+.skip 1
+.lm 6
+ /NUMBER=num
+.lm 2
+.skip 1
+ At most num pages will be printed. Default is 100000.
+.skip 1
+.lm 0
+/OUTPUT
+.skip 1
+.lm 6
+ /OUTPUT=filename.ext
+.lm 2
+.skip 1
+ The output will be sent to file name. If no file name is given,
+ the default name is file.ps where the dvi file was called
+ file.dvi .
+.skip 1
+.lm 0
+/START
+.skip 1
+.lm 6
+ /START=num
+.lm 2
+.skip 1
+ The first page printed will be the first one numbered
+ num. Default is the first page in the document.
+.skip 1
+If the /ABSOLUTE qualifier has been used then it (and any argument to the
+/LAST qualifier) is treated as a sequence number, rather than a value to
+compare with \count0 values. Thus, using /START=3/ABSOLUTE will start with
+the third page of the document, no matter what the pages are actually
+numbered.
+.skip 1
+.lm 0
+/QUIET
+.skip 1
+.lm 2
+ Run in quiet mode. Don't chatter about pages converted,
+ etc.; report nothing but errors to standard error.
+.skip 1
+.lm 0
+/REVERSE
+.skip 1
+.lm 2
+ Stack pages in reverse order. Normally, page 1 will be printed
+ first.
+.skip 1
+.lm 0
+/SAV__RES
+.skip 1
+.lm 2
+ Causes the entire global output to be enclosed in a save/restore
+ pair. This causes the file to not be truly conformant, and is
+ thus not recommended, but is useful if you are driving the printer
+ directly and don't care too much about the portability of the
+ output.
+.skip 1
+.lm 0
+/MODE
+.skip 1
+.lm 6
+ /MODE=modename
+.lm 2
+.skip 1
+ This sets the paper mode to modename. Currently, the only modes
+ allowable are
+.skip 1
+.literal
+ "letter", which selects an 8.5 by 11 inch page,
+ "a3", which selects an a3 sized page,
+ "a4" , which selects an a4 sized page,
+ "legal", which selects an 8.5 by 14 inch page,
+ "ledger", which selects an 11 by 17 inch page, and
+ "landscape", which rotates a letter size document by 90 degrees.
+.end literal
+.skip 1
+ WARNING: always include paper format between quotation marks!
+.skip 1
+ The default mode is "letter". The upper left corner of each page in
+ the dvi file is placed one inch from the left and one inch from the top.
+.skip 1
+ If you want to specify a paper format (e.g. a4) AND landscape
+ mode, you must use something like
+.literal
+ /MODE=("landscape","a4")
+.end literal
+ putting "landscape" as the first value.
+.skip 1
+.lm 0
+/MAGNIFICATION
+.skip 1
+.lm 6
+ /MAGNIFICATION=num
+.lm 2
+.skip 1
+ Set the magnification ratio to num/1000. Overrides the
+ magnification specified in the dvi file. Must be between 10 and
+ 100000.
+.skip 1
+.lm 0
+/COLLATE
+.skip 1
+.lm 6
+ /COLLATE=num
+.lm 2
+.skip 1
+ Create num copies, but collated (by replicating the data in the
+ PostScript file). Slower than the /COPIES option, but easier on
+ the hands, and faster than resubmitting the same PostScript file
+ multiple times.
+.skip 1
+.lm 0
+/DPI
+.skip 1
+.lm 6
+ /DPI=num
+.lm 2
+.skip 1
+ Set the resolution in dpi (dots per inch) to num. This
+ affects the choice of bitmap fonts that are loaded and also the
+ positioning of letters in resident PostScript fonts. Must be
+ between 10 and 10000. This affects both the horizontal and
+ vertical resolution. If a high resolution (something greater than
+ 400 dpi, say) is selected, the /COMPRESS flag should probably also
+ be used.
+.skip 1
+.lm 0
+/CTRL__D
+.skip 1
+.lm 2
+ Causes Control-D (ASCII code 4) to be appended as the
+ very last character of the PostScript file. This is useful
+ when dvips is driving the printer directly instead of working
+ through a spooler, as is common on extremely small systems.
+ Otherwise, it is not recommended.
+.skip 1
+.lm 0
+/INC__COM
+.skip 1
+.lm 6
+ /INC__COM (default)
+.break
+ /NOINC__COM
+.lm 2
+.skip 1
+ /NOINC__COM option causes comments in included PostScript graphics,
+ font files, and headers to be removed. This is sometimes
+ necessary to get around bugs in spoolers or PostScript
+ post-processing programs. Specifically, the %%Page comments,
+ when left in, often cause difficulties. Use of this flag can
+ cause some included graphics to fail, since the PostScript header
+ macros from some software packages read portions of the
+ input stream line by line, searching for a particular comment.
+.skip 1
+.lm 0
+/COMMENT
+.skip 1
+.lm 6
+ /COMMENT (default)
+.break
+ /NOCOMMENT
+.lm 2
+.skip 1
+ /NOCOMMENT turns off structured comments; this might be necessary
+ on some systems that try to interpret PostScript comments in weird
+ ways, or on some PostScript printers. Old versions of Transcript
+ in particular cannot handle modern Encapsulated PostScript.
+.skip 1
+.lm 0
+/PRINTER
+.skip 1
+.lm 6
+ /PRINTER=printername
+.lm 2
+.skip 1
+ Sets up the output for the appropriate printer. This is
+ implemented by reading in config.printername , which can set
+ various parameters such as the font paths and any other defaults
+ for that printer only. It is recommended that all standard
+ defaults go in the one master config.ps file and only things that
+ vary printer to printer go in the config.printername files. Note
+ that config.ps is read before config.printername. In
+ addition, another file called "/.dvipsrc is searched for
+ immediately after config.ps; this file is intended for user
+ defaults. If no /PRINTER command is given, the environment
+ variable PRINTER is checked. If that variable exists, and a
+ corresponding configuration file exists, that configuration file
+ is read in.
+.skip 1
+.lm 0
+/VM__SAVE
+.skip 1
+.lm 6
+ /VM__SAVE (default)
+.break
+ /NOVM__SAVE
+.lm 2
+.skip 1
+/NOVM__SAVE disables a PostScript virtual memory saving optimization that
+stores the character metric information in the same string that is used to
+store the bitmap information. This is only necessary when driving the Xerox
+4045 PostScript interpreter, and it is caused by a bug in that interpreter that
+results in `garbage' on the bottom of each character. Not recommended unless
+you must drive this printer.
+.skip 1
+.lm 0
+/H__DPI
+.skip 1
+.lm 6
+/H__DPI=num
+.lm 2
+.skip 1
+Set the horizontal resolution in dots per inch to num.
+.skip 1
+.lm 0
+/V__DPI
+.skip 1
+.lm 6
+/V__DPI=num
+.lm 2
+.skip 1
+Set the vertical resolution in dots per inch to num.
+.skip 1
+.lm 0
+/COMPRESS
+.skip 1
+.lm 2
+Causes bitmapped fonts to be compressed before they are downloaded, thereby
+reducing the size of the PostScript font-downloading information. Especially
+useful at high resolutions or when very large fonts are used. Will slow down
+printing somewhat, especially on early 68000-based PostScript printers.
+.skip 1
+.lm 0
+.!-----------------------------------------------------------------------
+.! New stuff for version 5.497
+.!-----------------------------------------------------------------------
+/HEADER
+.skip 1
+.lm 6
+/HEADER=file-spec
+.break
+/NOHEADER
+.lm 2
+.skip 1
+Prepend file "file-spec" as an additional header file. However, if the name
+is simply `-', suppress all header files from the output. Similarly,
+/NOHEADER suppress all header files from the output. This header file gets
+added to the PostScript userdict. (Corresponds to the -h option)
+.skip 1
+.lm 0
+/ABSOLUTE
+.lm 2
+.skip 1
+If the /ABSOLUTE qualifier has been used then any argument to the /START
+and/or /LAST qualifiers are treated as sequence numbers, rather than a
+value to compare with \count0 values. Thus, using /START=3/ABSOLUTE will
+start with the third page of the document, no matter what the pages are
+actually numbered.
+(Corresponds to the -p and -l options)
+.skip 1
+.lm 0
+/EPSF
+.lm 2
+.skip 1
+Makes `dvips' attempt to generate an EPSF file with a tight bounding box.
+This only works on one-page files, and it only looks at marks made by
+characters and rules, not by any included graphics. In addition, it gets
+the glyph metrics from the `tfm' file, so characters that lie outside their
+enclosing `tfm' box may confuse it. In addition, the bounding box might be
+a bit too loose if the character glyph has significant left or right side
+bearings. Nonetheless, this option works well for creating small EPSF files
+for equations or tables or the like. (Note, of course, that `dvips' output
+is resolution dependent and thus does not make very good EPSF files,
+especially if the images are to be scaled; use these EPSF files with a great
+deal of care.)
+(Corresponds to the -E option)
+.skip 1
+.lm 0
+/PRESCAN
+.lm 2
+.skip 1
+Conserve memory by making three passes over the `dvi' file instead of two
+and only loading those characters actually used. Generally only useful on
+machines with a very limited amount of memory, like some PCs.
+(Corresponds to the -a option)
+.skip 1
+.lm 0
+/PAGECOPIES
+.skip 1
+.lm 6
+/PAGECOPIES=num
+.lm 2
+.skip 1
+Generate `num' copies of each page, but duplicating the page body rather
+than using the `#numcopies' option. This can be useful in conjunction with
+a header file setting \bop-hook to do color separations or other neat
+tricks. (Corresponds to the -b option)
+.skip 1
+.lm 0
+/SEPARATE
+.skip 1
+.lm 2
+Make each section be a separate file. Under certain circumstances,
+`dvips' will split the document up into `sections' to be processed
+independently; this is most often done for memory reasons. Using this
+option tells `dvips' to place each section into a separate file; the
+new file names are created replacing the suffix of the supplied output
+file name by a three-digit sequence number.
+.break
+This option is most often used in conjunction with the /SEC_SIZE qualifier
+which sets the maximum section length in pages. For instance, some
+phototypesetters cannot print more than ten or so consecutive pages before
+running out of steam; these options can be used to automatically split a
+book into ten-page sections, each to its own file. (Corresponds to the -i
+option)
+.skip 1
+.lm 0
+/CROPMARKS
+.skip 1
+.lm 2
+Print crop marks. This option increases the paper size (which should be
+specified, either with a paper size special or with the /PSIZE qualifier) by
+a half inch in each dimension. It translates each page by a quarter inch
+and draws cross-style crop marks. It is mostly useful with typesetters that
+can set the page size automatically. (Corresponds to the -k option)
+.skip 1
+.lm 0
+/SEC_SIZE
+.skip 1
+.lm 6
+/SEC_SIZE=num
+.lm 2
+.skip 1
+Set the maximum number of pages in each `section'. This option is most
+commonly used with the /SEPARATE qualifier; see that documentation above for
+more information. (Corresponds to the -S option)
+.skip 1
+.lm 0
+/HELP
+.skip 1
+.lm 2
+Displays a summary of the comand line options for the DVIPS program, but it
+show the UNIX version. Not much use to the VMS people, maybe one day we can
+set it to read this help library through the LBR$ utility routines.
+(Corresponds to the -? option)
+.skip 1
+.lm 0
+/MAKEFONT
+.skip 1
+.lm 6
+/MAKEFONT (default)
+/NOMAKEFONT
+.lm 2
+By default an attempt is made to make missing fonts. Use of /NOMAKEFONT
+turns off the automatic font generation facility. If any fonts are missing,
+commands to generate the fonts are appended to the file `missfont.log' in
+the current directory; this file can then be executed and deleted to create
+the missing fonts.
+.skip 1
+.lm 0
+/PSIZE
+.skip 1
+.lm 6
+/PSIZE="xsize,ysize"
+.lm 2
+.skip 1
+Set the paper size to the given pair of dimensions. This option takes
+its arguments in the same style as /POFFSET. It overrides any paper
+size special in the `dvi' file.
+.skip 1
+Example : /PSIZE="6in,8in"
+.skip 1
+.lm 0
+/POFFSET
+.skip 1
+.lm 6
+/POFFSET="xoffset,yoffset"
+.lm 2
+.skip 1
+Move the origin by a certain amount. The `offset' is a comma-separated
+pair of dimensions, such as ".1in,-.3cm" (in the same syntax used in
+the /PSIZE qualifier). The origin of the page is shifted from the
+default position (of one inch down, one inch to the right from the upper
+left corner of the paper) by this amount.
+.skip 1
+Example : /POFFSET=".1in,-.3cm"
+.skip 1
+.!-----------------------------------------------------------------------
+.lm 0
+2 Specials
+.skip 1
+.lm 2
+For a description of the special features of dvips see the dvips manual a LaTeX
+version of which may be copied using the command
+.skip 1
+copy tex$postscript:dvips.tex dvips.tex
diff --git a/Build/source/texk/dvipsk/vms/make.com b/Build/source/texk/dvipsk/vms/make.com
new file mode 100644
index 00000000000..e3fcd15209a
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/make.com
@@ -0,0 +1,351 @@
+$ !
+$ ! dvips for VAX/VMS
+$ !
+$ !
+$ ! Use to compile and link dvips with VAXC under VMS. Before using
+$ ! this command file you must set the following definitions according
+$ ! to your own environment;
+$ !
+$ ! TFMPATH - The directory where TFM files live ( needed for
+$ ! the compilation of dvips.c ). Be sure and include
+$ ! the needed directory separator in the path ( i.e.
+$ ! TEX_FONTS: )
+$ ! PKPATH - The directory where PK files live ( needed for the
+$ ! compilation of dvips.c ). You should also decided
+$ ! whether you need VMS_ROOTED ( needed for the
+$ ! compilation of loadfont.c ) defined so that
+$ ! PKPATH will be interpreted as a rooted directory
+$ ! under VMS. Be sure and include the needed directory
+$ ! separator in the path ( i.e. TEX_FONTS: ).
+$ ! HEADERPATH - The directory where the PostScript prologue file
+$ ! live ( needed for the compilation of output.c &
+$ ! dvips.c). Be sure and include a trailing comma in
+$ ! your definition of the header path as dvips uses this
+$ ! definition as a path for both PostScript prologue
+$ ! files and files which are included with \special
+$ ! options. This definition should be a comma
+$ ! separated list of directories where dvips will
+$ ! look for a specified file. As an example;
+$ !
+$ ! "HEADERPATH=""TEX_POSTSCRIPT:,SYS$LOGIN:,"""
+$ !
+$ ! to look first in TEX_POSTSCRIPT:, then in SYS$LOGIN:,
+$ ! and finally in the current default directory.
+$ ! CONFIGPATH - The directory where the configuration file lives
+$ ! ( needed for the compilation of resident.c ). Be
+$ ! sure and include the needed directory separator
+$ ! in the path ( i.e. TEX_POSTSCRIPT: ).
+$ !
+$ ! FIGPATH - Where the .ps and .eps files are
+$ !
+$ ! After dvips has been compiled and linked the user will be given the
+$ ! option of compressing the PostScript prologue files which are used
+$ ! by dvips and copying the resultant prologue files to the specifed
+$ ! HEADERPATH. The user will also be given the option of copying the
+$ ! dvips image file to the area where TeX related images are stored.
+$ ! Answering "yes" to either of these options should be done only if
+$ ! the user has write priviledges to the directories which are specified.
+$ !
+$ ! Command file by: Robert Schneider
+$ ! Department of Petroleum Engineering
+$ ! The University of Texas at Austin
+$ !
+$ ! October 1989
+$ !
+$ ! Updates by: Earle Ake
+$ ! Science Applications International Corporation
+$ ! Dayton, Ohio
+$ ! ake@dayton.saic.com
+$ !
+$ ! Updated for DVIPS 5.34
+$ ! August 1990
+$ !
+$ ! Ted Nieland
+$ ! Control Data Corporation
+$ ! DECUS TeX Collection Editor
+$ ! ted@nieland.dayton.oh.us
+$ !
+$ ! Updated for DVIPS 5.47, February 1991
+$ !
+$ ! Updated for DVIPS 5.474, March 1992
+$ ! Earle F. Ake
+$ !
+$! Updated for DVIPS 5.493, Sept 1992
+$! Added HAVE_GETCWD,ANSI in CC for
+$! dvips.c and resident.c
+$! Max Calvani
+$! calvani@astrpd.astro.it
+$!
+$! Updated for DVIPS 5.495, Oct. 1992
+$! calvani@astrpd.astro.it
+$!
+$! Updated for DVIPS 5.499, Jan. 1993
+$! Added FONTLIB support
+$! calvani@astrpd.astro.it
+$!
+$ on error then goto bad_exit
+$ on severe_error then goto bad_exit
+$ !
+$ TFMPATH = "TEX_FONTS:"
+$ PKPATH = "TEX_PKDIR:"
+$ VFPATH = "TEX_VFDIR:"
+$ HEADERPATH = "DVI_INPUTS:,TEX_INPUTS:,SYS$LOGIN:,SYS$DISK:[],"
+$ PLACEHEADER_DIR = "TEX_DISK:[TEX.INPUTS.DVIDRIVERS]"
+$ CONFIGPATH = "TEX_INPUTS:"
+$ FIGPATH = "TEX_INPUTS:,SYS$DISK:"
+$ TPIC = ",TPIC"
+$ EMTEX = ",EMTEX"
+$ FONTLIB = ",FONTLIB"
+$ VMS_ROOTED = ",VMS_ROOTED"
+$ TEXEXEPATH = "TEX_DISK:[TEX.EXE]"
+$ DEBUG = ",DEBUG"
+$ !
+$ write sys$output " "
+$ inquire/nop ANSWER "Have you read the file VMS_INSTALL.TXT [no]? "
+$ if ANSWER .eqs. "" then ANSWER = 0
+$ if ANSWER then goto read_instructions
+$ write sys$output " "
+$ write sys$output "Please read the VMS_INSTALL.TXT file, edit this command"
+$ write sys$output "file if necessary, and then execute this file again."
+$ write sys$output " "
+$ exit
+$ read_instructions:
+$ write sys$output " "
+$ inquire/nop ANSWER "Compile sources [no]? "
+$ if ANSWER .eqs. "" then ANSWER = 0
+$ if .not. ANSWER then goto linkstep
+$ !
+$ get_definitions:
+$ write sys$output " "
+$ !
+$ inquire/nop ANSWER "TFM path [''TFMPATH']? "
+$ if ANSWER .nes. "" then TFMPATH = ANSWER
+$ inquire/nop ANSWER "PK path [''PKPATH']? "
+$ if ANSWER .nes. "" then PKPATH = ANSWER
+$ inquire/nop ANSWER "VF path [''VFPATH']? "
+$ if ANSWER .nes. "" then VFPATH = ANSWER
+$ inquire/nop ANSWER "PostScript HEADER path [''HEADERPATH']? "
+$ if ANSWER .nes. "" then HEADERPATH = ANSWER
+$ inquire/nop ANSWER "PostScript CONFIG path [''CONFIGPATH'])? "
+$ if ANSWER .nes. "" then CONFIGPATH = ANSWER
+$ inquire/nop ANSWER "FIG path [''FIGPATH'])? "
+$ if ANSWER .nes. "" then FIGPATH = ANSWER
+$ inquire/nop ANSWER "Do you want TPIC support [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then TPIC = ""
+$ inquire/nop ANSWER "Do you want EMTEX support [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then EMTEX = ""
+$ inquire/nop ANSWER "Do you want FONTLIB support [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then FONTLIB = ""
+$ inquire/nop ANSWER "Do you want DEBUG support [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then DEBUG = ""
+$ inquire/nop ANSWER "Is ''PKPATH' a rooted directory [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then VMS_ROOTED = ""
+$ write sys$output " "
+$ write sys$output "dvips will be compiled with the following definitions;"
+$ write sys$output " "
+$ write sys$output "TFMPATH = ",TFMPATH
+$ write sys$output "PKPATH = ",PKPATH
+$ write sys$output "VFPATH = ",VFPATH
+$ write sys$output "HEADERPATH = ",HEADERPATH
+$ write sys$output "CONFIGPATH = ",CONFIGPATH
+$ write sys$output "FIGPATH = ",FIGPATH
+$ if TPIC .eqs. "" then -
+ write sys$output "TPIC support is not enabled."
+$ if TPIC .nes. "" then -
+ write sys$output "TPIC support is enabled."
+$ if FONTLIB .eqs. "" then -
+ write sys$output "FONTLIB support is not enabled."
+$ if FONTLIB .nes. "" then -
+ write sys$output "FONTLIB support is enabled."
+$ if EMTEX .eqs. "" then -
+ write sys$output "EMTEX support is not enabled."
+$ if EMTEX .nes. "" then -
+ write sys$output "EMTEX support is enabled."
+$ if DEBUG .eqs. "" then -
+ write sys$output "DEBUG support is not enabled."
+$ if DEBUG .nes. "" then -
+ write sys$output "DEBUG support is enabled."
+$ if VMS_ROOTED .eqs. "" then -
+ write sys$output PKPATH," is not a rooted directory."
+$ if VMS_ROOTED .nes. "" then -
+ write sys$output PKPATH," is a rooted directory."
+$ write sys$output " "
+$ inquire/nop ANSWER "Is this correct [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then goto get_definitions
+$ !
+$ if VMS_ROOTED .nes. "" then PKPATH = "''PKPATH'[%d]%f.PK"
+$ write sys$output " "
+$ write sys$output "Compiling sources ..."
+$ write sys$output " "
+$ write sys$output "afm2tfm.c ..."
+$ cc /define=(VMS'DEBUG') AFM2TFM.C
+$ write sys$output "color.c ..."
+$ cc /define=(VMS'DEBUG') COLOR.C
+$ write sys$output "dopage.c ..."
+$ cc /define=(VMS'DEBUG''EMTEX') DOPAGE.C
+$ write sys$output "dosection.c ..."
+$ cc /define=(VMS'DEBUG') DOSECTION.C
+$ write sys$output "dospecial.c ..."
+$ cc /define=(VMS'DEBUG''TPIC') DOSPECIAL.C
+$ write sys$output "download.c ..."
+$ cc /define=(VMS'DEBUG') DOWNLOAD.C
+$ write sys$output "dpicheck.c ..."
+$ cc /define=(VMS'DEBUG') DPICHECK.C
+$ write sys$output "drawps.c ..."
+$ cc /define=(VMS'DEBUG''TPIC') DRAWPS.C
+$ write sys$output "dviinput.c ..."
+$ cc /define=(VMS'DEBUG') DVIINPUT.C
+$ write sys$output "dvips.c ..."
+$ cc /define=(VMS'DEBUG',"TFMPATH=""''TFMPATH'""","PKPATH=""''PKPATH'""", -
+ "VFPATH=""''VFPATH'""","FIGPATH=""''FIGPATH'""",HAVE_GETCWD,ANSI, -
+ "CONFIGPATH=""''CONFIGPATH'""","HEADERPATH=""''HEADERPATH'""") DVIPS.C
+$ write sys$output "finclude.c ..."
+$ cc /DEF=(VMS'DEBUG') FINCLUDE.C
+$ write sys$output "flib.c ..."
+$ cc /DEF=(VMS'DEBUG''FONTLIB') FLIB.C
+$ write sys$output "fontdef.c ..."
+$ cc /define=(VMS'DEBUG') FONTDEF.C
+$ write sys$output "header.c ..."
+$ cc /define=(VMS'DEBUG') HEADER.C
+$ write sys$output "loadfont.c ..."
+$ cc /define=(VMS'DEBUG') LOADFONT.C
+$ write sys$output "makefont.c ..."
+$ cc /define=(VMS'DEBUG') MAKEFONT.C
+$ write sys$output "output.c ..."
+$ cc /define=(VMS'DEBUG',"HEADERPATH=""''HEADERPATH'""") OUTPUT.C
+$ write sys$output "papersiz.c ..."
+$ cc /define=(VMS'DEBUG') PAPERSIZ.C
+$ write sys$output "pprescan.c ..."
+$ cc /define=(VMS'DEBUG') PPRESCAN.C
+$ write sys$output "prescan.c ..."
+$ cc /define=(VMS'DEBUG') PRESCAN.C
+$ write sys$output "repack.c ..."
+$ cc /define=(VMS'DEBUG') REPACK.C
+$ write sys$output "resident.c ..."
+$ cc /define=(VMS'DEBUG',"CONFIGPATH=""''CONFIGPATH'""",HAVE_GETCWD,ANSI) -
+ RESIDENT.C
+$ write sys$output "scalewidth.c ..."
+$ cc /define=(VMS'DEBUG') SCALEWIDTH.C
+$ write sys$output "scanpage.c ..."
+$ cc /define=(VMS'DEBUG') SCANPAGE.C
+$ write sys$output "search.c ..."
+$ cc /define=(VMS'DEBUG') SEARCH.C
+$ write sys$output "skippage.c ..."
+$ cc /define=(VMS'DEBUG') SKIPPAGE.C
+$ write sys$output "squeeze.c ..."
+$ cc /define=(VMS'DEBUG') SQUEEZE.C
+$ write sys$output "tfmload.c ..."
+$ cc /define=(VMS'DEBUG') TFMLOAD.C
+$ write sys$output "unpack.c ..."
+$ cc /define=(VMS'DEBUG') UNPACK.C
+$ write sys$output "virtualfont.c ..."
+$ cc /define=(VMS'DEBUG') VIRTUALFONT.C
+$ write sys$output "bbox.c ..."
+$ cc /define=(VMS'DEBUG') BBOX.C
+$ write sys$output "emspecial.c ..."
+$ cc /define=(VMS'DEBUG''EMTEX') EMSPECIAL.C
+$ !
+$ ! vaxvms fixes some irritating problems with VAXC ( particulary
+$ ! fseek and ftell ). Thanks to Nelson Beebee at Utah.
+$ !
+$ write sys$output "vaxvms.c ..."
+$ cc /define=(VMS'DEBUG') [.VMS]VAXVMS.C
+$ !
+$ linkstep:
+$ write sys$output " "
+$ write sys$output "Linking dvips ..."
+$ link /exe=dvips dvips,dopage,dosection,dospecial,download,dpicheck,drawps, -
+ dviinput,header,finclude,flib,fontdef,loadfont,tfmload,prescan, -
+ scanpage,skippage,output,scalewidth,resident,search,unpack, -
+ makefont,repack,virtualfont,vaxvms,color,papersiz,pprescan, -
+ bbox,emspecial,[.vms]vaxcrtl.opt/opt
+$ write sys$output " "
+$ write sys$output "Linking squeeze ..."
+$ link /exe=squeeze squeeze,vaxvms,[.vms]vaxcrtl.opt/opt
+$ write sys$output " "
+$ write sys$output "Linking afm2tfm ..."
+$ write sys$output " "
+$ link /exe=afm2tfm afm2tfm,vaxvms,[.vms]vaxcrtl.opt/opt
+$ !
+$ inquire/nop ANSWER -
+ "Do you wish to compress the PostScript prologue files [no]? "
+$ if ANSWER .eqs. "" then ANSWER = 0
+$ if .not. ANSWER then goto copy_prologue
+$ squeeze :== $'f$environment("DEFAULT")'squeeze.exe
+$ write sys$output " "
+$ set verify
+$ squeeze COLOR.LPRO COLOR.PRO
+$ squeeze FINCLUDE.LPRO FINCLUDE.PRO
+$ squeeze TEX.LPRO TEX.PRO
+$ squeeze TEXPS.LPRO TEXPS.PRO
+$ squeeze SPECIAL.LPRO SPECIAL.PRO
+$ verify = 'f$verify(0)
+$ write sys$output " "
+$ copy_prologue:
+$ FIRSTPATH = PLACEHEADER_DIR
+$ inquire/nop ANSWER -
+ "Do you wish to copy the prologue files to ''FIRSTPATH' [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then goto copy_config
+$ write sys$output " "
+$ set verify
+$ copy COLOR.PRO 'FIRSTPATH'COLOR.PRO
+$ copy FINCLUDE.PRO 'FIRSTPATH'FINCLUDE.PRO
+$ copy TEX.PRO 'FIRSTPATH'TEX.PRO
+$ copy TEXPS.PRO 'FIRSTPATH'TEXPS.PRO
+$ copy SPECIAL.PRO 'FIRSTPATH'SPECIAL.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'COLOR.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'FINCLUDE.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'TEX.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'SPECIAL.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'TEXPS.PRO
+$ verify = 'f$verify(0)
+$ write sys$output " "
+$ copy_config:
+$ FIRSTPATH = PLACEHEADER_DIR
+$ inquire/nop ANSWER -
+ "Do you wish to copy the CONFIG.PS file to ''FIRSTPATH' [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then goto copy_image
+$ write sys$output " "
+$ set verify
+$ copy CONFIG.PS 'FIRSTPATH'CONFIG.PS
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'CONFIG.PS
+$ verify = 'f$verify(0)
+$ write sys$output " "
+$ copy_image:
+$ inquire/nop ANSWER "Do you wish to copy DVIPS.EXE to the TeX area [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then goto done
+$ inquire/nop ANSWER "TeX image area [''TEXEXEPATH']? "
+$ if ANSWER .nes. "" THEN TEXEXEPATH = ANSWER
+$ write sys$output " "
+$ set verify
+$ copy dvips.exe 'TEXEXEPATH'
+$ set protect=(s:rwed,o:rwed,g:re,w:re) 'TEXEXEPATH'dvips.exe
+$ verify = 'f$verify(0)
+$ write sys$output " "
+$ done:
+$ write sys$output " "
+$ write sys$output "Be sure to add dvips to your CLI by using the SET "
+$ write sys$output "COMMAND syntax and do the other steps which are"
+$ write sys$output "necessary to finish up the installation of dvips."
+$ write sys$output " "
+$ goto good_exit
+$ bad_exit:
+$ write sys$output " "
+$ write sys$output "Something's wrong here. You might want to take a look"
+$ write sys$output "at the offending code or command and start over."
+$ write sys$output " "
+$ exit
+$ good_exit:
+$ write sys$output "Done."
+$ write sys$output " "
+$ exit
+$! --------------------- EOF -------------------------------------
diff --git a/Build/source/texk/dvipsk/vms/newmake.com b/Build/source/texk/dvipsk/vms/newmake.com
new file mode 100644
index 00000000000..e137caf39c7
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/newmake.com
@@ -0,0 +1,387 @@
+$! EJG - 02-Jul-1996 - Made from Make.com
+$! PWD - 03-Mar-1997 - Add t1part.c
+$! Changes:
+$!
+$! Added HPS define to compilation.
+$! Skip all the questions at the beginning and go straight to compile.
+$! Reorder modules (bbox and emspecial) to be in alphabetical order
+$! during compile.
+$! Add hps.c to compile.
+$! Add hps to link.
+$! Remove option file from links.
+$! Add /standard=vaxc to all cc commands
+$! Remove FONTLIB (if included, need to define FLINAME and FLIPATH, but
+$! before I do this I need to find out what a font library is!)
+$!
+$! PWD: add t1part.c to compile and link
+$! change TEX$POSTSCRIPT to TEX_POSTSCRIPT
+$ !
+$ ! dvips for VAX/VMS
+$ !
+$ !
+$ ! Use to compile and link dvips with VAXC under VMS. Before using
+$ ! this command file you must set the following definitions according
+$ ! to your own environment;
+$ !
+$ ! TFMPATH - The directory where TFM files live ( needed for
+$ ! the compilation of dvips.c ). Be sure and include
+$ ! the needed directory separator in the path ( i.e.
+$ ! TEX_FONTS: )
+$ ! PKPATH - The directory where PK files live ( needed for the
+$ ! compilation of dvips.c ). You should also decided
+$ ! whether you need VMS_ROOTED ( needed for the
+$ ! compilation of loadfont.c ) defined so that
+$ ! PKPATH will be interpreted as a rooted directory
+$ ! under VMS. Be sure and include the needed directory
+$ ! separator in the path ( i.e. TEX_FONTS: ).
+$ ! HEADERPATH - The directory where the PostScript prologue file
+$ ! live ( needed for the compilation of output.c &
+$ ! dvips.c). Be sure and include a trailing comma in
+$ ! your definition of the header path as dvips uses this
+$ ! definition as a path for both PostScript prologue
+$ ! files and files which are included with \special
+$ ! options. This definition should be a comma
+$ ! separated list of directories where dvips will
+$ ! look for a specified file. As an example;
+$ !
+$ ! "HEADERPATH=""TEX_POSTSCRIPT:,SYS$LOGIN:,"""
+$ !
+$ ! to look first in TEX_POSTSCRIPT:, then in SYS$LOGIN:,
+$ ! and finally in the current default directory.
+$ ! CONFIGPATH - The directory where the configuration file lives
+$ ! ( needed for the compilation of resident.c ). Be
+$ ! sure and include the needed directory separator
+$ ! in the path ( i.e. TEX_POSTSCRIPT: ).
+$ !
+$ ! FIGPATH - Where the .ps and .eps files are
+$ !
+$ ! After dvips has been compiled and linked the user will be given the
+$ ! option of compressing the PostScript prologue files which are used
+$ ! by dvips and copying the resultant prologue files to the specifed
+$ ! HEADERPATH. The user will also be given the option of copying the
+$ ! dvips image file to the area where TeX related images are stored.
+$ ! Answering "yes" to either of these options should be done only if
+$ ! the user has write priviledges to the directories which are specified.
+$ !
+$ ! Command file by: Robert Schneider
+$ ! Department of Petroleum Engineering
+$ ! The University of Texas at Austin
+$ !
+$ ! October 1989
+$ !
+$ ! Updates by: Earle Ake
+$ ! Science Applications International Corporation
+$ ! Dayton, Ohio
+$ ! ake@dayton.saic.com
+$ !
+$ ! Updated for DVIPS 5.34
+$ ! August 1990
+$ !
+$ ! Ted Nieland
+$ ! Control Data Corporation
+$ ! DECUS TeX Collection Editor
+$ ! ted@nieland.dayton.oh.us
+$ !
+$ ! Updated for DVIPS 5.47, February 1991
+$ !
+$ ! Updated for DVIPS 5.474, March 1992
+$ ! Earle F. Ake
+$ !
+$! Updated for DVIPS 5.493, Sept 1992
+$! Added HAVE_GETCWD,ANSI in CC for
+$! dvips.c and resident.c
+$! Max Calvani
+$! calvani@astrpd.astro.it
+$!
+$! Updated for DVIPS 5.495, Oct. 1992
+$! calvani@astrpd.astro.it
+$!
+$! Updated for DVIPS 5.499, Jan. 1993
+$! Added FONTLIB support
+$! calvani@astrpd.astro.it
+$!
+$ on error then goto bad_exit
+$ on severe_error then goto bad_exit
+$ !
+$ TFMPATH = "TEX_FONTS:"
+$ PKPATH = "TEX_PKDIR:"
+$ VFPATH = "TEX_VFDIR:"
+$ HEADERPATH = "TEX_POSTSCRIPT:,TEX_INPUTS:,SYS$LOGIN:,SYS$DISK:[]," ! PWD
+$ PLACEHEADER_DIR = "TEX_POSTSCRIPT:,TEX_ROOT:[TEX.DVIDRIVERS]" ! Changed by PWD
+$ CONFIGPATH = "TEX_POSTSCRIPT:" !Changed by PWD
+$ FIGPATH = "TEX_INPUTS:,SYS$DISK:"
+$ TPIC = ",TPIC"
+$ EMTEX = ",EMTEX"
+$! FONTLIB = ",FONTLIB" !EJG 02-Jul-1996
+$ FONTLIB = "" !EJG 02-Jul-1996
+$ VMS_ROOTED = ",VMS_ROOTED"
+$ TEXEXEPATH = "TEX_DISK:[TEX.EXE]"
+$ DEBUG = ",DEBUG"
+$ HPS = ",HPS" !EJG 02-Jul-1996
+$ GOTO DOCOMPILE !EJG 02-Jul-1996
+$ !
+$ write sys$output " "
+$ inquire/nop ANSWER "Have you read the file VMS_INSTALL.TXT [no]? "
+$ if ANSWER .eqs. "" then ANSWER = 0
+$ if ANSWER then goto read_instructions
+$ write sys$output " "
+$ write sys$output "Please read the VMS_INSTALL.TXT file, edit this command"
+$ write sys$output "file if necessary, and then execute this file again."
+$ write sys$output " "
+$ exit
+$ read_instructions:
+$ write sys$output " "
+$ inquire/nop ANSWER "Compile sources [no]? "
+$ if ANSWER .eqs. "" then ANSWER = 0
+$ if .not. ANSWER then goto linkstep
+$ !
+$ get_definitions:
+$ write sys$output " "
+$ !
+$ inquire/nop ANSWER "TFM path [''TFMPATH']? "
+$ if ANSWER .nes. "" then TFMPATH = ANSWER
+$ inquire/nop ANSWER "PK path [''PKPATH']? "
+$ if ANSWER .nes. "" then PKPATH = ANSWER
+$ inquire/nop ANSWER "VF path [''VFPATH']? "
+$ if ANSWER .nes. "" then VFPATH = ANSWER
+$ inquire/nop ANSWER "PostScript HEADER path [''HEADERPATH']? "
+$ if ANSWER .nes. "" then HEADERPATH = ANSWER
+$ inquire/nop ANSWER "PostScript CONFIG path [''CONFIGPATH'])? "
+$ if ANSWER .nes. "" then CONFIGPATH = ANSWER
+$ inquire/nop ANSWER "FIG path [''FIGPATH'])? "
+$ if ANSWER .nes. "" then FIGPATH = ANSWER
+$ inquire/nop ANSWER "Do you want TPIC support [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then TPIC = ""
+$ inquire/nop ANSWER "Do you want EMTEX support [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then EMTEX = ""
+$ inquire/nop ANSWER "Do you want FONTLIB support [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then FONTLIB = ""
+$ inquire/nop ANSWER "Do you want DEBUG support [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then DEBUG = ""
+$ inquire/nop ANSWER "Is ''PKPATH' a rooted directory [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then VMS_ROOTED = ""
+$ write sys$output " "
+$ write sys$output "dvips will be compiled with the following definitions;"
+$ write sys$output " "
+$ write sys$output "TFMPATH = ",TFMPATH
+$ write sys$output "PKPATH = ",PKPATH
+$ write sys$output "VFPATH = ",VFPATH
+$ write sys$output "HEADERPATH = ",HEADERPATH
+$ write sys$output "CONFIGPATH = ",CONFIGPATH
+$ write sys$output "FIGPATH = ",FIGPATH
+$ if TPIC .eqs. "" then -
+ write sys$output "TPIC support is not enabled."
+$ if TPIC .nes. "" then -
+ write sys$output "TPIC support is enabled."
+$ if FONTLIB .eqs. "" then -
+ write sys$output "FONTLIB support is not enabled."
+$ if FONTLIB .nes. "" then -
+ write sys$output "FONTLIB support is enabled."
+$ if EMTEX .eqs. "" then -
+ write sys$output "EMTEX support is not enabled."
+$ if EMTEX .nes. "" then -
+ write sys$output "EMTEX support is enabled."
+$ if DEBUG .eqs. "" then -
+ write sys$output "DEBUG support is not enabled."
+$ if DEBUG .nes. "" then -
+ write sys$output "DEBUG support is enabled."
+$ if VMS_ROOTED .eqs. "" then -
+ write sys$output PKPATH," is not a rooted directory."
+$ if VMS_ROOTED .nes. "" then -
+ write sys$output PKPATH," is a rooted directory."
+$ write sys$output " "
+$ inquire/nop ANSWER "Is this correct [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then goto get_definitions
+$ !
+$DOCOMPILE: !EJG 02-Jul-1996
+$ if VMS_ROOTED .nes. "" then PKPATH = "''PKPATH'[%d]%f.PK"
+$ write sys$output " "
+$ write sys$output "Compiling sources ..."
+$ write sys$output " "
+$ write sys$output "afm2tfm.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') AFM2TFM.C
+$ write sys$output "bbox.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') BBOX.C
+$ write sys$output "color.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') COLOR.C
+$ write sys$output "dopage.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS''EMTEX') DOPAGE.C
+$ write sys$output "dosection.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') DOSECTION.C
+$ write sys$output "dospecial.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS''TPIC') DOSPECIAL.C
+$ write sys$output "download.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') DOWNLOAD.C
+$ write sys$output "dpicheck.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') DPICHECK.C
+$ write sys$output "drawps.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS''TPIC') DRAWPS.C
+$ write sys$output "dviinput.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') DVIINPUT.C
+$ write sys$output "dvips.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS',"TFMPATH=""''TFMPATH'""","PKPATH=""''PKPATH'""", -
+ "VFPATH=""''VFPATH'""","FIGPATH=""''FIGPATH'""",HAVE_GETCWD,ANSI, -
+ "CONFIGPATH=""''CONFIGPATH'""","HEADERPATH=""''HEADERPATH'""") DVIPS.C
+$ write sys$output "emspecial.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS''EMTEX') EMSPECIAL.C
+$ write sys$output "finclude.c ..."
+$ cc/standard=vaxc /DEF=(VMS'DEBUG''HPS') FINCLUDE.C
+$ write sys$output "flib.c ..."
+$ cc/standard=vaxc /DEF=(VMS'DEBUG''HPS''FONTLIB') FLIB.C
+$ write sys$output "fontdef.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') FONTDEF.C
+$ write sys$output "header.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') HEADER.C
+$ write sys$output "hps.c ..." !EJG 02-Jul-1996
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') HPS.C !EJG 02-Jul-1996
+$ write sys$output "loadfont.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') LOADFONT.C
+$ write sys$output "makefont.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') MAKEFONT.C
+$ write sys$output "output.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS',"HEADERPATH=""''HEADERPATH'""") OUTPUT.C
+$ write sys$output "papersiz.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') PAPERSIZ.C
+$ write sys$output "pprescan.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') PPRESCAN.C
+$ write sys$output "prescan.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') PRESCAN.C
+$ write sys$output "repack.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') REPACK.C
+$ write sys$output "resident.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS',"CONFIGPATH=""''CONFIGPATH'""",HAVE_GETCWD,ANSI) -
+ RESIDENT.C
+$ write sys$output "scalewidth.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') SCALEWIDTH.C
+$ write sys$output "scanpage.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') SCANPAGE.C
+$ write sys$output "search.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') SEARCH.C
+$ write sys$output "skippage.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') SKIPPAGE.C
+$ write sys$output "squeeze.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') SQUEEZE.C
+$ write sys$output "t1part.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') T1PART.C
+$ write sys$output "tfmload.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') TFMLOAD.C
+$ write sys$output "unpack.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') UNPACK.C
+$ write sys$output "virtualfont.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') VIRTUALFONT.C
+$ !
+$ ! vaxvms fixes some irritating problems with VAXC ( particulary
+$ ! fseek and ftell ). Thanks to Nelson Beebee at Utah.
+$ !
+$ write sys$output "vaxvms.c ..."
+$ cc/standard=vaxc /define=(VMS'DEBUG''HPS') [.VMS]VAXVMS.C
+$ !
+$ linkstep:
+$ write sys$output " "
+$ write sys$output "Linking dvips ..."
+$ link /exe=dvips dvips,dopage,dosection,dospecial,download,dpicheck,drawps, -
+ t1part, -
+ dviinput,header,hps,finclude,flib,fontdef,loadfont,tfmload,prescan, -
+ scanpage,skippage,output,scalewidth,resident,search,unpack, -
+ makefont,repack,virtualfont,vaxvms,color,papersiz,pprescan, -
+ bbox,emspecial !EJG 02-Jul-1996
+$ write sys$output " "
+$ write sys$output "Linking squeeze ..."
+$ link /exe=squeeze squeeze,vaxvms !EJG 02-Jul-1996
+$ write sys$output " "
+$ write sys$output "Linking afm2tfm ..."
+$ write sys$output " "
+$ link /exe=afm2tfm afm2tfm,vaxvms !EJG 02-Jul-1996
+$ exit !EJG 02-Jul-1996
+$ !
+$ inquire/nop ANSWER -
+ "Do you wish to compress the PostScript prologue files [no]? "
+$ if ANSWER .eqs. "" then ANSWER = 0
+$ if .not. ANSWER then goto copy_prologue
+$ squeeze :== $'f$environment("DEFAULT")'squeeze.exe
+$ write sys$output " "
+$ set verify
+$ squeeze COLOR.LPRO COLOR.PRO
+$ squeeze FINCLUDE.LPRO FINCLUDE.PRO
+$ squeeze TEX.LPRO TEX.PRO
+$ squeeze TEXC.LPRO TEXC.PRO
+$ squeeze TEXPS.LPRO TEXPS.PRO
+$ squeeze SPECIAL.LPRO SPECIAL.PRO
+$ squeeze CROP.LPRO CROP.PRO
+$ squeeze HPS.LPRO HPS.PRO
+$ verify = 'f$verify(0)
+$ write sys$output " "
+$ copy_prologue:
+$ FIRSTPATH = PLACEHEADER_DIR
+$ inquire/nop ANSWER -
+ "Do you wish to copy the prologue files to ''FIRSTPATH' [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then goto copy_config
+$ write sys$output " "
+$ set verify
+$ copy COLOR.PRO 'FIRSTPATH'COLOR.PRO
+$ copy FINCLUDE.PRO 'FIRSTPATH'FINCLUDE.PRO
+$ copy TEX.PRO 'FIRSTPATH'TEX.PRO
+$ copy TEXC.PRO 'FIRSTPATH'TEXC.PRO
+$ copy TEXPS.PRO 'FIRSTPATH'TEXPS.PRO
+$ copy SPECIAL.PRO 'FIRSTPATH'SPECIAL.PRO
+$ copy HPS.PRO 'FIRSTPATH'HPS.PRO
+$ copy CROP.PRO 'FIRSTPATH'CROP.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'COLOR.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'FINCLUDE.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'TEX.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'TEXC.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'SPECIAL.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'TEXPS.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'HPS.PRO
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'CROP.PRO
+$ verify = 'f$verify(0)
+$ write sys$output " "
+$ copy_config:
+$ FIRSTPATH = PLACEHEADER_DIR
+$ inquire/nop ANSWER -
+ "Do you wish to copy the CONFIG.PS file to ''FIRSTPATH' [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then goto copy_image
+$ write sys$output " "
+$ set verify
+$ copy CONFIG.PS 'FIRSTPATH'CONFIG.PS
+$ set protection=(s:rwed,o:rwed,g:re,w:re) 'FIRSTPATH'CONFIG.PS
+$ verify = 'f$verify(0)
+$ write sys$output " "
+$ copy_image:
+$ inquire/nop ANSWER "Do you wish to copy DVIPS.EXE to the TeX area [yes]? "
+$ if ANSWER .eqs. "" then ANSWER = 1
+$ if .not. ANSWER then goto done
+$ inquire/nop ANSWER "TeX image area [''TEXEXEPATH']? "
+$ if ANSWER .nes. "" THEN TEXEXEPATH = ANSWER
+$ write sys$output " "
+$ set verify
+$ copy dvips.exe 'TEXEXEPATH'
+$ set protect=(s:rwed,o:rwed,g:re,w:re) 'TEXEXEPATH'dvips.exe
+$ verify = 'f$verify(0)
+$ write sys$output " "
+$ done:
+$ write sys$output " "
+$ write sys$output "Be sure to add dvips to your CLI by using the SET "
+$ write sys$output "COMMAND syntax and do the other steps which are"
+$ write sys$output "necessary to finish up the installation of dvips."
+$ write sys$output " "
+$ goto good_exit
+$ bad_exit:
+$ write sys$output " "
+$ write sys$output "Something's wrong here. You might want to take a look"
+$ write sys$output "at the offending code or command and start over."
+$ write sys$output " "
+$ exit
+$ good_exit:
+$ write sys$output "Done."
+$ write sys$output " "
+$ exit
+$! --------------------- EOF -------------------------------------
diff --git a/Build/source/texk/dvipsk/vms/texc_scr.com b/Build/source/texk/dvipsk/vms/texc_scr.com
new file mode 100644
index 00000000000..40519a41e2d
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/texc_scr.com
@@ -0,0 +1,104 @@
+$!----------------------------------------------------------------------
+$!
+$! TEXC_SCR.COM
+$!
+$! Convert TEX.LPRO to TEXC.LPRO
+$! This command file replaces the TexC.script file, intended for Unix OS,
+$! with its TPU equivalent.
+$!
+$! Tony McGrath 5-OCT-1990
+$! Dept. of Physics, Monash University, Victoria, Australia 3168
+$!
+$!----------------------------------------------------------------------
+$!
+$ Edit/TPU/NoSection/NoDisplay/Command=SYS$Input/Output=TEXC.LPRO TEX.LPRO
+!
+PROCEDURE texc$script
+
+LOCAL string_1, string_2, string_3, a_range, a_line, two_chars;
+
+!-----------------------------------------------------------------------
+! Won't bother with CREATE_ARRAY, try to keep the TPU as basic as possible
+! so it works on older versions of VMS.
+!-----------------------------------------------------------------------
+string_1 := "% begin code for uncompressed fonts only";
+string_2 := "% end code for uncompressed fonts only";
+string_3 := "% end of code for unpacking compressed fonts";
+!-----------------------------------------------------------------------
+! Search for the first of the 3 special strings.
+! Exit if we can't find it.
+!-----------------------------------------------------------------------
+a_range := search( string_1, forward);
+if( a_range = 0)
+then
+ message( "TEXC-F-NoString, Couldn't locate first string, Aborting");
+ return(0);
+endif;
+!-----------------------------------------------------------------------
+! Go to the start of the first string.
+!-----------------------------------------------------------------------
+position( beginning_of( a_range));
+!-----------------------------------------------------------------------
+! Search for the second of the 3 special strings.
+! Exit if we can't find it.
+!-----------------------------------------------------------------------
+a_range := search( string_2, forward);
+if( a_range = 0)
+then
+ message( "TEXC-F-NoString, Couldn't locate second string, Aborting");
+ return(0);
+endif;
+!-----------------------------------------------------------------------
+! Then start deleting lines until the second special string is found.
+!-----------------------------------------------------------------------
+loop
+ a_line := erase_line;
+ exitif a_line = string_2;
+endloop;
+!-----------------------------------------------------------------------
+! Search for the third of the 3 special strings.
+! Exit if we can't find it.
+!-----------------------------------------------------------------------
+a_range := search( string_3, forward);
+if( a_range = 0)
+then
+ message( "TEXC-F-NoString, Couldn't locate third string, Aborting");
+ return(0);
+endif;
+!-----------------------------------------------------------------------
+! Again start looping, deleting the first 2 characters from each line
+! until the 3rd special string is found, making sure that the first two
+! characters are "% "
+!-----------------------------------------------------------------------
+loop
+ two_chars := erase_character(2);
+ if two_chars <> "% "
+ then
+ message( "TEXC-F-NoComment, First 2 chars not correct, Aborting");
+ return(0);
+ endif;
+ exitif current_line = string_3;
+ move_vertical(1);
+endloop;
+!-----------------------------------------------------------------------
+! Assume all is well, return TRUE.
+!-----------------------------------------------------------------------
+return(1);
+
+ENDPROCEDURE
+!-----------------------------------------------------------------------
+! Initialize the main buffer.
+!-----------------------------------------------------------------------
+f:=Get_Info(Command_Line,"File_Name");
+b:=Create_Buffer("",f);
+o:=Get_Info(Command_Line,"Output_File");
+Set (Output_File,b,o);
+Position (Beginning_of(b));
+!
+if texc$script
+then
+ Exit;
+else
+ message( "TEXC-W-NoSave, current buffer not saved, errors were encountered");
+ Quit;
+endif;
diff --git a/Build/source/texk/dvipsk/vms/vaxcrtl.opt b/Build/source/texk/dvipsk/vms/vaxcrtl.opt
new file mode 100644
index 00000000000..a01884977fe
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/vaxcrtl.opt
@@ -0,0 +1 @@
+sys$share:vaxcrtl/share
diff --git a/Build/source/texk/dvipsk/vms/vaxvms.c b/Build/source/texk/dvipsk/vms/vaxvms.c
new file mode 100644
index 00000000000..d13e362b951
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/vaxvms.c
@@ -0,0 +1,470 @@
+/***********************************************************************
+This file provides alternative functions for several VMS VMS C library
+routines which either unacceptable, or incorrect, implementations. They
+have been developed and tested under VMS Version 4.4, but indications
+are that they apply to earlier versions, back to 3.2 at least. They
+should be retested with each new release of VMS C.
+
+Contents:
+ EXIT
+ FSEEK
+ FTELL
+ GETCHAR
+ GETENV
+ READ
+ UNGETC
+ getlogin
+ qsort
+ system
+ tell
+ unlink
+
+The VAX VMS file system record structure has unfortunate consequences
+for random access files.
+
+By default, text files written by most system utilities, and languages
+other than C, have a variable length record format, in which a 16-bit
+character count is aligned on an even-byte boundary in the disk block
+b(always 512 bytes in VMS, independent of record and file formats),
+followed by <count> bytes of data. Binary files, such as .EXE, .OBJ,
+and TeX .DVI and font files, all use a 512-byte fixed record format
+which has no explicit length field. No file byte count is stored;
+instead, the block count, and the offset of the last data byte in the
+last block are recorded in the file header (do ``DUMP/HEADER filespec''
+to see it). For binary files with fixed-length records, the last block
+is normally assumed to be full, and consequently, file transfer of
+binary data from other machines via Kermit, FTP, or DCL COPY from ANSI
+tapes, generally fails because the input file length is not a multiple
+of 512.
+
+This record organization may be contrasted with the STREAM, STREAM_LF,
+and STREAM_CR organizations supported from Version 4.0; in these, disk
+blocks contain a continuous byte stream in which nothing, or LF, or CR,
+is recognized as a record terminator. These formats are similar to the
+Unix and TOPS-20 file system formats which also use continuous byte
+streams.
+
+For C, this means that a program operating on a file in record format
+cannot count input characters and expect that count to be the same value
+as the offset parameter passed to fseek(), which numerous C programs
+assume to be the case. The draft ANSI C standard, and Harbison and
+Steele's ``C Reference Manual'', emphasize that only values returned by
+ftell() should be used as arguments to fseek(), allowing the program to
+return to a position previously read or written. UNFORTUNATELY, VMS C
+ftell() DOES NOT RETURN A CORRECT OFFSET VALUE FOR RECORD FILES.
+Instead, for record files, it returns the byte offset of the start of
+the current record, no matter where in that record the current position
+may be. This misbehavior is completely unnecessary, since the
+replacements below perform correctly, and are written entirely in C.
+
+Another problem is that ungetc(char c, FILE* fp) is unreliable. VMS C
+implements characters as signed 8-bit integers (so do many other C
+implementations). fgetc(FILE* fp) returns an int, not a char, whose
+value is EOF (-1) in the event of end-of-file; however, this value will
+also be returned for a character 0xFF, so it is essential to use
+feof(FILE *fp) to test for a true end-of-file condition when EOF is
+returned. ungetc() checks the sign of its argument c, and if it is
+negative (which it will be for 128 of the 256 signed bytes), REFUSES TO
+PUT IT BACK IN THE INPUT STREAM, on the assumption that c is really EOF.
+This too can be fixed; ungetc() should only do nothing if feof()
+indicates a true end-of-file condition. The overhead of this is
+trivial, since feof() is actually implemented as a macro which does
+nothing more than a logical AND and compare-with-zero.
+
+getchar() waits for a <CR> to be typed when stdin is a terminal; the
+replacement vms_getchar() remedies this.
+
+Undoubtedly other deficiencies in VMS C will reveal themselves.
+
+VMS read() returns only a single disk block on each call. Its
+replacment, vms_read(), will return the requested number of bytes, if
+possible.
+
+There are also a few Unix standard functions which are unimplemented.
+qsort() is not provided. getlogin() and unlink() have VMS equivalents
+provided below. tell() is considered obsolete, since its functionality
+is available from lseek(), but it is still seen in a few programs, so is
+provided below. getenv() fails if the name contains a colon; its
+replacement allows the colon.
+
+In the interest of minimal source perturbation, replacements for VMS
+functions are given the same names, but prefixed "vms_". For
+readability, the original names are preserved, but are converted to
+upper-case:
+
+ #define FTELL vms_ftell
+ #define FSEEK vms_fseek
+ #define GETCHAR vms_getchar
+ #define GETENV vms_getenv
+ #define UNGETC vms_ungetc
+
+These are only defined to work correctly for fixed length 512-byte
+records, and no check is made that the file has that organization (it is
+possible, but not without expensive calls to fstat(), or access to
+internal library structures).
+
+[02-Apr-87] -- Nelson H.F. Beebe, University of Utah Center for
+ Scientific Computing
+***********************************************************************/
+
+#define EXIT vms_exit
+#define FTELL vms_ftell
+#define FSEEK vms_fseek
+#define GETENV vms_getenv
+#define GETCHAR vms_getchar
+#define READ vms_read
+#define UNGETC vms_ungetc
+
+#include <stdio.h>
+#include <types.h>
+#include <ctype.h>
+#include <stat.h>
+#include <descrip.h>
+#include <iodef.h> /* need for vms_getchar() */
+#include <ssdef.h>
+
+#ifdef __GNUC__
+#include <stdlib.h>
+#endif
+
+void EXIT(int code);
+long FTELL(FILE *fp);
+long FSEEK(FILE *fp, long n, long dir);
+long UNGETC(char c, FILE *fp);
+int GETCHAR(void);
+int READ(int file_desc, char *buffer, int nbytes);
+char *GETENV(char *name);
+char *getlogin(void);
+long tell(int handle);
+int unlink(char *filename);
+
+/**********************************************************************/
+/*-->EXIT*/
+
+void
+vms_exit(int code)
+{
+ switch (code)
+ {
+ case 0:
+ exit(1); /* success */
+ break;
+
+ default:
+ exit(2); /* error */
+ break;
+ }
+}
+
+
+/**********************************************************************/
+/*-->FSEEK*/
+
+/* VMS fseek() and ftell() on fixed-length record files work correctly
+only at block boundaries. This replacement code patches in the offset
+within the block. Directions from current position and from
+end-of-file are converted to absolute positions, and then the code for
+that case is invoked. */
+
+long
+FSEEK(FILE *fp, long n, long dir)
+{
+ long k,m,pos,val,oldpos;
+ struct stat buffer;
+
+ for (;;) /* loops only once or twice */
+ {
+ switch (dir)
+ {
+ case 0: /* from BOF */
+ oldpos = FTELL(fp); /* get current byte offset in file */
+ k = n & 511; /* offset in 512-byte block */
+ m = n >> 9; /* relative block number in file */
+ if (((*fp)->_cnt) && ((oldpos >> 9) == m)) /* still in same block */
+ {
+ val = 0; /* success */
+ (*fp)->_ptr = ((*fp)->_base) + k; /* reset pointers to requested byte */
+ (*fp)->_cnt = 512 - k;
+ }
+ else
+ {
+ val = fseek(fp,m << 9,0); /* move to start of requested 512-byte block */
+ if (val == 0) /* success */
+ {
+ (*fp)->_cnt = 0; /* indicate empty buffer */
+ (void)fgetc(fp); /* force refill of buffer */
+ (*fp)->_ptr = ((*fp)->_base) + k; /* reset pointers to requested byte */
+ (*fp)->_cnt = 512 - k;
+ }
+ }
+ return(val);
+
+ case 1: /* from current pos */
+ pos = FTELL(fp);
+ if (pos == EOF) /* then error */
+ return (EOF);
+ n += pos;
+ dir = 0;
+ break; /* go do case 0 */
+
+ case 2: /* from EOF */
+ val = fstat(fileno(fp),&buffer);
+ if (val == EOF) /* then error */
+ return (EOF);
+ n += buffer.st_size - 1; /* convert filesize to offset and */
+ /* add to requested offset */
+ dir = 0;
+ break; /* go do case 0 */
+
+ default: /* illegal direction parameter */
+ return (EOF);
+ }
+ }
+}
+
+/**********************************************************************/
+/*-->FTELL*/
+
+/* With fixed-length record files, ftell() returns the offset of the
+start of block. To get the true position, this must be biased by
+the offset within the block. */
+
+long
+FTELL(FILE *fp)
+{
+ char c;
+ long pos;
+ long val;
+ if ((*fp)->_cnt == 0) /* buffer empty--force refill */
+ {
+ c = fgetc(fp);
+ val = UNGETC(c,fp);
+ if (val != c)
+ return (EOF); /* should never happen */
+ }
+ pos = ftell(fp); /* this returns multiple of 512 (start of block) */
+ if (pos >= 0) /* then success--patch in offset in block */
+ pos += ((*fp)->_ptr) - ((*fp)->_base);
+ return (pos);
+}
+
+/**********************************************************************/
+/*-->GETCHAR*/
+
+static int tt_channel = -1; /* terminal channel for image QIO's */
+
+#define FAILED(status) (~(status) & 1) /* failure if LSB is 0 */
+
+int
+GETCHAR()
+{
+ int ret_char; /* character returned */
+ int status; /* system service status */
+ static $DESCRIPTOR(sys_in,"TT:");
+
+ if (tt_channel == -1) /* then first call--assign channel */
+ {
+ status = sys$assign(&sys_in,&tt_channel,0,0);
+ if (FAILED(status))
+ lib$stop(status);
+ }
+ ret_char = 0;
+ status = sys$qiow(0,tt_channel,IO$_TTYREADALL | IO$M_NOECHO,0,0,0,
+ &ret_char,1,0,0,0,0);
+ if (FAILED(status))
+ lib$stop(status);
+
+ return (ret_char);
+}
+
+/**********************************************************************/
+/*-->READ*/
+int
+READ(register int file_desc,register char *buffer,register int nbytes)
+{
+ register int ngot;
+ register int left;
+
+ for ((left = nbytes, ngot = 0); left > 0; /* NOOP */)
+ {
+ ngot = read(file_desc,buffer,left);
+ if (ngot < 0)
+ return (-1); /* error occurred */
+ buffer += ngot;
+ left -= ngot;
+ }
+ return(nbytes-left);
+}
+
+/**********************************************************************/
+/*-->UNGETC*/
+long
+UNGETC(char c, FILE *fp) /* VMS ungetc() is a no-op if c < 0 */
+{ /* (which is half the time!) */
+
+ if ((c == EOF) && feof(fp))
+ return (EOF); /* do nothing at true end-of-file */
+ else if ((*fp)->_cnt >= 512)/* buffer full--no fgetc() done in this block!*/
+ return (EOF); /* must be user error if this happens */
+ else /* put the character back in the buffer */
+ {
+ (*fp)->_cnt++; /* increase count of characters left */
+ (*fp)->_ptr--; /* backup pointer to next available char */
+ *((*fp)->_ptr) = c; /* save the character */
+ return (c); /* and return it */
+ }
+}
+
+/**********************************************************************/
+/*-->getenv*/
+char*
+GETENV(char *name)
+{
+ char* p;
+ char* result;
+ char ucname[256];
+
+ p = ucname;
+ while (*name) /* VMS logical names must be upper-case */
+ {
+ *p++ = islower(*name) ? toupper(*name) : *name;
+ ++name;
+ }
+ *p = '\0';
+
+ p = strchr(ucname,':'); /* colon in name? */
+ if (p == (char *)NULL) /* no colon in name */
+ result = getenv(ucname);
+ else /* try with and without colon */
+ {
+ result = getenv(ucname);
+ if (result == (char *)NULL)
+ {
+ *p = '\0';
+ result = getenv(ucname);
+ *p = ':';
+ }
+ }
+ return (result);
+}
+
+/**********************************************************************/
+/*-->getlogin*/
+char*
+getlogin()
+{
+ return ((char *)getenv("USER")); /* use equivalent VMS routine */
+}
+
+/**********************************************************************/
+/*-->qsort*/
+
+/***********************************************************************
+TeXindex uses the standard Unix library function qsort() for
+record sorting. Unfortunately, qsort() is not a stable sorting
+algorithm, so input order is not necessarily preserved for equal
+sort keys. This is important, because the sorting is
+case-independent, while the actual entries may not be. For
+example, the input
+
+\entry{i}{22}{{\CODE{i}}}
+\entry{i}{42}{{\CODE{i}}}
+\entry{I}{41}{{\CODE{I}}}
+\entry{I}{42}{{\CODE{I}}}
+
+produces
+
+\initial {I}
+\entry {{\CODE{i}}}{22}
+\entry {{\CODE{I}}}{41--42}
+\entry {{\CODE{i}}}{42}
+
+instead of the correct
+
+\initial {I}
+\entry {{\CODE{i}}}{22, 42}
+\entry {{\CODE{I}}}{41--42}
+
+We therefore provide this stable shellsort replacement for
+qsort() based on the code given on p. 116 of Kernighan and
+Ritchie, ``The C Programming Language'', Prentice-Hall (1978).
+This has order N**1.5 average performance, which is usually
+slower than qsort(). In the interests of simplicity, we make no
+attempt to handle short sequences by alternative methods.
+
+[07-Nov-86]
+***********************************************************************/
+
+#if VMS_QSORT
+#define BASE(i) &base[(i)*width]
+
+void
+qsort(base, nel, width, compar)
+ char base[]; /* start of data in memory */
+ int nel; /* number of elements to be sorted */
+ int width; /* size (in bytes) of each element */
+ int (*compar)(); /* comparison function */
+{
+ int gap;
+ int i;
+ int j;
+
+ register int k; /* inner exchange loop parameters */
+ register char* p;
+ register char* q;
+ register char c;
+
+ for (gap = nel/2; gap > 0; gap /= 2)
+ {
+ for (i = gap; i < nel; i++)
+ {
+ for (j = i-gap; j >= 0; j -= gap)
+ {
+ p = BASE(j);
+ q = BASE(j+gap);
+ if ((*compar)(p,q) <= 0)
+ break; /* exit j loop */
+ else
+ {
+ for (k = 0; k < width; (++p, ++q, ++k))
+ {
+ c = *q;
+ *q = *p;
+ *p = c;
+ }
+ }
+ }
+ }
+ }
+}
+#endif
+/**********************************************************************
+*-->system*
+int
+system(char *s)
+{
+ struct dsc$descriptor t;
+
+ t.dsc$w_length = strlen(s);
+ t.dsc$a_pointer = s;
+ t.dsc$b_class = DSC$K_CLASS_S;
+ t.dsc$b_dtype = DSC$K_DTYPE_T;
+ return (LIB$SPAWN(&t) == SS$_NORMAL) ? 0 : 127;
+}
+
+
+**********************************************************************/
+/*-->tell*/
+long
+tell(int handle)
+{
+ return (lseek(handle,0L,1));
+}
+
+/**********************************************************************/
+/*-->unlink*/
+int
+unlink(char *filename)
+{
+ return (delete(filename)); /* use equivalent VMS routine */
+}
diff --git a/Build/source/texk/dvipsk/vms/vms.h b/Build/source/texk/dvipsk/vms/vms.h
new file mode 100644
index 00000000000..f9088861b43
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/vms.h
@@ -0,0 +1,17 @@
+#ifdef VMS
+/* The replacement ftell and fseek functions in the vaxvms.c file dated
+ * [02-Apr-87] do not work properly under OpenVMS 1.5 on DEC Alpha, when
+ * compiled using DEC C 1.3. However, the DEC supplied ftell and fseek
+ * functions work fine. They should also work for DEC C on a VAX.
+ */
+#ifndef __DECC
+#define ftell vms_ftell
+#define fseek vms_fseek
+#endif /* __DECC */
+#define getchar vms_getchar
+#define getenv vms_getenv
+#define ungetc vms_ungetc
+#define getname vms_getname
+#define popen(pcmd, pmode) fopen(pcmd, pmode)
+#define pclose(pstream) fclose(pstream)
+#endif /* VMS */
diff --git a/Build/source/texk/dvipsk/vms/vms_gcc.txt b/Build/source/texk/dvipsk/vms/vms_gcc.txt
new file mode 100644
index 00000000000..5159ce6ddb1
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/vms_gcc.txt
@@ -0,0 +1,75 @@
+ DVIPS & GNU C
+
+Changes that had to be made in order to compile the DVIPS program with the GNU
+CC (GCC) compiler on Vax/VMS.
+
+(1) DVIPS.C
+(a) Problem with 'include' files. The person who did the original port to VMS
+used the :
+#include filename
+notation rather than the more traditional
+#include "filename.h"
+notation. With the VAX C compiler this means that the chosen header file is
+extracted from the SYS$SHARE:VAXCDEF.TLB text library. Well, the GCC compiler
+doesn't understand this notation. Now, I could've simply changed it so that if
+the code was being compiled on a VMS machine then use the
+#include "filename.h"
+notation regardless of the compiler. But some sites may not have extracted the
+header files from the text library when the VAX C compiler was installed.
+This problem also affects the VMSCLI.C file on the [.VMS] directory.
+
+(b) The TFMPATH, PKPATH, etc.., definitions cannot be defined in the MAKEFILE
+because the GCC.EXE program complains with the following error message...
+% gcc-cpp command too long. Unable to compile.
+
+After removing some of the path definitions to shorten the command (just too
+see roughly how big the buffer was) I eventually tricked the GCC.EXE program
+into getting as far as executing the GNU_CC:[000000]GCC.COM command file but
+it then complained, giving the following message...
+%DCL-W-TKNOVF, command element is too long - shorten
+So, I gave up and took the easy way out, i.e. put these PATH definitions back
+in to a new GCC-specific PATHS.H, called VMS_GCC_PATHS.H
+
+(2) DOSPECIAL.C
+The "tolower" macro, defined in GNU_CC:[INCLUDE]CTYPE.H, is too simple. It
+doesn't check to see if the character is in the range 'A' to 'Z' therefore
+we may as well use the "Tolower" function supplied in the DOSPECIAL.C file.
+
+(3) The MAKEFILE has been updated to handle the GCC compiler. It must be edited
+by the user to select either the VAX11C or the GCC compiler. Search for the
+strings VAXC or GNUC and comment out the appropriate lines.
+
+(4) VMS.H
+The "getchar" macro is undefined if it already exists. This is just to stop the
+warning message from the GCC compiler informing us that it is being redefined.
+GNUC defines it in GNU_CC:[INCLUDE]STDIO.H
+
+(5) VAXVMS.C
+Defined all the functions at the top of the file to keep the GCC compiler
+quiet, since it reported the following problems...
+
+vaxvms.c;1: In function vms_ftell:
+vaxvms.c;1:223: warning: `vms_ftell' was previously implicitly declared to return `int'
+vaxvms.c;1: In function vms_ungetc:
+vaxvms.c;1:296: warning: `vms_ungetc' was previously implicitly declared to return `int'
+vaxvms.c;1: In function vms_getenv:
+
+Next, if using the GNU CC compiler then #include <stdlib.h> so that the
+compiler knows all about the `strchr' and `getenv' functions, hence avoiding
+the following warnings...
+
+vaxvms.c;1:331: warning: assignment of pointer from integer lacks a cast
+vaxvms.c;1:333: warning: assignment of pointer from integer lacks a cast
+vaxvms.c;1:336: warning: assignment of pointer from integer lacks a cast
+vaxvms.c;1:340: warning: assignment of pointer from integer lacks a cast
+
+-------------------------------------------------------------------------------
+These changes were tested with GCC 1.42 which is the current official release
+of VMS GCC, available from any of the many GNU archive sites. These changes
+were also tested with GCC 2.3.3 which is avaliable from MANGO.RSMAS.MIAMI.EDU
+(pub/VMS-gcc). The problem to be aware of is that GNUC doesn't have a
+CLIMSGDEF.H header file (needed for DVIPS.C). One way out it to create one by
+hand from the output from ...
+$ LIBRARY/MACRO/EXTRACT=$CLIMSGDEF/OUTPUT=SYS$OUTPUT SYS$LIBRARY:STARLET.MLB
+The other solution is to use the more complete package of C header files
+provided by Pat Rankin, also available at MANGO.RSMAS.MIAMI.EDU
diff --git a/Build/source/texk/dvipsk/vms/vms_gcc_paths.h b/Build/source/texk/dvipsk/vms/vms_gcc_paths.h
new file mode 100644
index 00000000000..520c2b46b9a
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/vms_gcc_paths.h
@@ -0,0 +1,33 @@
+/*-----------------------------------------------------------------------*
+ * These definitions cannot be defined on the command line because so many
+ * DEFINE's overflow the DCL buffer when using the GNU CC compiler.
+ *-----------------------------------------------------------------------*/
+#ifndef TFMPATH
+#define TFMPATH "TEX_FONTS:"
+#endif
+#ifndef PKPATH
+#define PKPATH "TEX_DISK:[TEX.FONTS.%d]%f.PK"
+#endif
+#ifndef VFPATH
+#define VFPATH "TEX_VF:"
+#endif
+#ifndef FIGPATH
+#define FIGPATH ",TEX_INPUTS:,TEX$POSTSCRIPT:," /* Include blank so it looks on default dir. */
+#endif
+#ifndef HEADERPATH
+#define HEADERPATH "TEX$POSTSCRIPT:,SYS$LOGIN:"
+#endif
+#ifndef CONFIGPATH
+#define CONFIGPATH "TEX$POSTSCRIPT:"
+#endif
+#ifndef CONFIGFILE
+#define CONFIGFILE "config.ps"
+#endif
+#ifdef FONTLIB
+#ifndef FLIPATH
+#define FLIPATH ""
+#endif
+#ifndef FLINAME
+#define FLINAME ""
+#endif
+#endif
diff --git a/Build/source/texk/dvipsk/vms/vmscli.c b/Build/source/texk/dvipsk/vms/vmscli.c
new file mode 100644
index 00000000000..438e23ec841
--- /dev/null
+++ b/Build/source/texk/dvipsk/vms/vmscli.c
@@ -0,0 +1,466 @@
+/* EJG - 02-Jul-1996 */
+/* fix processing of filter qualifier */
+/* add secure qualifier */
+/* add oddpages qualifier */
+/* add evenpages qualifier */
+/* set sendcontrold only if qualifier present, not if merely negated */
+/* check for setting or resetting disablecomments was cli$_negated in both cases - fix */
+/* add downloadps (as PK) fonts qualifier */
+/* add hyperps qualifier */
+/* EJG - 07-Jul-1996 */
+/* test for INC_COM was looking for negated in both cases, so fixed */
+#ifdef __GNUC__
+#include "ssdef.h"
+#else
+#include ssdef
+#endif
+/* this code is included into dvips.c; don't compile it separately. */
+int vmscli()
+ {long int k,scnt;
+ int length,status,maxdrift,jext;
+ float offset,conversion;
+ char *u;
+ static char dummy[100],prtr[20];
+ static $DESCRIPTOR(qual1,"copies");
+ static $DESCRIPTOR(qual2,"debug");
+ static $DESCRIPTOR(qual3,"maxdrift");
+ static $DESCRIPTOR(qual4,"filter");
+ static $DESCRIPTOR(qual5,"last");
+ static $DESCRIPTOR(qual6,"manual");
+ static $DESCRIPTOR(qual7,"number");
+ static $DESCRIPTOR(qual8,"output");
+ static $DESCRIPTOR(qual9,"start");
+ static $DESCRIPTOR(qual10,"quiet");
+ static $DESCRIPTOR(qual11,"reverse");
+ static $DESCRIPTOR(qual12,"sav_res");
+ static $DESCRIPTOR(qual13,"mode");
+ static $DESCRIPTOR(qual14,"magnification");
+ static $DESCRIPTOR(qual15,"collate");
+ static $DESCRIPTOR(qual16,"dpi");
+ static $DESCRIPTOR(qual17,"ctrld");
+ static $DESCRIPTOR(qual18,"inc_com");
+ static $DESCRIPTOR(qual19,"comment");
+ static $DESCRIPTOR(qual20,"vm_save");
+ static $DESCRIPTOR(qual21,"h_dpi");
+ static $DESCRIPTOR(qual22,"v_dpi");
+ static $DESCRIPTOR(qual23,"compress");
+ static $DESCRIPTOR(qual24,"printer");
+ static $DESCRIPTOR(qual25,"header");
+ static $DESCRIPTOR(qual26,"absolute");
+ static $DESCRIPTOR(qual27,"epsf");
+ static $DESCRIPTOR(qual28,"prescan");
+ static $DESCRIPTOR(qual29,"pagecopies");
+ static $DESCRIPTOR(qual30,"separate");
+ static $DESCRIPTOR(qual31,"cropmarks");
+ static $DESCRIPTOR(qual32,"sec_size");
+ static $DESCRIPTOR(qual33,"help");
+ static $DESCRIPTOR(qual34,"makefont");
+ static $DESCRIPTOR(qual35,"psize");
+ static $DESCRIPTOR(qual36,"poffset");
+ static $DESCRIPTOR(qual37,"secure"); /* EJG 02-Jul-1996 */
+ static $DESCRIPTOR(qual38,"oddpages"); /* EJG 02-Jul-1996 */
+ static $DESCRIPTOR(qual39,"evenpages"); /* EJG 02-Jul-1996 */
+ static $DESCRIPTOR(qual40,"downloadps"); /* EJG 02-Jul-1996 */
+ static $DESCRIPTOR(qual41,"hyperps"); /* EJG 02-Jul-1996 */
+ static $DESCRIPTOR(dumdum,dummy);
+ static $DESCRIPTOR(dvi_file,"dvifile");
+ static $DESCRIPTOR(input_file,infnme);
+ scnt=0;
+ status = cli$present(&dvi_file);
+
+ if(status == CLI$_PRESENT)
+ {status = cli$get_value(&dvi_file,&input_file,&jext);
+ length=0;
+ for(k=0;k<252;k++)
+ { if(infnme[k] == ':' || infnme[k] == ']')
+ scnt=k+1;
+ }
+ for(k=scnt;k<252;k++)
+ {if(infnme[k]=='.')
+ {length=k;
+ jext=k;
+ }
+ else
+ {if(infnme[k]=='/' || infnme[k]==' ' || infnme[k]=='\0')
+ infnme[k]='\0';
+ }
+ }
+ if(length==0)
+ {jext= strlen(infnme);
+ strcat(infnme,".DVI");}
+
+ iname = &infnme[0] ;
+ length = 0; /* Initialize length...VAX C bug? */
+
+ }
+ status = cli$present(&qual1);
+
+ if(status == CLI$_PRESENT | status == CLI$_DEFAULTED)
+ {status = cli$get_value(&qual1,&dumdum,&length);
+
+ if(sscanf(&dummy[0],"%d",&numcopies) == 0)
+ error("!Bad copies option");
+ }
+#ifdef DEBUG
+ status = cli$present(&qual2);
+
+ if(status == CLI$_PRESENT)
+ {
+ status = cli$get_value(&qual2,&dumdum,&length);
+
+ if(sscanf(&dummy[0],"%d",&debug_flag) == 0)
+ error("!Bad debug option");
+ }
+#else
+ error("not compiled in debug mode");
+#endif
+ status = cli$present(&qual3);
+
+ if(status == CLI$_PRESENT)
+ {status = cli$get_value(&qual3,&dumdum,&length);
+
+ if(sscanf(&dummy[0],"%d",&maxdrift) == 0 ||maxdrift <0)
+ error("bad maxdrift option");
+ vmaxdrift=maxdrift;
+ }
+
+
+ status = cli$present(&qual5);
+
+ if(status == CLI$_PRESENT)
+ {status = cli$get_value(&qual5,&dumdum,&length);
+
+#ifdef SHORTINT
+ switch(sscanf(&dummy[0], "%ld.%ld", &lastpage, &lastseq)) {
+#else /* ~SHORTINT */
+ switch(sscanf(&dummy[0], "%ld.%ld", &lastpage, &lastseq)) {
+#endif /* ~SHORTINT */
+case 1: lastseq = 0 ;
+case 2: break ;
+default:
+ error("! Bad last page option.") ;
+ }
+ notlast = 1 ;
+ }
+ status = cli$present(&qual6);
+
+ if(status == CLI$_PRESENT)
+ manualfeed=1;
+ else
+ if(status == CLI$_NEGATED)
+ manualfeed=0;
+
+ status = cli$present(&qual7);
+ if(status == CLI$_PRESENT)
+ {status = cli$get_value(&qual7,&dumdum,&length);
+#ifdef SHORTINT
+ if (sscanf(&dummy[0], "%ld", &maxpages)==0)
+#else /* ~SHORTINT */
+ if (sscanf(&dummy[0], "%d", &maxpages)==0)
+#endif /* ~SHORTINT */
+ error("! Bad number of pages option.") ;
+ }
+
+ status = cli$present(&qual8);
+ if(status == CLI$_PRESENT)
+ {status = cli$get_value(&qual8,&dumdum,&length);
+ sscanf(&dummy[0],"%s",ofnme);
+ }
+ else
+ {for(k=scnt;k<jext;k++)ofnme[k-scnt]=infnme[k];
+ strcat(ofnme,".PS");}
+ oname = &ofnme[0] ;
+
+ status = cli$present(&qual4);
+
+ if(status == CLI$_PRESENT)
+ {oname="";
+ filter=1; /* EJG 02-Jul-1996 */
+ noenv=(1==1);
+ }
+ else /* EJG 02-Jul-1996 */
+ filter=0; /* EJG 02-Jul-1996 */
+
+ status = cli$present(&qual9);
+ if(status == CLI$_PRESENT)
+ {status = cli$get_value(&qual9,&dumdum,&length);
+#ifdef SHORTINT
+ switch(sscanf(&dummy[0], "%ld.%ld", &firstpage, &firstseq)) {
+#else /* ~SHORTINT */
+ switch(sscanf(&dummy[0], "%ld.%ld", &firstpage, &firstseq)) {
+#endif /* ~SHORTINT */
+case 1: firstseq = 0 ;
+case 2: break ;
+default:
+ error("! Bad first page option.") ;
+ }
+ notfirst = 1 ;
+ }
+
+ status = cli$present(&qual10);
+
+ if(status == CLI$_PRESENT)
+ quiet=(1==1);
+ else
+ if(status == CLI$_NEGATED)
+ quiet=(1==0);
+
+ status = cli$present(&qual11);
+
+ if(status == CLI$_PRESENT)
+ reverse=1;
+ else
+ if(status == CLI$_NEGATED)
+ reverse=0;
+
+ status = cli$present(&qual12);
+
+ if(status == CLI$_PRESENT)
+ safetyenclose=1;
+ else
+ if(status == CLI$_NEGATED)
+ safetyenclose=0;
+
+ status = cli$present(&qual13);
+ if(status == CLI$_PRESENT | status == CLI$_DEFAULTED)
+ {status = cli$get_value(&qual13,&dumdum,&length);
+ sscanf(&dummy[0],"%s",pap);
+ if (strcmp(&pap[0], "landscape") == 0)
+ { if (hpapersize || vpapersize)
+ error( "both landscape and papersize specified; ignoring landscape") ;
+ else
+ landscape = 1 ;
+ /* The following lines have been added by G.Bonacci */
+ if ((status=cli$get_value(&qual13,&dumdum,&length))==1)
+ {
+ sscanf(&dummy[0],"%s",pap);
+
+ paperfmt = &pap[0] ;
+ }
+ /* end G.Bonacci 20.3.92 */
+ }
+ else
+ paperfmt = &pap[0] ;
+ }
+
+ status = cli$present(&qual14);
+
+ if(status == CLI$_PRESENT)
+ {status = cli$get_value(&qual14,&dumdum,&length);
+
+ if(sscanf(&dummy[0],"%d",&mag) == 0 || mag < 10 || mag >100000)
+ error("!Bad magnification parameter.");
+ overridemag=1;
+ }
+ status = cli$present(&qual15);
+
+ if(status == CLI$_PRESENT | status == CLI$_DEFAULTED)
+ {status = cli$get_value(&qual15,&dumdum,&length);
+
+ if(sscanf(&dummy[0],"%d",&collatedcopies) == 0)
+ error("!Bad number of collated copies");
+ }
+ status = cli$present(&qual16);
+
+ if(status == CLI$_PRESENT | status == CLI$_DEFAULTED)
+ {status = cli$get_value(&qual16,&dumdum,&length);
+
+ if(sscanf(&dummy[0],"%d",&actualdpi) == 0 ||
+ actualdpi < 10 || actualdpi >10000)
+ error("!Bad dpi parameter.");
+ vactualdpi=actualdpi;
+ }
+
+ status = cli$present(&qual17);
+
+ if(status == CLI$_PRESENT) /* EJG 02-Jul-1996 */
+ sendcontrolD =1;
+ else
+ if(status == CLI$_NEGATED | status==CLI$_DEFAULTED) /* EJG 02-Jul-1996 */
+ sendcontrolD =0;
+
+ status = cli$present(&qual18);
+
+ if(status == CLI$_PRESENT) /* EJG 07-Jul-1996 */
+ removecomments =0;
+ else
+ if(status == CLI$_NEGATED)
+ removecomments =1;
+
+ status = cli$present(&qual19);
+
+ if(status == CLI$_PRESENT) /* EJG 02-JUL-1996 */
+ disablecomments = 0;
+ else
+ if(status == CLI$_NEGATED)
+ disablecomments = 1;
+
+ status = cli$present(&qual20);
+
+ if(status == CLI$_PRESENT)
+ nosmallchars=1;
+ else
+ if(status == CLI$_NEGATED)
+ nosmallchars=0;
+
+ status = cli$present(&qual21);
+
+ if(status == CLI$_PRESENT)
+ {status = cli$get_value(&qual21,&dumdum,&length);
+
+ if(sscanf(&dummy[0],"%d",&actualdpi) == 0 ||
+ actualdpi < 10 || actualdpi >10000)
+ error("!Bad dpi parameter in X.");
+ }
+
+ status = cli$present(&qual22);
+
+ if(status == CLI$_PRESENT)
+ {status = cli$get_value(&qual22,&dumdum,&length);
+
+ if(sscanf(&dummy[0],"%d",&vactualdpi) == 0 ||
+ vactualdpi < 10 || vactualdpi >10000)
+ error("!Bad dpi parameter in Y.");
+ }
+
+ status = cli$present(&qual23);
+
+ if(status == CLI$_PRESENT)
+ compressed=1;
+ else
+ if(status == CLI$_NEGATED)
+ compressed=0;
+
+ status = cli$present(&qual24);
+ if(status == CLI$_PRESENT)
+ {status = cli$get_value(&qual24,&dumdum,&length);
+ sscanf(&dummy[0],"%s",prtr);
+ u = &dummy[0] ;
+ strcpy(u,"config.");
+ strcat(u,&prtr[0]);
+ getdefaults("");
+ noenv=1;
+ getdefaults(u);
+ }
+
+ status = cli$present(&qual25);
+ if(status == CLI$_PRESENT) {
+ while (status != SS$_NORMAL) {
+ status = cli$get_value(&qual25,&dumdum,&length);
+ dummy[length] = '\0';
+ if (strcmp(dummy, "-") == 0)
+ headers_off = 1;
+ else
+ (void)add_header(dummy) ;
+ }
+ }
+ else {
+ if(status == CLI$_NEGATED)
+ headers_off = 1;
+ }
+
+ status = cli$present(&qual26);
+ if(status == CLI$_PRESENT) abspage = 1;
+
+ status = cli$present(&qual27);
+ if(status == CLI$_PRESENT | status==CLI$_DEFAULTED) tryepsf = 1;
+ else
+ if(status == CLI$_NEGATED) tryepsf = 0;
+
+ status = cli$present(&qual28);
+ if(status == CLI$_PRESENT | status==CLI$_DEFAULTED) dopprescan = 1;
+ else
+ if(status == CLI$_NEGATED) dopprescan = 0;
+
+ status = cli$present(&qual29);
+
+ if(status == CLI$_PRESENT | status == CLI$_DEFAULTED)
+ {status = cli$get_value(&qual29,&dumdum,&length);
+
+ if(sscanf(&dummy[0],"%d",&pagecopies) == 0)
+ error("!Bad number of page copies option /PAGECOPIES");
+ if (pagecopies < 1 || pagecopies > 1000)
+ error("! can only print one to a thousand page copies") ;
+ }
+
+ status = cli$present(&qual30);
+ if(status == CLI$_PRESENT | status==CLI$_DEFAULTED) sepfiles = 1;
+ else
+ if(status == CLI$_NEGATED) sepfiles = 0;
+
+ status = cli$present(&qual31);
+ if(status == CLI$_PRESENT | status==CLI$_DEFAULTED) cropmarks = 1;
+ else
+ if(status == CLI$_NEGATED) cropmarks = 0;
+
+ status = cli$present(&qual32);
+ if(status == CLI$_PRESENT)
+ {status = cli$get_value(&qual32,&dumdum,&length);
+#ifdef SHORTINT
+ if (sscanf(&dummy[0], "%ld", &maxsecsize)==0)
+#else /* ~SHORTINT */
+ if (sscanf(&dummy[0], "%d", &maxsecsize)==0)
+#endif /* ~SHORTINT */
+ error("! Bad section size arg (/SEC_SIZE).") ;
+ }
+
+ status = cli$present(&qual33);
+ if(status == CLI$_PRESENT)
+ { (void)fprintf(stderr, banner) ;
+ help() ;
+ }
+
+ status = cli$present(&qual34);
+ if(status == CLI$_NEGATED) dontmakefont = 1;
+/*-----------------------------------------------------------------------
+ * Currently one uses /PSIZE="5mm,10mm" This way CASE is preserved
+ * Should I convert the PSIZE to allow a LIST => /PSIZE=(5mm,10mm) and
+ * convert the case back to lowercase in here.
+ *-----------------------------------------------------------------------*/
+ status = cli$present(&qual35);
+ if(status == CLI$_PRESENT) {
+ status = cli$get_value(&qual35,&dumdum,&length);
+ dummy[length] = '\0';
+ handlepapersize(&dummy[0], &hpapersize, &vpapersize) ;
+ if (landscape) {
+ error("both landscape and papersize specified; ignoring landscape") ;
+ landscape = 0 ;
+ }
+ }
+
+ status = cli$present(&qual36);
+ if(status == CLI$_PRESENT) {
+ status = cli$get_value(&qual36,&dumdum,&length);
+ dummy[length] = '\0';
+ handlepapersize(&dummy[0], &hoff, &voff) ;
+ }
+
+ status = cli$present(&qual37); /* EJG 02-Jul-1996 */
+ if(status == CLI$_PRESENT) secure = 1; /* EJG 02-Jul-1996 */
+ else /* EJG 02-Jul-1996 */
+ if(status == CLI$_NEGATED | status == CLI$_DEFAULTED) secure = 0; /* EJG 02-Jul-1996 */
+
+ status = cli$present(&qual38); /* EJG 02-Jul-1996 */
+ if(status == CLI$_PRESENT) oddpages = 1; /* EJG 02-Jul-1996 */
+ else /* EJG 02-Jul-1996 */
+ if(status == CLI$_NEGATED | status == CLI$_DEFAULTED) oddpages = 0; /* EJG 02-Jul-1996 */
+
+ status = cli$present(&qual39); /* EJG 02-Jul-1996 */
+ if(status == CLI$_PRESENT) evenpages = 1; /* EJG 02-Jul-1996 */
+ else /* EJG 02-Jul-1996 */
+ if(status == CLI$_NEGATED | status == CLI$_DEFAULTED) evenpages = 0; /* EJG 02-Jul-1996 */
+
+ status = cli$present(&qual40); /* EJG 02-Jul-1996 */
+ if(status == CLI$_PRESENT) downloadpspk = 1; /* EJG 02-Jul-1996 */
+ else /* EJG 02-Jul-1996 */
+ if(status == CLI$_NEGATED | status == CLI$_DEFAULTED) downloadpspk = 0; /* EJG 02-Jul-1996 */
+
+#ifdef HPS /* EJG 02-Jul-1996 */
+
+ status = cli$present(&qual41); /* EJG 02-Jul-1996 */
+ if(status == CLI$_PRESENT) HPS_FLAG = 1; /* EJG 02-Jul-1996 */
+ else /* EJG 02-Jul-1996 */
+ if(status == CLI$_NEGATED | status == CLI$_DEFAULTED) HPS_FLAG = 0; /* EJG 02-Jul-1996 */
+#endif /* EJG 02-Jul-1996 */
+
+}
diff --git a/Build/source/texk/dvipsk/writet1.c b/Build/source/texk/dvipsk/writet1.c
new file mode 100644
index 00000000000..0a95247196f
--- /dev/null
+++ b/Build/source/texk/dvipsk/writet1.c
@@ -0,0 +1,1574 @@
+/*
+Copyright 1996-2018 Han The Thanh <thanh@pdftex.org>
+
+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, see <http://www.gnu.org/licenses/>. */
+
+#include "dvips.h"
+/*
+ * The external declarations:
+ */
+#include "protos.h"
+#include "ptexmac.h"
+#undef fm_extend
+#define fm_extend(f) 0
+#undef fm_slant
+#define fm_slant(f) 0
+#undef is_reencoded
+#define is_reencoded(f) (cur_enc_name != NULL)
+#undef is_subsetted
+#define is_subsetted(f) true
+#undef is_included
+#define is_included(f) true
+#undef set_cur_file_name
+#define set_cur_file_name(s) cur_file_name = s
+#define external_enc() ext_glyph_names
+#define full_file_name() cur_file_name
+#define is_used_char(c) (grid[c] == 1)
+#define end_last_eexec_line() \
+ hexline_length = HEXLINE_WIDTH; \
+ end_hexline(); \
+ t1_eexec_encrypt = false
+#define t1_scan_only()
+#define t1_scan_keys()
+#define embed_all_glyphs(tex_font) false
+#undef pdfmovechars
+#ifdef SHIFTLOWCHARS
+#define pdfmovechars shiftlowchars
+#define t1_char(c) T1Char(c)
+#else /* SHIFTLOWCHARS */
+#define t1_char(c) c
+#define pdfmovechars 0
+#endif /* SHIFTLOWCHARS */
+#define extra_charset() dvips_extra_charset
+#define make_subset_tag(a, b)
+#define update_subset_tag()
+
+static char *dvips_extra_charset;
+static char *cur_file_name;
+static char *cur_enc_name;
+static unsigned char *grid;
+static char *ext_glyph_names[256];
+static char print_buf[PRINTF_BUF_SIZE];
+static int hexline_length;
+static char notdef[] = ".notdef";
+static size_t last_ptr_index;
+
+#include <stdarg.h>
+
+#define t1_log(str)
+#define get_length1()
+#define get_length2()
+#define get_length3()
+#define save_offset()
+
+#define t1_open() \
+ ((t1_file = search(type1path, cur_file_name, FOPEN_RBIN_MODE)) != NULL)
+#define t1_close() xfclose(t1_file, cur_file_name)
+#define t1_getchar() getc(t1_file)
+#define t1_putchar(c) fputc(c, bitfile)
+#define t1_ungetchar(c) ungetc(c, t1_file)
+#define t1_eof() feof(t1_file)
+
+#define str_prefix(s1, s2) (strncmp(s1, s2, strlen(s2)) == 0)
+#define t1_prefix(s) str_prefix(t1_line_array, s)
+#define t1_buf_prefix(s) str_prefix(t1_buf_array, s)
+#define t1_suffix(s) str_suffix(t1_line_array, t1_line_ptr, s)
+#define t1_buf_suffix(s) str_suffix(t1_buf_array, t1_buf_ptr, s)
+#define t1_charstrings() strstr(t1_line_array, charstringname)
+#define t1_subrs() t1_prefix("/Subrs")
+#define t1_end_eexec() t1_suffix("mark currentfile closefile")
+#define t1_cleartomark() t1_prefix("cleartomark")
+
+#define enc_open() \
+ ((enc_file = search(encpath, cur_file_name, FOPEN_RBIN_MODE)) != NULL)
+#define enc_close() xfclose(enc_file, cur_file_name)
+#define enc_getchar() getc(enc_file)
+#define enc_eof() feof(enc_file)
+
+#define valid_code(c) (c >= 0 && c < 256)
+#define fixedcontent true /* false for pdfTeX, true for dvips */
+
+static const char *standard_glyph_names[256] = {
+ /* 0x00 */
+ notdef, notdef, notdef, notdef, notdef, notdef, notdef, notdef, notdef,
+ notdef, notdef, notdef, notdef, notdef, notdef, notdef,
+ /* 0x10 */
+ notdef, notdef, notdef, notdef, notdef, notdef, notdef, notdef, notdef,
+ notdef, notdef, notdef, notdef, notdef, notdef, notdef,
+ /* 0x20 */
+ "space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
+ "ampersand", "quoteright", "parenleft", "parenright", "asterisk",
+ "plus", "comma", "hyphen", "period", "slash",
+ /* 0x30 */
+ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight",
+ "nine", "colon", "semicolon", "less", "equal", "greater", "question",
+ /* 0x40 */
+ "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
+ "O",
+ /* 0x50 */
+ "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft",
+ "backslash", "bracketright", "asciicircum", "underscore",
+ /* 0x60 */
+ "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l",
+ "m", "n", "o",
+ /* 0x70 */
+ "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar",
+ "braceright", "asciitilde", notdef,
+ /* 0x80 */
+ notdef, notdef, notdef, notdef, notdef, notdef, notdef, notdef, notdef,
+ notdef, notdef, notdef, notdef, notdef, notdef, notdef,
+ /* 0x90 */
+ notdef, notdef, notdef, notdef, notdef, notdef, notdef, notdef, notdef,
+ notdef, notdef, notdef, notdef, notdef, notdef, notdef,
+ /* 0xa0 */
+ notdef, "exclamdown", "cent", "sterling", "fraction", "yen", "florin",
+ "section", "currency", "quotesingle", "quotedblleft", "guillemotleft",
+ "guilsinglleft", "guilsinglright", "fi", "fl",
+ /* 0xb0 */
+ notdef, "endash", "dagger", "daggerdbl", "periodcentered", notdef,
+ "paragraph", "bullet", "quotesinglbase", "quotedblbase",
+ "quotedblright", "guillemotright", "ellipsis", "perthousand", notdef,
+ "questiondown",
+ /* 0xc0 */
+ notdef, "grave", "acute", "circumflex", "tilde", "macron", "breve",
+ "dotaccent", "dieresis", notdef,
+ "ring", "cedilla", notdef, "hungarumlaut", "ogonek", "caron",
+ /* 0xd0 */
+ "emdash", notdef, notdef, notdef, notdef, notdef, notdef, notdef, notdef,
+ notdef, notdef, notdef, notdef, notdef, notdef, notdef,
+ /* 0xe0 */
+ notdef, "AE", notdef, "ordfeminine", notdef, notdef, notdef, notdef,
+ "Lslash", "Oslash", "OE", "ordmasculine", notdef, notdef, notdef,
+ notdef,
+ /* 0xf0 */
+ notdef, "ae", notdef, notdef, notdef, "dotlessi", notdef, notdef, "lslash",
+ "oslash", "oe", "germandbls", notdef, notdef, notdef, notdef
+};
+
+char **t1_glyph_names;
+char *t1_builtin_glyph_names[256];
+static boolean read_encoding_only;
+
+static char charstringname[] = "/CharStrings";
+
+enum { ENC_STANDARD, ENC_BUILTIN } t1_encoding;
+
+#define T1_BUF_SIZE 0x10
+#define ENC_BUF_SIZE 0x1000
+
+#define CS_HSTEM 1
+#define CS_VSTEM 3
+#define CS_VMOVETO 4
+#define CS_RLINETO 5
+#define CS_HLINETO 6
+#define CS_VLINETO 7
+#define CS_RRCURVETO 8
+#define CS_CLOSEPATH 9
+#define CS_CALLSUBR 10
+#define CS_RETURN 11
+#define CS_ESCAPE 12
+#define CS_HSBW 13
+#define CS_ENDCHAR 14
+#define CS_RMOVETO 21
+#define CS_HMOVETO 22
+#define CS_VHCURVETO 30
+#define CS_HVCURVETO 31
+#define CS_1BYTE_MAX (CS_HVCURVETO + 1)
+
+#define CS_DOTSECTION CS_1BYTE_MAX + 0
+#define CS_VSTEM3 CS_1BYTE_MAX + 1
+#define CS_HSTEM3 CS_1BYTE_MAX + 2
+#define CS_SEAC CS_1BYTE_MAX + 6
+#define CS_SBW CS_1BYTE_MAX + 7
+#define CS_DIV CS_1BYTE_MAX + 12
+#define CS_CALLOTHERSUBR CS_1BYTE_MAX + 16
+#define CS_POP CS_1BYTE_MAX + 17
+#define CS_SETCURRENTPOINT CS_1BYTE_MAX + 33
+#define CS_2BYTE_MAX (CS_SETCURRENTPOINT + 1)
+#define CS_MAX CS_2BYTE_MAX
+
+typedef unsigned char byte;
+
+typedef struct {
+ byte nargs; /* number of arguments */
+ boolean bottom; /* take arguments from bottom of stack? */
+ boolean clear; /* clear stack? */
+ boolean valid;
+} cc_entry; /* CharString Command */
+
+typedef struct {
+ char *name; /* glyph name (or notdef for Subrs entry) */
+ byte *data;
+ unsigned short len; /* length of the whole string */
+ unsigned short cslen; /* length of the encoded part of the string */
+ boolean used;
+ boolean valid;
+} cs_entry;
+
+static unsigned short t1_dr, t1_er;
+static const unsigned short t1_c1 = 52845, t1_c2 = 22719;
+static unsigned short t1_cslen;
+static short t1_lenIV;
+static char enc_line[ENC_BUF_SIZE];
+
+/* define t1_line_ptr, t1_line_array & t1_line_limit */
+typedef char t1_line_entry;
+define_array(t1_line);
+
+/* define t1_buf_ptr, t1_buf_array & t1_buf_limit */
+typedef char t1_buf_entry;
+define_array(t1_buf);
+
+static int cs_start;
+
+static cs_entry *cs_tab, *cs_ptr, *cs_notdef;
+static char *cs_dict_start, *cs_dict_end;
+static int cs_count, cs_size, cs_size_pos;
+
+static cs_entry *subr_tab;
+static char *subr_array_start, *subr_array_end;
+static int subr_max, subr_size, subr_size_pos;
+
+/* This list contains the begin/end tokens commonly used in the */
+/* /Subrs array of a Type 1 font. */
+
+static const char *cs_token_pairs_list[][2] = {
+ {" RD", "NP"},
+ {" -|", "|"},
+ {" RD", "noaccess put"},
+ {" -|", "noaccess put"},
+ {NULL, NULL}
+};
+static const char **cs_token_pair;
+
+static boolean t1_pfa, t1_cs, t1_scan, t1_eexec_encrypt, t1_synthetic;
+static int t1_in_eexec; /* 0 before eexec-encrypted, 1 during, 2 after */
+static long t1_block_length;
+static int last_hexbyte;
+static FILE *t1_file;
+static FILE *enc_file;
+
+static void pdftex_fail(const char *fmt, ...)
+{
+ va_list args;
+ va_start(args, fmt);
+ fputs("\nError: module writet1", stderr);
+ if (cur_file_name)
+ fprintf_str(stderr, " (file %s)", cur_file_name);
+ fputs(": ", stderr);
+ vsprintf(print_buf, fmt, args);
+ fputs_str(print_buf, stderr);
+ fputs("\n ==> Fatal error occurred, the output PS file is not finished!\n", stderr);
+ va_end(args);
+ exit(-1);
+}
+
+static void pdftex_warn(const char *fmt, ...)
+{
+ va_list args;
+ va_start(args, fmt);
+ fputs("\nWarning: module writet1 of dvips", stderr);
+ if (cur_file_name)
+ fprintf_str(stderr, " (file %s)", cur_file_name);
+ fputs(": ", stderr);
+ vsprintf(print_buf, fmt, args);
+ fputs_str(print_buf, stderr);
+ fputs("\n", stderr);
+ va_end(args);
+}
+
+#define HEXLINE_WIDTH 64
+
+static void end_hexline(void)
+{
+ if (hexline_length == HEXLINE_WIDTH) {
+ fputs("\n", bitfile);
+ hexline_length = 0;
+ }
+}
+
+static void t1_outhex(byte b)
+{
+ static const char *hexdigits = "0123456789ABCDEF";
+ t1_putchar(hexdigits[b/16]);
+ t1_putchar(hexdigits[b%16]);
+ hexline_length += 2;
+ end_hexline();
+}
+
+
+static void enc_getline(void)
+{
+ char *p;
+ int c;
+ restart:
+ if (enc_eof())
+ pdftex_fail("unexpected end of file");
+ p = enc_line;
+ do {
+ c = enc_getchar();
+ append_char_to_buf(c, p, enc_line, ENC_BUF_SIZE);
+ } while (c != 10);
+ append_eol(p, enc_line, ENC_BUF_SIZE);
+ if (p - enc_line < 2 || *enc_line == '%')
+ goto restart;
+}
+
+/* read encoding from .enc file, return glyph_names array, or pdffail() */
+
+char **load_enc_file(char *enc_name)
+{
+ char buf[ENC_BUF_SIZE], *p, *r;
+ int i, names_count;
+ char **glyph_names;
+ set_cur_file_name(enc_name);
+ glyph_names = (char **) mymalloc(256 * sizeof(char *));
+ for (i = 0; i < 256; i++)
+ glyph_names[i] = notdef;
+ if (!enc_open()) {
+ pdftex_warn("cannot open encoding file for reading");
+ cur_file_name = NULL;
+ return glyph_names;
+ }
+ t1_log("{");
+ t1_log(cur_file_name = full_file_name());
+ enc_getline();
+ if (*enc_line != '/' || (r = strchr(enc_line, '[')) == NULL) {
+ remove_eol(r, enc_line);
+ pdftex_fail
+ ("invalid encoding vector (a name or `[' missing): `%s'", enc_line);
+ }
+ names_count = 0;
+ r++; /* skip '[' */
+ skip(r, ' ');
+ for (;;) {
+ while (*r == '/') {
+ for (p = buf, r++;
+ *r != ' ' && *r != 10 && *r != ']' && *r != '/'; *p++ = *r++);
+ *p = 0;
+ skip(r, ' ');
+ if (names_count > 255)
+ pdftex_fail("encoding vector contains more than 256 names");
+ if (strcmp(buf, notdef) != 0)
+ glyph_names[names_count] = xstrdup(buf);
+ names_count++;
+ }
+ if (*r != 10 && *r != '%') {
+ if (str_prefix(r, "] def"))
+ goto done;
+ else {
+ remove_eol(r, enc_line);
+ pdftex_fail
+ ("invalid encoding vector: a name or `] def' expected: `%s'", enc_line);
+ }
+ }
+ enc_getline();
+ r = enc_line;
+ }
+ done:
+ enc_close();
+ t1_log("}");
+ cur_file_name = NULL;
+ return glyph_names;
+}
+
+static void t1_check_pfa(void)
+{
+ const int c = t1_getchar();
+ t1_pfa = (c != 128) ? true : false;
+ t1_ungetchar(c);
+}
+
+static int t1_getbyte(void)
+{
+ int c = t1_getchar();
+ if (t1_pfa)
+ return c;
+ if (t1_block_length == 0) {
+ if (c != 128)
+ pdftex_fail("invalid marker");
+ c = t1_getchar();
+ if (c == 3) {
+ while (!t1_eof())
+ t1_getchar();
+ return EOF;
+ }
+ t1_block_length = t1_getchar() & 0xff;
+ t1_block_length |= (t1_getchar() & 0xff) << 8;
+ t1_block_length |= (t1_getchar() & 0xff) << 16;
+ t1_block_length |= (t1_getchar() & 0xff) << 24;
+ c = t1_getchar();
+ }
+ t1_block_length--;
+ return c;
+}
+
+static int hexval(int c)
+{
+ if (c >= 'A' && c <= 'F')
+ return c - 'A' + 10;
+ else if (c >= 'a' && c <= 'f')
+ return c - 'a' + 10;
+ else if (c >= '0' && c <= '9')
+ return c - '0';
+ else
+ return -1;
+}
+
+static byte edecrypt(byte cipher)
+{
+ byte plain;
+ if (t1_pfa) {
+ while (cipher == 10 || cipher == 13)
+ cipher = t1_getbyte();
+ last_hexbyte = cipher = (hexval(cipher) << 4) + hexval(t1_getbyte());
+ }
+ plain = (cipher ^ (t1_dr >> 8));
+ t1_dr = (cipher + t1_dr) * t1_c1 + t1_c2;
+ return plain;
+}
+
+static byte cdecrypt(byte cipher, unsigned short *cr)
+{
+ const byte plain = (cipher ^ (*cr >> 8));
+ *cr = (cipher + *cr) * t1_c1 + t1_c2;
+ return plain;
+}
+
+static byte eencrypt(byte plain)
+{
+ const byte cipher = (plain ^ (t1_er >> 8));
+ t1_er = (cipher + t1_er) * t1_c1 + t1_c2;
+ return cipher;
+}
+
+static byte cencrypt(byte plain, unsigned short *cr)
+{
+ const byte cipher = (plain ^ (*cr >> 8));
+ *cr = (cipher + *cr) * t1_c1 + t1_c2;
+ return cipher;
+}
+
+static char *eol(char *s)
+{
+ char *p = strend(s);
+ if (p - s > 1 && p[-1] != 10) {
+ *p++ = 10;
+ *p = 0;
+ }
+ return p;
+}
+
+static float t1_scan_num(char *p, char **r)
+{
+ float f;
+ skip(p, ' ');
+ if (sscanf(p, "%g", &f) != 1) {
+ remove_eol(p, t1_line_array);
+ pdftex_fail("a number expected: `%s'", t1_line_array);
+ }
+ if (r != NULL) {
+ for (; isdigit((unsigned char)*p) || *p == '.' ||
+ *p == 'e' || *p == 'E' || *p == '+' || *p == '-'; p++);
+ *r = p;
+ }
+ return f;
+}
+
+static boolean str_suffix(const char *begin_buf, const char *end_buf,
+ const char *s)
+{
+ const char *s1 = end_buf - 1, *s2 = strend(s) - 1;
+ if (*s1 == 10)
+ s1--;
+ while (s1 >= begin_buf && s2 >= s) {
+ if (*s1-- != *s2--)
+ return false;
+ }
+ return s2 < s;
+}
+
+static void t1_getline(void)
+{
+ int c, l, eexec_scan;
+ char *p;
+ static const char eexec_str[] = "currentfile eexec";
+ static int eexec_len = 17; /* strlen(eexec_str) */
+ restart:
+ if (t1_eof())
+ pdftex_fail("unexpected end of file");
+ t1_line_ptr = t1_line_array;
+ alloc_array(t1_line, 1, T1_BUF_SIZE);
+ t1_cslen = 0;
+ eexec_scan = 0;
+ c = t1_getbyte();
+ if (c == EOF)
+ goto exit;
+ while (!t1_eof()) {
+ if (t1_in_eexec == 1)
+ c = edecrypt((byte)c);
+ alloc_array(t1_line, 1, T1_BUF_SIZE);
+ append_char_to_buf(c, t1_line_ptr, t1_line_array, t1_line_limit);
+ if (t1_in_eexec == 0 && eexec_scan >= 0 && eexec_scan < eexec_len) {
+ if (t1_line_array[eexec_scan] == eexec_str[eexec_scan])
+ eexec_scan++;
+ else
+ eexec_scan = -1;
+ }
+ if (c == 10 || (t1_pfa && eexec_scan == eexec_len && c == 32))
+ break;
+ if (t1_cs && t1_cslen == 0 && (t1_line_ptr - t1_line_array > 4) &&
+ (t1_suffix(" RD ") || t1_suffix(" -| "))) {
+ p = t1_line_ptr - 5;
+ while (*p != ' ')
+ p--;
+ t1_cslen = l = t1_scan_num(p + 1, 0);
+ cs_start = t1_line_ptr - t1_line_array; /* cs_start is an index now */
+ alloc_array(t1_line, l, T1_BUF_SIZE);
+ while (l-- > 0)
+ *t1_line_ptr++ = edecrypt((byte)t1_getbyte());
+ }
+ c = t1_getbyte();
+ }
+ alloc_array(t1_line, 2, T1_BUF_SIZE); /* append_eol can append 2 chars */
+ append_eol(t1_line_ptr, t1_line_array, t1_line_limit);
+ if (t1_line_ptr - t1_line_array < 2)
+ goto restart;
+ if (eexec_scan == eexec_len)
+ t1_in_eexec = 1;
+ exit:
+ /* ensure that t1_buf_array has as much room as t1_line_array */
+ t1_buf_ptr = t1_buf_array;
+ alloc_array(t1_buf, t1_line_limit, t1_line_limit);
+}
+
+static void t1_putline(void)
+{
+ char *p = t1_line_array;
+ if (t1_line_ptr - t1_line_array <= 1)
+ return;
+ if (t1_eexec_encrypt) {
+ while (p < t1_line_ptr)
+ t1_outhex(eencrypt(*p++)); /* dvips outputs hex, unlike pdftex */
+ } else
+ while (p < t1_line_ptr)
+ t1_putchar(*p++);
+}
+
+static void t1_puts(const char *s)
+{
+ if (s != t1_line_array)
+ strcpy(t1_line_array, s);
+ t1_line_ptr = strend(t1_line_array);
+ t1_putline();
+}
+
+static void t1_printf(const char *fmt, ...)
+{
+ va_list args;
+ va_start(args, fmt);
+ vsprintf(t1_line_array, fmt, args);
+ t1_puts(t1_line_array);
+ va_end(args);
+}
+
+static void t1_init_params(const char *open_name_prefix)
+{
+ t1_log(open_name_prefix);
+ t1_log(cur_file_name);
+ t1_lenIV = 4;
+ t1_dr = 55665;
+ t1_er = 55665;
+ t1_in_eexec = 0;
+ t1_cs = false;
+ t1_scan = true;
+ t1_synthetic = false;
+ t1_eexec_encrypt = false;
+ t1_block_length = 0;
+ t1_check_pfa();
+}
+
+static void t1_close_font_file(const char *close_name_suffix)
+{
+ t1_log(close_name_suffix);
+ t1_close();
+ cur_file_name = NULL;
+}
+
+static void t1_check_block_len(boolean decrypt)
+{
+ int l, c;
+ if (t1_block_length == 0)
+ return;
+ c = t1_getbyte();
+ if (decrypt)
+ c = edecrypt((byte)c);
+ l = t1_block_length;
+ if (!(l == 0 && (c == 10 || c == 13))) {
+ pdftex_warn("%i bytes more than expected were ignored", l + 1);
+ while (l-- > 0)
+ t1_getbyte();
+ }
+}
+
+static void t1_start_eexec(void)
+{
+ int i;
+ if (is_included(fm_cur)) {
+ get_length1();
+ save_offset();
+ }
+ if (!t1_pfa)
+ t1_check_block_len(false);
+ for (t1_line_ptr = t1_line_array, i = 0; i < 4; i++) {
+ edecrypt((byte)t1_getbyte());
+ *t1_line_ptr++ = 0;
+ }
+ t1_eexec_encrypt = true;
+ if (is_included(fm_cur))
+ t1_putline(); /* to put the first four bytes */
+}
+
+static void t1_stop_eexec(void)
+{
+ int c;
+ if (is_included(fm_cur)) {
+ get_length2();
+ save_offset();
+ }
+ end_last_eexec_line();
+ if (!t1_pfa)
+ t1_check_block_len(true);
+ else {
+ c = edecrypt((byte)t1_getbyte());
+ if (!(c == 10 || c == 13)) {
+ if (last_hexbyte == 0)
+ t1_puts("00");
+ else
+ pdftex_warn("unexpected data after eexec");
+ }
+ }
+ t1_cs = false;
+ t1_in_eexec = 2;
+}
+
+static void t1_scan_param(void)
+{
+ static const char *lenIV = "/lenIV";
+ if (!t1_scan || *t1_line_array != '/')
+ return;
+ if (t1_prefix(lenIV)) {
+ t1_lenIV = t1_scan_num(t1_line_array + strlen(lenIV), 0);
+ if (t1_lenIV < 0)
+ pdftex_fail("negative value of lenIV is not supported");
+ return;
+ }
+ t1_scan_keys();
+}
+
+static void copy_glyph_names(char **glyph_names, int a, int b)
+{
+ if (glyph_names[b] != notdef) {
+ xfree(glyph_names[b]);
+ glyph_names[b] = notdef;
+ }
+ if (glyph_names[a] != notdef) {
+ glyph_names[b] = xstrdup(glyph_names[a]);
+ }
+}
+
+/* read encoding from Type1 font file, return glyph_names array, or pdffail() */
+
+static char **t1_builtin_enc(void)
+{
+ int i, a, b, c, counter = 0;
+ char *r, *p, **glyph_names;
+ /* At this moment "/Encoding" is the prefix of t1_line_array */
+ glyph_names = t1_builtin_glyph_names;
+ for (i = 0; i < 256; i++)
+ glyph_names[i] = notdef;
+ if (t1_suffix("def")) { /* predefined encoding */
+ if (sscanf(t1_line_array + strlen("/Encoding"), "%255s", t1_buf_array) == 1
+ && strcmp(t1_buf_array, "StandardEncoding") == 0) {
+ t1_encoding = ENC_STANDARD;
+ for (i = 0; i < 256; i++) {
+ if (standard_glyph_names[i] != notdef)
+ glyph_names[i] = xstrdup(standard_glyph_names[i]);
+ }
+ return glyph_names;
+ }
+ pdftex_fail("cannot subset font (unknown predefined encoding `%s')",
+ t1_buf_array);
+ }
+ /* At this moment "/Encoding" is the prefix of t1_line_array, and the encoding is
+ * not a predefined encoding.
+ *
+ * We have two possible forms of Encoding vector. The first case is
+ *
+ * /Encoding [/a /b /c...] readonly def
+ *
+ * and the second case can look like
+ *
+ * /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for
+ * dup 0 /x put
+ * dup 1 /y put
+ * ...
+ * readonly def
+ */
+ t1_encoding = ENC_BUILTIN;
+ if (t1_prefix("/Encoding [") || t1_prefix("/Encoding[")) { /* the first case */
+ r = strchr(t1_line_array, '[') + 1;
+ skip(r, ' ');
+ for (;;) {
+ while (*r == '/') {
+ for (p = t1_buf_array, r++;
+ *r != 32 && *r != 10 && *r != ']' && *r != '/';
+ *p++ = *r++);
+ *p = 0;
+ skip(r, ' ');
+ if (counter > 255)
+ pdftex_fail("encoding vector contains more than 256 names");
+ if (strcmp(t1_buf_array, notdef) != 0)
+ glyph_names[counter] = xstrdup(t1_buf_array);
+ counter++;
+ }
+ if (*r != 10 && *r != '%') {
+ if (str_prefix(r, "] def") || str_prefix(r, "] readonly def"))
+ break;
+ else {
+ remove_eol(r, t1_line_array);
+ pdftex_fail
+ ("a name or `] def' or `] readonly def' expected: `%s'", t1_line_array);
+ }
+ }
+ t1_getline();
+ r = t1_line_array;
+ }
+ } else { /* the second case */
+ p = strchr(t1_line_array, 10);
+ for (;;) {
+ if (*p == 10) {
+ t1_getline();
+ p = t1_line_array;
+ }
+ /*
+ check for `dup <index> <glyph> put'
+ */
+ if (sscanf(p, "dup %i%255s put", &i, t1_buf_array) == 2 &&
+ *t1_buf_array == '/' && valid_code(i)) {
+ if (strcmp(t1_buf_array + 1, notdef) != 0)
+ glyph_names[i] = xstrdup(t1_buf_array + 1);
+ p = strstr(p, " put") + strlen(" put");
+ skip(p, ' ');
+ }
+ /*
+ check for `dup dup <to> exch <from> get put'
+ */
+ else if (sscanf(p, "dup dup %i exch %i get put", &b, &a) == 2
+ && valid_code(a) && valid_code(b)) {
+ copy_glyph_names(glyph_names, a, b);
+ p = strstr(p, " get put") + strlen(" get put");
+ skip(p, ' ');
+ }
+ /*
+ check for `dup dup <from> <size> getinterval <to> exch putinterval'
+ */
+ else if (sscanf(p, "dup dup %i %i getinterval %i exch putinterval",
+ &a, &c, &b) == 3
+ && valid_code(a) && valid_code(b) && valid_code(c)) {
+ for (i = 0; i < c; i++)
+ copy_glyph_names(glyph_names, a + i, b + i);
+ p = strstr(p, " putinterval") + strlen(" putinterval");
+ skip(p, ' ');
+ }
+ /*
+ check for `def' or `readonly def'
+ */
+ else if ((p == t1_line_array || (p > t1_line_array && p[-1] == ' '))
+ && strcmp(p, "def\n") == 0)
+ return glyph_names;
+ /*
+ skip an unrecognizable word
+ */
+ else {
+ while (*p != ' ' && *p != 10)
+ p++;
+ skip(p, ' ');
+ }
+ }
+ }
+ return glyph_names;
+}
+
+static void t1_check_end(void)
+{
+ if (t1_eof())
+ return;
+ t1_getline();
+ if (t1_prefix("{restore}"))
+ t1_putline();
+}
+
+static boolean t1_open_fontfile(const char *open_name_prefix)
+{
+ if (!t1_open()) {
+ char *msg = concat ("! Couldn't find font file ", cur_file_name);
+ error(msg);
+ }
+ t1_init_params(open_name_prefix);
+ return true; /* font file found */
+}
+
+#define t1_include()
+
+#define check_subr(subr) \
+ if (subr >= subr_size || subr < 0) \
+ pdftex_fail("Subrs array: entry index out of range (%i)", subr);
+
+static const char **check_cs_token_pair(void)
+{
+ const char **p = (const char **) cs_token_pairs_list;
+ for (; p[0] != NULL; ++p)
+ if (t1_buf_prefix(p[0]) && t1_buf_suffix(p[1]))
+ return p;
+ return NULL;
+}
+
+static void cs_store(boolean is_subr)
+{
+ char *p;
+ cs_entry *ptr;
+ int subr;
+ for (p = t1_line_array, t1_buf_ptr = t1_buf_array; *p != ' ';
+ *t1_buf_ptr++ = *p++);
+ *t1_buf_ptr = 0;
+ if (is_subr) {
+ subr = t1_scan_num(p + 1, 0);
+ check_subr(subr);
+ ptr = subr_tab + subr;
+ } else {
+ ptr = cs_ptr++;
+ if (cs_ptr - cs_tab > cs_size)
+ pdftex_fail
+ ("CharStrings dict: more entries than dict size (%i)", cs_size);
+ if (strcmp(t1_buf_array + 1, notdef) == 0) /* skip the slash */
+ ptr->name = notdef;
+ else
+ ptr->name = xstrdup(t1_buf_array + 1);
+ }
+ /* copy " RD " + cs data to t1_buf_array */
+ memcpy(t1_buf_array, t1_line_array + cs_start - 4,
+ (unsigned) (t1_cslen + 4));
+ /* copy the end of cs data to t1_buf_array */
+ for (p = t1_line_array + cs_start + t1_cslen,
+ t1_buf_ptr = t1_buf_array + t1_cslen + 4;
+ *p != 10; *t1_buf_ptr++ = *p++);
+ *t1_buf_ptr++ = 10;
+ if (is_subr && cs_token_pair == NULL)
+ cs_token_pair = check_cs_token_pair();
+ ptr->len = t1_buf_ptr - t1_buf_array;
+ ptr->cslen = t1_cslen;
+ ptr->data = xtalloc(ptr->len, byte);
+ memcpy(ptr->data, t1_buf_array, ptr->len);
+ ptr->valid = true;
+}
+
+#define store_subr() cs_store(true)
+#define store_cs() cs_store(false)
+
+#define CC_STACK_SIZE 24
+
+static integer cc_stack[CC_STACK_SIZE], *stack_ptr = cc_stack;
+static cc_entry cc_tab[CS_MAX];
+static boolean is_cc_init = false;
+
+#define cc_pop(N) \
+ if (stack_ptr - cc_stack < (N)) \
+ stack_error(N); \
+ stack_ptr -= N
+
+#define stack_error(N) { \
+ pdftex_fail("CharString: invalid access (%i) to stack (%i entries)", \
+ (int) N, (int)(stack_ptr - cc_stack)); \
+ goto cs_error; \
+}
+
+/*
+static integer cc_get(integer index)
+{
+ if (index < 0) {
+ if (stack_ptr + index < cc_stack )
+ stack_error(stack_ptr - cc_stack + index);
+ return *(stack_ptr + index);
+ }
+ else {
+ if (cc_stack + index >= stack_ptr)
+ stack_error(index);
+ return cc_stack[index];
+ }
+}
+*/
+
+#define cc_get(N) ((N) < 0 ? *(stack_ptr + (N)) : *(cc_stack + (N)))
+#define cc_push(V) *stack_ptr++ = V
+#define cc_clear() stack_ptr = cc_stack
+#define set_cc(N, B, A, C) \
+ cc_tab[N].nargs = A; \
+ cc_tab[N].bottom = B; \
+ cc_tab[N].clear = C; \
+ cc_tab[N].valid = true
+
+static void cc_init(void)
+{
+ int i;
+ if (is_cc_init)
+ return;
+ for (i = 0; i < CS_MAX; i++)
+ cc_tab[i].valid = false;
+ set_cc(CS_HSTEM, true, 2, true);
+ set_cc(CS_VSTEM, true, 2, true);
+ set_cc(CS_VMOVETO, true, 1, true);
+ set_cc(CS_RLINETO, true, 2, true);
+ set_cc(CS_HLINETO, true, 1, true);
+ set_cc(CS_VLINETO, true, 1, true);
+ set_cc(CS_RRCURVETO, true, 6, true);
+ set_cc(CS_CLOSEPATH, false, 0, true);
+ set_cc(CS_CALLSUBR, false, 1, false);
+ set_cc(CS_RETURN, false, 0, false);
+ /*
+ set_cc(CS_ESCAPE, false, 0, false);
+ */
+ set_cc(CS_HSBW, true, 2, true);
+ set_cc(CS_ENDCHAR, false, 0, true);
+ set_cc(CS_RMOVETO, true, 2, true);
+ set_cc(CS_HMOVETO, true, 1, true);
+ set_cc(CS_VHCURVETO, true, 4, true);
+ set_cc(CS_HVCURVETO, true, 4, true);
+ set_cc(CS_DOTSECTION, false, 0, true);
+ set_cc(CS_VSTEM3, true, 6, true);
+ set_cc(CS_HSTEM3, true, 6, true);
+ set_cc(CS_SEAC, true, 5, true);
+ set_cc(CS_SBW, true, 4, true);
+ set_cc(CS_DIV, false, 2, false);
+ set_cc(CS_CALLOTHERSUBR, false, 0, false);
+ set_cc(CS_POP, false, 0, false);
+ set_cc(CS_SETCURRENTPOINT, true, 2, true);
+ is_cc_init = true;
+}
+
+#define cs_getchar() cdecrypt(*data++, &cr)
+
+#define mark_subr(n) cs_mark(0, n)
+#define mark_cs(s) cs_mark(s, 0)
+
+static void cs_fail(const char *cs_name, int subr, const char *fmt, ...)
+{
+ char buf[SMALL_BUF_SIZE];
+ va_list args;
+ va_start(args, fmt);
+ vsprintf(buf, fmt, args);
+ va_end(args);
+ if (cs_name == NULL)
+ pdftex_warn("Subr (%i): %s", (int) subr, buf);
+ else
+ pdftex_warn("CharString (/%s): %s", cs_name, buf);
+}
+
+/* fix a return-less subr by appending CS_RETURN */
+static void append_cs_return(cs_entry *ptr)
+{
+ unsigned short cr;
+ int i;
+ byte *p, *q, *data, *new_data;
+ assert(ptr != NULL && ptr->valid && ptr->used);
+
+ /* decrypt the cs data to t1_buf_array, append CS_RETURN */
+ p = (byte *) t1_buf_array;
+ data = ptr->data + 4;
+ cr = 4330;
+ for (i = 0; i < ptr->cslen; i++)
+ *p++ = cs_getchar();
+ *p = CS_RETURN;
+
+ /* encrypt the new cs data to new_data */
+ new_data = xtalloc(ptr->len + 1, byte);
+ memcpy(new_data, ptr->data, 4);
+ p = new_data + 4;
+ q = (byte *) t1_buf_array;
+ cr = 4330;
+ for (i = 0; i < ptr->cslen + 1; i++)
+ *p++ = cencrypt(*q++, &cr);
+ memcpy(p, ptr->data + 4 + ptr->cslen, ptr->len - ptr->cslen - 4);
+
+ /* update *ptr */
+ xfree(ptr->data);
+ ptr->data = new_data;
+ ptr->len++;
+ ptr->cslen++;
+}
+
+static void cs_mark(const char *cs_name, int subr)
+{
+ byte *data;
+ int i, b, cs_len;
+ int last_cmd = 0;
+ integer a, a1, a2;
+ unsigned short cr;
+ static integer lastargOtherSubr3 = 3; /* the argument of last call to
+ OtherSubrs[3] */
+ cs_entry *ptr;
+ cc_entry *cc;
+ if (cs_name == NULL) {
+ check_subr(subr);
+ ptr = subr_tab + subr;
+ if (!ptr->valid)
+ return;
+ } else {
+ if (cs_notdef != NULL &&
+ (cs_name == notdef || strcmp(cs_name, notdef) == 0))
+ ptr = cs_notdef;
+ else {
+ for (ptr = cs_tab; ptr < cs_ptr; ptr++)
+ if (strcmp(ptr->name, cs_name) == 0)
+ break;
+ if (ptr == cs_ptr) {
+ pdftex_warn("glyph `%s' undefined", cs_name);
+ return;
+ }
+ if (ptr->name == notdef)
+ cs_notdef = ptr;
+ }
+ }
+ /* only marked CharString entries and invalid entries can be skipped;
+ valid marked subrs must be parsed to keep the stack in sync */
+ if (!ptr->valid || (ptr->used && cs_name != NULL))
+ return;
+ ptr->used = true;
+ cr = 4330;
+ cs_len = ptr->cslen;
+ data = ptr->data + 4;
+ for (i = 0; i < t1_lenIV; i++, cs_len--)
+ cs_getchar();
+ while (cs_len > 0) {
+ --cs_len;
+ b = cs_getchar();
+ if (b >= 32) {
+ if (b <= 246)
+ a = b - 139;
+ else if (b <= 250) {
+ --cs_len;
+ a = ((b - 247) << 8) + 108 + cs_getchar();
+ } else if (b <= 254) {
+ --cs_len;
+ a = -((b - 251) << 8) - 108 - cs_getchar();
+ } else {
+ cs_len -= 4;
+ a = (cs_getchar() & 0xff) << 24;
+ a |= (cs_getchar() & 0xff) << 16;
+ a |= (cs_getchar() & 0xff) << 8;
+ a |= (cs_getchar() & 0xff) << 0;
+ if (sizeof(integer) > 4 && (a & 0x80000000))
+ a |= ~0x7FFFFFFF;
+ }
+ cc_push(a);
+ } else {
+ if (b == CS_ESCAPE) {
+ b = cs_getchar() + CS_1BYTE_MAX;
+ cs_len--;
+ }
+ if (b >= CS_MAX) {
+ cs_fail(cs_name, subr, "command value out of range: %i",
+ (int) b);
+ goto cs_error;
+ }
+ cc = cc_tab + b;
+ if (!cc->valid) {
+ cs_fail(cs_name, subr, "command not valid: %i", (int) b);
+ goto cs_error;
+ }
+ if (cc->bottom) {
+ if (stack_ptr - cc_stack < cc->nargs)
+ cs_fail(cs_name, subr,
+ "less arguments on stack (%i) than required (%i)",
+ (int) (stack_ptr - cc_stack), (int) cc->nargs);
+ else if (stack_ptr - cc_stack > cc->nargs)
+ cs_fail(cs_name, subr,
+ "more arguments on stack (%i) than required (%i)",
+ (int) (stack_ptr - cc_stack), (int) cc->nargs);
+ }
+ last_cmd = b;
+ switch (cc - cc_tab) {
+ case CS_CALLSUBR:
+ a1 = cc_get(-1);
+ cc_pop(1);
+ mark_subr(a1);
+ if (!subr_tab[a1].valid) {
+ cs_fail(cs_name, subr, "cannot call subr (%i)", (int) a1);
+ goto cs_error;
+ }
+ break;
+ case CS_DIV:
+ cc_pop(2);
+ cc_push(0);
+ break;
+ case CS_CALLOTHERSUBR:
+ if (cc_get(-1) == 3)
+ lastargOtherSubr3 = cc_get(-3);
+ a1 = cc_get(-2) + 2;
+ cc_pop(a1);
+ break;
+ case CS_POP:
+ cc_push(lastargOtherSubr3);
+ /* the only case when we care about the value being pushed onto
+ stack is when POP follows CALLOTHERSUBR (changing hints by
+ OtherSubrs[3])
+ */
+ break;
+ case CS_SEAC:
+ a1 = cc_get(3);
+ a2 = cc_get(4);
+ cc_clear();
+ mark_cs(standard_glyph_names[a1]);
+ mark_cs(standard_glyph_names[a2]);
+ break;
+ default:
+ if (cc->clear)
+ cc_clear();
+ }
+ }
+ }
+ if (cs_name == NULL && last_cmd != CS_RETURN) {
+ pdftex_warn("last command in subr `%i' is not a RETURN; "
+ "I will add it now but please consider fixing the font",
+ (int) subr);
+ append_cs_return(ptr);
+ }
+ return;
+ cs_error: /* an error occured during parsing */
+ cc_clear();
+ ptr->valid = false;
+ ptr->used = false;
+}
+
+static void t1_subset_ascii_part(void)
+{
+ int i, j;
+ t1_getline();
+ while (!t1_prefix("/Encoding")) {
+ t1_scan_param();
+ if (!(t1_prefix("/UniqueID")
+ && !strncmp(t1_line_array + strlen(t1_line_array) -4, "def", 3)))
+ t1_putline();
+ t1_getline();
+ }
+ if (is_reencoded(fm_cur))
+ t1_glyph_names = external_enc();
+ else
+ t1_glyph_names = t1_builtin_enc();
+ if (is_included(fm_cur) && is_subsetted(fm_cur)) {
+ make_subset_tag(fm_cur, t1_glyph_names);
+ update_subset_tag();
+ }
+ if (t1_encoding == ENC_STANDARD)
+ t1_puts("/Encoding StandardEncoding def\n");
+ else {
+ t1_puts
+ ("/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\n");
+ for (i = 0, j = 0; i < 256; i++) {
+ if (is_used_char(i) && t1_glyph_names[i] != notdef) {
+ j++;
+ t1_printf("dup %i /%s put\n", (int)t1_char(i), t1_glyph_names[i]);
+ }
+ }
+ if (j == 0)
+ /* We didn't mark anything for the Encoding array. */
+ /* We add "dup 0 /.notdef put" for compatibility */
+ /* with Acrobat 5.0. */
+ t1_puts("dup 0 /.notdef put\n");
+ t1_puts("readonly def\n");
+ }
+ do {
+ t1_getline();
+ t1_scan_param();
+ if (!t1_prefix("/UniqueID")) /* ignore UniqueID for subsetted fonts */
+ t1_putline();
+ } while (t1_in_eexec == 0);
+}
+
+static void cs_init(void)
+{
+ cs_ptr = cs_tab = NULL;
+ cs_dict_start = cs_dict_end = NULL;
+ cs_count = cs_size = cs_size_pos = 0;
+ cs_token_pair = NULL;
+ subr_tab = NULL;
+ subr_array_start = subr_array_end = NULL;
+ subr_max = subr_size = subr_size_pos = 0;
+}
+
+static void init_cs_entry(cs_entry *cs)
+{
+ cs->data = NULL;
+ cs->name = NULL;
+ cs->len = 0;
+ cs->cslen = 0;
+ cs->used = false;
+ cs->valid = false;
+}
+
+static void t1_read_subrs(void)
+{
+ int i, s;
+ cs_entry *ptr;
+ t1_getline();
+ while (!(t1_charstrings() || t1_subrs())) {
+ t1_scan_param();
+ t1_putline();
+ t1_getline();
+ }
+ found:
+ t1_cs = true;
+ t1_scan = false;
+ if (!t1_subrs())
+ return;
+ subr_size_pos = strlen("/Subrs") + 1;
+ /* subr_size_pos points to the number indicating dict size after "/Subrs" */
+ subr_size = t1_scan_num(t1_line_array + subr_size_pos, 0);
+ if (subr_size == 0) {
+ while (!t1_charstrings())
+ t1_getline();
+ return;
+ }
+ subr_tab = xtalloc(subr_size, cs_entry);
+ for (ptr = subr_tab; ptr - subr_tab < subr_size; ptr++)
+ init_cs_entry(ptr);
+ subr_array_start = xstrdup(t1_line_array);
+ t1_getline();
+ while (t1_cslen) {
+ store_subr();
+ t1_getline();
+ }
+ /* mark the first four entries without parsing */
+ for (i = 0; i < subr_size && i < 4; i++)
+ subr_tab[i].used = true;
+ /* the end of the Subrs array might have more than one line so we need to
+ concatnate them to subr_array_end. Unfortunately some fonts don't have
+ the Subrs array followed by the CharStrings dict immediately (synthetic
+ fonts). If we cannot find CharStrings in next POST_SUBRS_SCAN lines then
+ we will treat the font as synthetic and ignore everything until next
+ Subrs is found
+ */
+
+#define POST_SUBRS_SCAN 5
+
+ s = 0;
+ *t1_buf_array = 0;
+ for (i = 0; i < POST_SUBRS_SCAN; i++) {
+ if (t1_charstrings())
+ break;
+ s += t1_line_ptr - t1_line_array;
+ alloc_array(t1_buf, s, T1_BUF_SIZE);
+ strcat(t1_buf_array, t1_line_array);
+ t1_getline();
+ }
+ subr_array_end = xstrdup(t1_buf_array);
+ if (i == POST_SUBRS_SCAN) { /* CharStrings not found;
+ suppose synthetic font */
+ for (ptr = subr_tab; ptr - subr_tab < subr_size; ptr++)
+ if (ptr->valid)
+ xfree(ptr->data);
+ xfree(subr_tab);
+ xfree(subr_array_start);
+ xfree(subr_array_end);
+ cs_init();
+ t1_cs = false;
+ t1_synthetic = true;
+ while (!(t1_charstrings() || t1_subrs()))
+ t1_getline();
+ goto found;
+ }
+}
+
+#define t1_subr_flush() t1_flush_cs(true)
+#define t1_cs_flush() t1_flush_cs(false)
+
+static void t1_flush_cs(boolean is_subr)
+{
+ char *p;
+ byte *r, *return_cs = NULL;
+ cs_entry *tab, *end_tab, *ptr;
+ char *start_line, *line_end;
+ int count, size_pos;
+ unsigned short cr, cs_len = 0; /* to avoid warning about uninitialized use of cs_len */
+ if (is_subr) {
+ start_line = subr_array_start;
+ line_end = subr_array_end;
+ size_pos = subr_size_pos;
+ tab = subr_tab;
+ count = subr_max + 1;
+ end_tab = subr_tab + count;
+ } else {
+ start_line = cs_dict_start;
+ line_end = cs_dict_end;
+ size_pos = cs_size_pos;
+ tab = cs_tab;
+ end_tab = cs_ptr;
+ count = cs_count;
+ }
+ t1_line_ptr = t1_line_array;
+ for (p = start_line; p - start_line < size_pos;)
+ *t1_line_ptr++ = *p++;
+ while (isdigit((unsigned char)*p))
+ p++;
+ sprintf(t1_line_ptr, "%u", count);
+ strcat(t1_line_ptr, p);
+ t1_line_ptr = eol(t1_line_array);
+ t1_putline();
+
+ /* create return_cs to replace unused subr's */
+ if (is_subr) {
+ cr = 4330;
+ cs_len = 0;
+ /* at this point we have t1_lenIV >= 0;
+ * a negative value would be caught in t1_scan_param() */
+ return_cs = xtalloc(t1_lenIV + 1, byte);
+ for (cs_len = 0, r = return_cs; cs_len < t1_lenIV; cs_len++, r++)
+ *r = cencrypt(0x00, &cr);
+ *r = cencrypt(CS_RETURN, &cr);
+ cs_len++;
+ }
+
+ for (ptr = tab; ptr < end_tab; ptr++) {
+ if (ptr->used) {
+ if (is_subr)
+ sprintf(t1_line_array, "dup %lu %u",
+ (unsigned long) (ptr - tab), ptr->cslen);
+ else
+ sprintf(t1_line_array, "/%s %u", ptr->name, ptr->cslen);
+ p = strend(t1_line_array);
+ memcpy(p, ptr->data, ptr->len);
+ t1_line_ptr = p + ptr->len;
+ t1_putline();
+ } else {
+ /* replace unsused subr's by return_cs */
+ if (is_subr) {
+ sprintf(t1_line_array, "dup %lu %u%s ",
+ (unsigned long) (ptr - tab), cs_len, cs_token_pair[0]);
+ p = strend(t1_line_array);
+ memcpy(p, return_cs, cs_len);
+ t1_line_ptr = p + cs_len;
+ t1_putline();
+ sprintf(t1_line_array, " %s", cs_token_pair[1]);
+ t1_line_ptr = eol(t1_line_array);
+ t1_putline();
+ }
+ }
+ xfree(ptr->data);
+ if (ptr->name != notdef)
+ xfree(ptr->name);
+ }
+ sprintf(t1_line_array, "%s", line_end);
+ t1_line_ptr = eol(t1_line_array);
+ t1_putline();
+ if (is_subr)
+ xfree(return_cs);
+ xfree(tab);
+ xfree(start_line);
+ xfree(line_end);
+}
+
+static void t1_mark_glyphs(void)
+{
+ int i;
+ char *charset = extra_charset();
+ char *g, *s, *r;
+ cs_entry *ptr;
+ if (t1_synthetic || embed_all_glyphs(tex_font)) { /* mark everything */
+ if (cs_tab != NULL)
+ for (ptr = cs_tab; ptr < cs_ptr; ptr++)
+ if (ptr->valid)
+ ptr->used = true;
+ if (subr_tab != NULL) {
+ for (ptr = subr_tab; ptr - subr_tab < subr_size; ptr++)
+ if (ptr->valid)
+ ptr->used = true;
+ subr_max = subr_size - 1;
+ }
+ return;
+ }
+ mark_cs(notdef);
+ for (i = 0; i < 256; i++)
+ if (is_used_char(i)) {
+ if (t1_glyph_names[i] == notdef)
+ pdftex_warn("character %i is mapped to %s", i, notdef);
+ else
+ mark_cs(t1_glyph_names[i]);
+ }
+ if (charset == NULL)
+ goto set_subr_max;
+ g = s = charset + 1; /* skip the first '/' */
+ r = strend(g);
+ while (g < r) {
+ while (*s != '/' && s < r)
+ s++;
+ *s = 0; /* terminate g by rewriting '/' to 0 */
+ mark_cs(g);
+ g = s + 1;
+ }
+ set_subr_max:
+ if (subr_tab != NULL)
+ for (subr_max = -1, ptr = subr_tab; ptr - subr_tab < subr_size; ptr++)
+ if (ptr->used && ptr - subr_tab > subr_max)
+ subr_max = ptr - subr_tab;
+}
+
+static void t1_check_unusual_charstring(void)
+{
+ char *p = strstr(t1_line_array, charstringname) + strlen(charstringname);
+ int i;
+ /* if no number follows "/CharStrings", let's read the next line */
+ if (sscanf(p, "%i", &i) != 1) {
+ /* pdftex_warn("no number found after `%s', I assume it's on the next line",
+ charstringname); */
+ strcpy(t1_buf_array, t1_line_array);
+
+ /* t1_getline always appends EOL to t1_line_array; let's change it to
+ * space before appending the next line
+ */
+ *(strend(t1_buf_array) - 1) = ' ';
+
+ t1_getline();
+ alloc_array(t1_buf, strlen(t1_line_array)
+ + (t1_buf_array ? strlen(t1_buf_array) + 1 : 0),
+ T1_BUF_SIZE);
+ strcat(t1_buf_array, t1_line_array);
+ alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+ strcpy(t1_line_array, t1_buf_array);
+ t1_line_ptr = eol(t1_line_array);
+ }
+}
+
+static void t1_subset_charstrings(void)
+{
+ cs_entry *ptr;
+
+ /* at this point t1_line_array contains "/CharStrings".
+ when we hit a case like this:
+ dup/CharStrings
+ 229 dict dup begin
+ we read the next line and concatenate to t1_line_array before moving on
+ */
+ t1_check_unusual_charstring();
+
+ cs_size_pos = strstr(t1_line_array, charstringname)
+ + strlen(charstringname) - t1_line_array + 1;
+ /* cs_size_pos points to the number indicating
+ dict size after "/CharStrings" */
+ cs_size = t1_scan_num(t1_line_array + cs_size_pos, 0);
+ cs_ptr = cs_tab = xtalloc(cs_size, cs_entry);
+ for (ptr = cs_tab; ptr - cs_tab < cs_size; ptr++)
+ init_cs_entry(ptr);
+ cs_notdef = NULL;
+ cs_dict_start = xstrdup(t1_line_array);
+ t1_getline();
+ while (t1_cslen) {
+ store_cs();
+ t1_getline();
+ }
+ cs_dict_end = xstrdup(t1_line_array);
+ t1_mark_glyphs();
+ if (subr_tab != NULL) {
+ if (cs_token_pair == NULL)
+ pdftex_fail
+ ("This Type 1 font uses mismatched subroutine begin/end token pairs.");
+ t1_subr_flush();
+ }
+ for (cs_count = 0, ptr = cs_tab; ptr < cs_ptr; ptr++)
+ if (ptr->used)
+ cs_count++;
+ t1_cs_flush();
+}
+
+static void t1_subset_end(void)
+{
+ if (t1_synthetic) { /* copy to "dup /FontName get exch definefont pop" */
+ while (!strstr(t1_line_array, "definefont")) {
+ t1_getline();
+ t1_putline();
+ }
+ while (!t1_end_eexec())
+ t1_getline(); /* ignore the rest */
+ t1_putline(); /* write "mark currentfile closefile" */
+ } else
+ while (!t1_end_eexec()) { /* copy to "mark currentfile closefile" */
+ t1_getline();
+ t1_putline();
+ }
+ t1_stop_eexec();
+ if (fixedcontent) { /* copy 512 zeros (not needed for PDF) */
+ while (!t1_cleartomark()) {
+ t1_getline();
+ t1_putline();
+ }
+ if (!t1_synthetic) /* don't check "{restore}if" for synthetic fonts */
+ t1_check_end(); /* write "{restore}if" if found */
+ }
+ get_length3();
+}
+
+static void writet1(void)
+{
+ read_encoding_only = false;
+ if (!is_included(fm_cur)) { /* scan parameters from font file */
+ if (!t1_open_fontfile("{"))
+ return;
+ t1_scan_only();
+ t1_close_font_file("}");
+ return;
+ }
+ if (!is_subsetted(fm_cur)) { /* include entire font */
+ if (!t1_open_fontfile("<<"))
+ return;
+ t1_include();
+ t1_close_font_file(">>");
+ return;
+ }
+ /* partial downloading */
+ if (!t1_open_fontfile("<"))
+ return;
+ t1_subset_ascii_part();
+ t1_start_eexec();
+ cc_init();
+ cs_init();
+ t1_read_subrs();
+ t1_subset_charstrings();
+ t1_subset_end();
+ t1_close_font_file(">");
+}
+
+boolean t1_subset_2(char *fontfile, unsigned char *g, char *extraGlyphs)
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ ext_glyph_names[i] = (char*) notdef;
+ grid = g;
+ cur_file_name = fontfile;
+ hexline_length = 0;
+ dvips_extra_charset = extraGlyphs;
+ writet1();
+ for (i = 0; i < 256; i++)
+ if (ext_glyph_names[i] != notdef)
+ free(ext_glyph_names[i]);
+ return 1; /* note: there *is* no unsuccessful return */
+}